こんにちは。中山です。
Amazon Web Services(AWS) って、新規ユーザは最初の1年間、制限付きながら、いろいろな機能を無料で使えるみたいですね。(詳細はこちら。)
これは試してみないといけない、と思い、早速実践してみました。
今回トライしたのは、
- 「EC2」インスタンスを作成
- その上に「Ruby on Rails 4.1」の動作環境を構築
- その環境で、Ruby on Railsのサンプルアプリを動作させてみる
というところです。
それではさっそく試してみたいと思います。
1.アカウント作成
AWS のトップページから、「無料でお試しください」をクリックして、新しいアカウントを作成します。(一応、クレジットカードの登録が必要になります。)
登録完了後、「Console Home」ページを開くと、以下のように表示されます。
2.EC2 インスタンスの作成
2−1.インスタンス作成開始
先ほどの「Console Home」ページから、左上あたりに表示されている「EC2」をクリックします。
最初は、以下のようなメッセージが表示されるかもしれません。この場合は、アカウント登録したメールアドレスに、AWS からメールが到着するのを確認します。
「EC2 Dashboard」のページが、以下のように表示されます。まだインスタンスを作成していないので、「0 Running Instances」と表示されています。
ページ中ほどの「Launch Instance」をクリックして、新しい EC2 インスタンスを作成します。
このとき、ページ右上から、あらかじめ「東京リージョン(Asia Pacific (Tokyo) )」を選択しておくようにします。
2−2.Amazon Machine Image(AMI)の選択
表示された以下のページで、「Amazon Machine Image(AMI)」の種類を選択します。
無料の範囲内で利用するために、「Free tier eligible」の表記のあるものの中から選択する必要があります。
今回は、無難に「Amazon Linux AMI」を選びました。「64-bit」のほうにチェックをつけて「Select」をクリックします。
無料活用ポイント!その1
Amazon Machine Image(AMI) は、「Free tier eligible」の表記のあるものの中から選ぶ。
2−3.Instance Type の選択
次に、「Instance Type」を選択します。
これも無料で利用するために、「Micro instances」を選択します。
「Micro instances」を選択した状態で、ページ下側の「Review and Launch」をクリックします。
無料活用ポイント!その2
Instance Type は、「Micro instances」を選ぶ。
2−4.レビュー
「Instance Type」を選択後、以下のようなページに切り替わります。
「安全のために Security group の設定の更新をお勧めします」という内容のメッセージが表示されています。
ページ中ほどの「Edit security groups」をクリックします。
2−5.Security group の編集
以下のようなページが表示されます。
まず「Type」が「SSH」の項目の「Source」を「My IP」に変更します。これにより、現在の接続元のIPアドレスのみに、SSH接続を許可することができます。(自身のグローバルIPが動的に設定されている場合、この設定では対応しきれないところがありますが、今回はとりあえずこのままで。)
また、「Type」が「Custom TCP Rule」の項目を新規追加して、「Port Range」を「3000」に、「Source」を「My IP」に設定します。
これは、Ruby on Rails のデフォルトポートである 3000番ポートへの TCP 接続を許可するための設定です。(が、あまり格好の良いものではないので、今後、見直しが必要でしょう。)
ここまで設定できたところで、ページ下側の「Review and Launch」をクリックします。
3.EC2 インスタンスの起動と終了
3−1.インスタンスの起動
表示された「Review」ページ下側の「Launch」ボタンをクリックします。
以下のようなメッセージが表示されます。
SSH接続のための Private key の生成が必要、とのことです。上側のドロップダウンリストから「Create a new key pair」を選択し、下側のテキスト入力欄に、任意の Private key の名称(仮に「myprivatekey」とします)を入力して、「Download Key Pair」をクリックします。
ダウンロードした Private key ファイル(myprivatekey.pem ファイル)は、任意の安全なフォルダに保存しておきます。
その後、「Launch Instances」をクリックすると、以下のようなページが表示されます。
さらにページ右下の「View Instances」をクリックすると、以下のような「EC2 Dashboard」ページに切り替わります。
対象のインスタンスの「Instance State」が「running」に切り替わりましたら、インスタンスの起動完了です。
3−2.インスタンスへの接続
先ほどダウンロードした Private key ファイルのアクセス権を変更して、セキュリティを強化しておきます。
今回は、Mac のコンソールから操作します。
$ chmod 400 myprivatekey.pem
先ほどの「EC2 Dashboard」ページから、対象インスタンスの「Public IP」の値を確認しておきます。
その後、Mac のコンソールから、以下のコマンドを入力します。
$ ssh -i myprivatekey.pem ec2-user@{Public IP の値}
以下のように表示されると、EC2 インスタンスへの接続成功です。
Last login: Wed May 14 06:36:31 2014 from ***.***.*** __| __|_ ) _| ( / Amazon Linux AMI ___|\___|___| https://aws.amazon.com/amazon-linux-ami/2014.03-release-notes/ 5 package(s) needed for security, out of 11 available Run "sudo yum update" to apply all updates.
4.(参考)Elastic IP の設定
ここまで無事に EC2 インスタンスの起動と接続にまでこぎつけました。
しかし、いったん停止していたインスタンスを再度起動して、同じようにSSH 接続しようとすると・・・、なんと接続できません!
実は、EC2 インスタンスの「Public IP」「Public DNS」は、インスタンスを停止・起動すると、そのたびに異なる値が割り振られてしまうのです!
これを回避するために、EC2 インスタンスに「Elastic IP」を設定して、固定の「Public IP」「Public DNS」を割り当てる、という方法があります。
しかしここで注意が必要です。AWS EC2 の料金表によりますと、
$0.00 : 実行中のインスタンスと関連付けられている Elastic IP アドレス 1 つ
$0.005: 実行中のインスタンスと関連付けられている追加の Elastic IP アドレスあたり/1 時間(比例計算)
$0.005: 実行中のインスタンスと関連付けられていない Elastic IP アドレスあたり/1 時間(比例計算)
$0.00 : Elastic IP アドレスのリマップ 1 回あたり(1 か月間で 100 リマップまで)
$0.10 : Elastic IP アドレスのリマップ 1 回あたり(1 か月間で 100 リマップを超える追加分)
なんと「Elastic IP」を使うと、少しずつではありますが、課金されるケースが出てくるのです。
(例えば停止中のインスタンスに「Elastic IP」を関連づけたままであったり、「Elastic IP」をどのインスタンスにも関連づけないで、そのままにしていたり。)
とにかく1円も払わずに運用したい、ということであれば、「Elastic IP」の使用は、とりあえず我慢するしかありません。
無料活用ポイント!その4
「Elastic IP」は設定しない。
5.(参考)コマンドラインからも操作できます
ここまで実施してきたような操作を、コマンドラインから実行することもできます。
コマンドラインから、AWS の各種サービスを操作するには、「AWS コマンドラインインターフェイス(AWS CLI)」を使います。
例えば、EC2 インスタンスの停止を 「AWS CLI」から実行するには、以下のようにします。
$ aws ec2 stop-instances --instance-ids i-********
6.無料期間終了後は?
1年間の無料期間が終了すると、その後はそのまま、使った分だけ課金されるようになるみたいです。
有料では使わない、という場合は、無料期間終了前に、AWS のアカウント自体を削除する必要があります。
無料利用枠の有効期限が切れた場合、またはアプリケーション使用が無料利用枠を超えた場合は、標準の料金、つまり従量課金制でお支払いください
無料活用ポイント!その5
無料利用枠の有効期限を気にしておく。
7.Ruby on Rails の環境構築へ
ここまでの操作で、無事に EC2 インスタンスの起動まで実施することができました。
このあとは、この環境に、Ruby on Rails の実行環境を構築して、サンプルアプリを動かしてみたいと思います。
続きは「無料で活用!AWS ー EC2 + Ruby on Rails 4.1(その2) ー」にて。