[AWS超入門] EC2インスタンスを立ち上げてみよう!

いまさらながら超入門記事を残しておこうと思います。

目標としては、AWSにてEC2とRDSでPHP開発環境を構築することです。

対象読者は、

・なんらかのプログラム(PHPやJAVA)を触ったことある
・インフラはさっぱり分からない
・AWSの名前は知ってるけど、使ったことはない
・でも使ってみたい

です。

最小構成なので、無料枠内でテストができる方もいると思います。自分ではテストと思って大きな容量を確保してしまうと課金担ってしまうかと思いますので、ご注意ください。また、無料枠が変更になった場合なども課金になるかもしれません。そのあたりは自己責任でお願いします。

まずはサインアップ ▶ AWSのトップページ(※1

アカウントは作ったあとの前提で進みます。

EC2のコンソールを開く

サービス一覧からEC2を選択してください。この時、どの地域でインスタンスを立ち上げていくかを設定する「リージョン」をTokyoに変更しておきます。

アメリカの方が料金は安いのですが、遠くなると反応も鈍り画面の表示などに時間がかかります。何か特別な理由がない限りはTokyoリージョンを選択します。今後もっとAWSやインフラ構築に詳しくなって、大規模な停電や災害に備えて別リージョンにもインスタンスを構築しよう!というような時がくるかもしれません。

インスタンスの立ち上げを開始

インスタンスの基本設定

OSの種類を選択します。とりあえずAmazon Linuxでいきます。

インスタンスの性能はt2.microを選択します。これが最安です。テストならこれで十分ですが、本番環境としては心もとないです。が、スタートアップであればt2.microで立ち上げて、サーバが高負荷になってしまったりダウンしたり、「嬉しい悲鳴」発生ベースで性能を上げていけばいいと思います。

ほぼデフォルトでOKですが、ターミネート保護だけチェックしておきます。インスタンスの運用にはストップとターミネートがあるのですが、ストップは単にインスタンを一旦停止することを意味する一方で、ターミネートは削除を意味します。削除すると元に戻せないので間違って削除しないように「ターミネート保護」をしておくと、削除する前に確認が入りますので、安心です。

EBSの設定

これはとりあえずデフォルトでOKです。デフォルトの「Root」はインスタンス内部のストレージを意味します。これは後から変更できないっぽいです。が、外付けのストレージであれば後からでも追加できます。

名前を付けておく

いまはテストなので1つしかインスタンスがありませんが、今後別のプロジェクトでもAWSを使用した場合にはドンドン増えていく予感です。同じアカウントを使いまわすのであれば、なおさら名前は重要です。そうでなくても名前は付けておきましょう。

セキュリティグループ

これ、重要です。まずSSHのSOURCEの部分を0.0.0.0/0から変更しておきます。これはテストなので別にそのままでもいいのですが、意識の問題として変えておきましょう。今回は「My IP」を選択しておきます。こうすることでSSH接続できるのは自分のIPアドレスだけになります。0.0.0.0/0だとどっか知らない場所からでもSSH接続可能になります。以前悪意のある第三者にSSH接続されてしまった人がウェブで情報を公開してくれていました。
次にHTTP(とHTTPS)を追加しておきます。

SSHってなに?

コンピュータ上で動作しているOSに利用者が指示を与えるためのシェル(shell)と呼ばれるプログラムの一種で、遠隔からコンピュータの操作画面を呼び出し、手元のコンピュータのキーボードなどで入力したコマンド(命令)などを送信して実行し、結果を受信して表示することができる。公開鍵暗号と秘密鍵暗号を組み合わせて通信経路を暗号化し、パスワードなどの認証情報や入力されるコマンド、出力された処理結果などをすべて暗号化して送受信する。


http://e-words.jp/w/ssh.html

これでラウンチします。

鍵をダウンロード

ラウンチすると、公開鍵のファイルをダウンロードするようにダイアログが出ます。これは後ほどSSH接続する際に使いますので、保存しておきましょう。