Webサービスを運用していると下記のような理由から新たにWebサーバを用意した機会がよくあるかと思います。
- アクセスが増えてきたからサーバを増やして分散させたい
- 新しいサービス公開に向けてサーバが必要
- テスト用に本番と同じ構成のサーバが欲しい
- その他諸々
そんな時にAWSのスナップショットを利用すると本当にすぐに既存サーバと全く同じ構成、もしくは構成は同じでスペックだけ増強したサーバを用意することができます。
ではその手順を既存EC2を利用して行っていきたいと思います。
既存EC2インスタンスについては下記記事を参照してください。
既存EC2インスタンスからスナップショットを作成
ストレージの確認
まずはEC2インスタンスがどのボリュームを利用しているのかを確認します。
左メニューのボリュームをクリックし、一覧からボリュームを選択しプロパティの「アタッチ済み情報」を確認します。
今回スナップショットを作成するEC2インスタンスが「test-ec2」になるので合っています。

スナップショットを作成する
作成したいEBSボリュームで右クリックか、EBSボリュームを選択した状態でアクションから「スナップショットの作成」を選びます。

名前と説明を入力して作成しましょう。

作成されたスナップショットの確認は左メニューのスナップショットを選択すると、スナップショット一覧が表示されますので、ステータスがcompletedになっているのを確認しましょう。

スナップショットからAMIイメージ作成
AMIの作成
スナップショットから直接EC2インスタンスを複製することはできないので、一度スナップショットからAMI(Amazon Machine Image)を作成します。
複製したいスナップショットを選択し、右クリックかアクションから「イメージの作成」を選びます。

AMIの設定
ここで詳細に色々設定を変更できるのですが、今回はなるだけ同じ構成のインスタンスを複製しますので、下記3項目だけ入力します。
名前
test-ec2-ami
説明
test-ec2-ami
アーキテクチャ
「i386」(32ビット)か「x86_64」(64ビット)かを選びます。
今回は元のEC2インスタンスをAmazon Linux AMIを利用して起動させていますので64ビットになるよう「x86_64」を選択します。

作成したAMIの確認
作成されたAMIは左メニューのAMIを選択すると一覧で表示されます。

AMIからEC2インスタンスを複製
では先程作成したtest-ec2を元に作成したAMIからtest-ec2-2を作成したいと思います。
AMIからインスタンス作成
利用したいAMIを選択し、右クリックかアクションから「起動」を選択。

インスタンスタイプの選択
ここからはほとんど通常のEC2インスタンス立ち上げと手順は同じになります。
インスタンスタイプはt1.microを選択しました。

インスタンスの詳細の設定
ネットワーク
VPCに変更(元のEC2インスタンスと同じに設定)
サブネット
サブネットはサブネットワークの略で、上記VPC内に構築しているサブネットが選択に出てきます。
私の場合は元のEC2のサブネットをsubnet-ca362cbcに設定していましたので、今回は領域を分けて設定します。
サブネットを複数設定していない方はそのままでも問題ありません。

ストレージの追加
ここもデフォルトの設定で進みますが、容量を増やしたい方などは設定値を変更するといいと思います。

タグの追加
タグの追加は行わないので飛ばします。
セキュリティグループの設定
セキュリティグループは元のEC2インスタンス起動時に作成したセキュリティグループを選択します。
今回はテストで行っているので同じセキュリティグループを設定しましたが、用途によっては都度細かく設定した方が、常に安全ではあるかと思います。

インスタンス作成の確認
最後に設定の確認を行ったら起動させましょう。
この際にも通常のEC2起動時と同じようにsshログイン用の鍵認証の設定が必要になります。

インスタンスの確認
では左メニューのインスタンスを選択し、現在のインスタンス一覧を確認してみましょう。
先程AMIから起動したインスタンス(test-ec2-2)が立ち上がっていますね。
ブラウザで確認
今回は表示だけ確認できればいいので固定IPの関連付けなどは行いません。
固定IPの関連付けなどの手順が知りたい方は下記記事を参照してください。
EC2インスタンスのプロパティで「IPv4 パブリック IP」を確認しブラウザに入力して表示確認してみましょう。
元のEC2インスタンスにNginxをインストールし、起動時に実行を設定しているのでそのまま表示されますね。

以上でスナップショットからのインスタンス複製手順は終わります。