いまさらながら超入門記事を残しておこうと思います。
目標としては、AWSにてEC2とRDSでPHP開発環境を構築することです。
対象読者は、
・なんらかのプログラム(PHPやJAVA)を触ったことある
・インフラはさっぱり分からない
・AWSの名前は知ってるけど、使ったことはない
・でも使ってみたい
です。
まずはサインアップ ▶ AWSのトップページ(※1)
アカウントは作ったあとの前提で進みます。
EC2のコンソールを開く
サービス一覧からEC2を選択してください。この時、どの地域でインスタンスを立ち上げていくかを設定する「リージョン」をTokyoに変更しておきます。
インスタンスの立ち上げを開始
インスタンスの基本設定
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)と呼ばれるプログラムの一種で、遠隔からコンピュータの操作画面を呼び出し、手元のコンピュータのキーボードなどで入力したコマンド(命令)などを送信して実行し、結果を受信して表示することができる。公開鍵暗号と秘密鍵暗号を組み合わせて通信経路を暗号化し、パスワードなどの認証情報や入力されるコマンド、出力された処理結果などをすべて暗号化して送受信する。
これでラウンチします。
鍵をダウンロード
ラウンチすると、公開鍵のファイルをダウンロードするようにダイアログが出ます。これは後ほどSSH接続する際に使いますので、保存しておきましょう。