[AWS] EC2インスタンスのAMIを作成する。

こんにちは、与儀です。

既に作成されたEC2インスタンスのAMI(Amazon Machine Images)を作成してみます。
AMIの作成により手軽にインスタンスのバックアップを取得することができます。

AMIの作成に関する公式ドキュメントはこちら Amazon EBS-Backed Linux AMI の作成

私はよくAMIイメージという呼び方をしていますが、AMIイメージとスナップショットの言葉がごちゃまぜになることがあります。この違いについては下記の参考サイトにも詳しく書かれています。

【参考サイト】「AWSトレーニングでよくいただくご質問シリーズ – 第一回 Amazon Machine Image (AMI) とスナップショットの違い」によると、

スナップショット = 「EBS ボリュームの中のデータ」を特定のタイミングで取得しS3に保存したもの

AMI = 「EBS ボリュームの中のデータ(スナップショット) とインスタンスを構成する管理情報」を含む起動テンプレート

ということなので、この違いはしっかりと認識しておくといいですね。

では以下に手順を。

EC2マネジメントコンソールにて→インスタンスを表示。

対象のインスタンスを選択して右クリック→「イメージ」→「イメージの作成」を選択。

イメージの作成
「イメージ名」、「イメージの説明」に任意の名前を付けます。
赤枠で囲っている「再起動しない」の項目にチェックに入れるとインスタンスの再起動なしで、イメージ取得されます。インスタンスをチェックに入れない場合はインスタンスに再起動が発生して、イメージ取得されます。
本番サービス稼働中のインスタンスに対して「再起動しない」にチェックを入れないでAMI作成をすると、インスタンス再起動がかかってしまいますのでご注意ください!

(バックアップ取得時のデータの整合性の観点から、インスタンス再起動ありによるデータ取得が推奨されますが、今回は再起動なしで実施します。)

イメージの作成が開始されました。

AMIの画面にて対象AMIのステータスが「pending」で作成中であることがわかります。

ステータスが「available」となりイメージ作成完了しました!

AMI作成の際、裏側ではAMI作成対象インスタンスのEBSボリュームのスナップショットも取得されています。
スナップショットのページに行くと、下記のようにスナップショットが取得されていることがわかります。

なお、再起動なしでのスナップショット作成に当たり、基本的にサービスへの影響はないですが、EBSボリュームへのI/Oが増加して、パフォーマンスに影響が出ることがありますので、I/Oが少ない状態でのスナップショット作成を行うことが推奨されます。

ちなみに、(EBSボリュームの)スナップショットは、データの耐久性が99.999999999%のAmazon S3(Simple Storage Service)に保管されます。S3の裏側では同一リージョン内にある3つ以上のデータセンターへ自動でデータ冗長化されてます。データを自分で削除をしない限り、ほぼ消えることはないと思っていい、とても強力なサービスがS3ですね。

以上です。