SaaSビジネスを始めるには、24時間サービスを提供できるサーバが必要になります。Webサーバぐらいならレンタルサーバでも可能ですが、いろいろやろうとするとAWS、GCP、Azure等のIaaSのプラットフォームを利用することが望ましいです。ここではAWSを始め方などをご紹介します。
AWSとは
AWSは、Amazon Web ServiceというAmazonが提供しているクラウドコンピューティングサービスで、仮想サーバやストレージ、データベース、ユーザ管理などいろいろな機能を提供してくれます。
料金は基本的には使った分だけ支払うものがほとんどで、サーバも起動していなければお金はかかりません。(ストレージは保管してあるだけで微小にかかりますが)
自前でサーバを構築するとなると初期費用も時間も結構かかりますが、AWSなら数回クリックするだけで仮想サーバが立ち上がり、すぐに始められます。使った時間しか料金もかかりませんので低コストでいろんなことが試せます。
また、何かのサービスを提供するために24時間起動していたとしても、故障やメンテナンスのことまで考えると、おそらくAWSで運用した方が安くなると思いますし、生産性やスケーラビリティの観点で考えればAWSの方が圧倒的に便利です。
個人でも簡単にアカウントを作成できて、すぐにサーバを立ち上げることができます。始め方はAWSサイトのこちらでアカウント作成の手順が書かれております。必要なのは、メールアドレス、名前、住所、電話番号とクレジットカード情報だけです。
クレジットカード番号を登録しますが、何も使わなければお金はかかりません。解約もできるようになってますので、気軽に登録しても大丈夫です。
AWSの無料枠
AWSには無料枠というものがあり、ある程度使っても料金は発生しないものがあります。無料枠には3種類のオファーがあります。
- 12ヶ月無料
- 常に無料
- 無料トライアル
まず「12ヶ月無料」ですが、これはアカウント作成から1年間はある程度まで使っても無料というものです。代表例としてはEC2という仮想サーバですが、こちら、t2.microおよびt3.microという低スペックなサーバであれば、月に750時間までは使っても無料というものです。
1日が24時間なので、31日間ずっと起動していたとしても744時間で750を超えません。つまり1台だけなら1年間無料です。ただ、同時に2台起動したりすればそれぞれの利用時間がカウントされますので、そうなると超過した分は料金が発生します。
次に「常に無料」ですが、これは最初の1年だけでなく無期限である程度までは無料で使えるというものです。AWS lambdaは月に100万回の実行まで無料です。Cognitoも50000ユーザまでにユーザプールが無料です。(元々高いものではないですが嬉しいです)
3つ目の「無料トライアル」ですが、こちらは新しい機能を試しに無料で使ってみてその魅力を味わってみてくださいというもので、サービスによって無料期間や無料範囲は異なります。機械学習のプラットフォームであるSageMakerは現在2ヶ月間無料です。(インスタンスや利用時間に条件がありますのでご注意)
なので、最初はこの無料枠の中でAWSの使い方などを習得し、少しずつお金がかかるサービスに手を出していくのが個人の利用方法としては良いかもしれません。
Cost Explorererの有効化
とは言っても、知らないうちに料金が発生してしまっているなんてことは結構あります。なので、逐次何がどれぐらい料金かかっているのかをビジュアル的に把握できるコストエクスプローラーを有効にして時々チェックするのが良いと思います。コンソールでグラフ表示するのは無料です。(APIでチェックしたりすると料金が微小に発生しますが)
最初にAWSのアカウントを作成してサインインすると、こんな画面がでてきて右下に「Cost Explorerを有効にする」というボタンがあります。(ポップアップでも促されます)
こちらを有効化して時々見るようにしましょう。AWSのコスト感覚が身に付きます。
MFAの有効化
これは必須ではありませんが、ルートユーザのパスワードが何かしらで漏洩してしまった場合、他の人にログインされてしまいます。そうすると、無尽蔵にAWSのリソースを利用されて請求額が大変なことになる可能性もありますので、MFA(Multi-Factor Authentication)という多要素認証を設定しておくことをおすすめします。
多くの場合はスマホでMFAアプリを使い、パスワード認証に加え、自分のスマホを持っている人しか作れない番号で二段階認証してログインします。こうしておけば、パスワードがばれただけではログインされません。その人に自分のスマホも盗まれない限り大丈夫です。
設定方法ですが、コンソール画面右上のアカウント名をクリックすると、「セキュリティ認証情報」という項目がでてきますので、それを選択すると、下記のようなMFAを有効化できる画面に行けます。
「MFAを割り当てる」ボタンを押せば設定できます。まず、MFAデバイスの設定です。これはいろいろ選択肢がありますが、たいていは、自分のスマホにインストールするAuthenticator appになります。デバイス名はわかりやすい適当な名前をつけましょう。
そして、スマホにGoogle Authenticator等のMFAアプリをインストールしておきます。
次の画面でデバイスの認証を行います。ここで設定をしたデバイスを持っている人だけがログインできるようになります。
下記のような画面がでたら、QRコードを表示させましょう。
そして自分のスマホのMFAアプリを起動し、「追加」のようなボタンを押してQRコードを読み取るモードにしましょう。画面に表示されたQRコードを読み取れば、MFAアプリが時限付きの番号を発行するようになります。
この番号は30秒ぐらいで逐次変わるので、連続する2つの番号を上の画面の「MFAコード1」と「MFAコード2」にそれぞれ入力します。
これでお手持ちのスマホが信頼できるデバイスとして登録されます。
このあとは、ログインする時にパスワードの他、このMFAコードを聞かれるようになりますので、スマホでMFAアプリを起動し、その時スマホに表示された番号を入力すればログインできるようになります。
これでアカウントのセキュリティも強くなり、準備が整いました。
ユーザの追加
自分ひとりしかアカウントを使わないのであれば、上記のルートユーザで作業をしても支障は無いと思いますが、複数の人で作業を行う場合は、ひとりひとりのユーザを作成し、アクセス権限等を設定する必要がでてきます。ここでは、IAMでのユーザの追加方法を紹介します。
まず、ユーザ管理はIAM (Identity and Access Management) というサービスを使いますので、IAMというサービスを選択して、ユーザ項目を選択します。
右上に「ユーザの作成」というボタンがありますので、それを押して新規ユーザを作成します。
新規作成するユーザ名を設定して、「AWSマネジメントコンソールへのユーザアクセスを提供する」をチェックします。これでこのユーザもコンソールで作業ができます。チェックすると、ユーザタイプの選択画面がでてきますので、IAMユーザにしておきます。これでこのユーザの権限等もIAMサービスで設定できます。
初期パスワードの設定ですが、自動生成されたパスワードにしておき、初回ログイン時に変更してもらうようにしてます。自動生成されたパスワードやコンソールのログインURLは、CSVでダウンロードできますので、それをユーザに(安全に)配布して、初回ログインとパスワード変更してもらうように連絡します。
最後にユーザの権限設定ですが、権限設定したグループを作成してそのグループに入ってもらうこともできますし、AWSのアクセスポリシーを直接設定することもできます。必要に応じて設定します。グループが無い状態で「ユーザーにグループに追加」を選ぶと、何のグループにも属さずにIAMUserChangePasswordのポリシーだけが追加された状態になります。(これだけで初回ログイン時のパスワード変更はできます。)