【初学者向け】EC2インスタンスからAMIを作成する


この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので十分ご注意ください。

皆様こんにちは。
今回は研修で行ったEC2インスタンスからAMIの作成をブログでまとめていきたいと思います。

前提条件

これからAMIを作成していきますが事前に下記の要件を満たしているものとして話を進めさせて頂きます。

・自分のAWSアカウントを保有しており、AWSマネジメントコンソールにサインインできること。

・最低一つはAMIを作成できるEC2インスタンスを構築済みであること。

AMIとは

AMIは"Amazon マシンイメージ"の略であり、ソフトウェア構成であるOS(WindowsやLinux等)、アプリケーションサーバー、アプリケーションなどの記録をまとめたテンプレートです。

作成したAMIは別のAWSアカウントと共有したり他のリージョンへコピーすることが可能です。

上記画像のクイックスタートAMIはAWS側が作成したものですが、自分でAMIを作成することも可能です。

AMIの作成

AMIの作成方法

AMIの作成はインスタンスからの作成と、スナップショットからの作成の二種類がありますが、今回はタイトルにあるとおりインスタンスからの作成で進めていきます。

EC2インスタンスからAMI作成

それでは早速AMIを作成していきましょう。

インスタンスの状態は実行中、停止中どちらでも問題はないですが、実行中にAMIを作成して再起動しない場合、ファイルシステムの整合性は保証されないと公式ドキュメントに記載されているため注意が必要です。

[No reboot] を選択した場合、Amazon では作成されたイメージのファイルシステムの整合性を保証できません。
AWS公式ドキュメントより

まずEC2のマネジメントコンソールから、
「インスタンス→AMIを作成したいEC2チェックボックス→アクション→イメージとテンプレート→イメージを作成」の順にクリックしていきます。

イメージ作成の画面が出ましたら下記の項目にしたがって設定していきます。

設定項目 設定値 説明
イメージ名 CPI-TEST-EC2-AMI AMIのもとになったEC2を識別しやすい名称を設定します。(日本語不可)
イメージ説明 TEST AMI テスト作成であることの説明です。(日本語不可)
再起動しない 有効化しない(デフォルト値) 今回はテスト作成なのでデフォルトにしました=再起動する。再起動しない場合ファイルシステムの整合性を保証しないとAWSの公式ドキュメントに記載されているため、注意が必要です。
インスタンスボリューム サイズ:8GiB (デフォルト値), 終了時に削除:有効化(デフォルト値) 作成元のEC2に紐づいているインスタンスボリュームの設定がデフォルト値になっています。今回は変更する必要がないのでデフォルト設定のままで作成します。「終了時に削除」はEC2を削除したときにインスタンスボリュームも一緒に削除するかどうかの設定です。
タグ イメージとスナップショットに対し一緒にタグを付けます(デフォルト値) 今回はテスト作成なのでデフォルトにしました。「イメージとスナップショットに対し個別にタグを付けます」を選択すると、別々にタグ付けすることも可能です。
キー Name 識別しやすいようにNameタグをつけます。
CPI-TEST-EC2-AMI イメージ名と同じものを設定します。

設定した項目を入力していき、すべて設定出来たら”イメージ作成”をクリックします。

EC2のマネジメントコンソールから”AMI”をクリックしAMIが作成できているか確認します。


正常に作成できていることを確認できました。

作成したAMIを使用してEC2を起動したい場合は下記画像の赤枠「Launch instance from AMI」から起動できます。

追加補足

作成したAMIを他のAWSアカウントと共有する

今回作成したAMIを他のAWSアカウントと共有する方法を紹介したいと思います。
実際に他のAWSアカウントと共有してみましょう。
この記事で作成したAMIのAWSアカウントをアカウントAとし、共有したいAWSアカウントをアカウントBとします。
「AMI→共有したいAMIのチェックボックス→アクション→AMI許可を編集」の順にクリックしていきます

「AMI許可を編集」の画面を開けたら、「共有アカウント」から「アカウントIDを追加」を選択します。

「AMIをAWSアカウントと共有」の画面が出たら、共有したいAWSアカウントIDを入力し、(12桁のコード)「AMIを共有」をクリック。

「共有アカウント」で自分が入力したIDを確認し、問題がなければ「変更を保存」をクリックします。

共有したAMI確認するため、共有先のAWSアカウントで再ログインし、共有できているか確認します。
下記画像上部左の赤枠の部分が自己保有だと共有したAMIが表示されないので、プライベートイメージへ変更します(理由は”自己所有、 プライベートイメージ、パブリックイメージの違いについて”で説明)。

AMI名と所有者のID(今回AWSを作成したアカウントの12桁のコード)から、共有できていることを確認できました。

作成したAMIを他のリージョンへコピーする

今回作成したAMIを他のリージョンへコピーする方法を紹介したいと思います。
AMIはオハイオリージョンで作成したものですが、これを実際にオレゴンリージョンへコピーしていきます。
「AMI→コピーしたいAMIのチェックボックス→アクション→AMIをコピー」の順にクリックしていきます。


AMIをコピーの画面が出ましたら下記の項目にしたがって設定していきます。

設定項目 設定値 説明
AMIコピー名 CPI-TEST-EC2-AMI-FromOhio コピー元のリージョンをわかりやすくするためにこの名称を設定しました。(日本語不可)
AMIコピーの説明 [Copied ami-xxxxxxxxxxx (CPI-TEST-EC2-AMI) from us-east-2] CPI-TEST-EC2-AMI(デフォルト値) ua-east-2はオハイオのことです。
送信先リージョン 米国西部(オレゴン) 今回は別リージョンへのコピーが目的なので、オハイオ以外ならどこでも大丈夫です。
AMIコピーのEBSスナップショットを暗号化 なし(デフォルト値) テスト作成のため、今回はデフォルトのままでいきます。

設定した項目を入力していき、すべて設定出来たら”AMIをコピー”をクリックします。

最後にオレゴンリージョンへ移動し、コピーできているか確認します。


問題なくコピーできていることを確認できました。

自己所有、 プライベートイメージ、パブリックイメージの違いについて


自己所有、 パブリックイメージ、プライベートイメージのそれぞれの違いについて気になったので調べてみました。

自己保有
・自分が作成したAMI
・自己保有タブには自分が作成したパブリックイメージとプライベートイメージ両方が含まれる。

プライベートイメージ
・自分が作成したAMI(AMIの可用性をプライベートに設定したもの)と他のAWSアカウントのAMI(そのAWSアカウントがあなたにAMIの使用を許可したもの)。
・自己作成のAMIでも、可用性をパブリックに設定したものはプライベートイメージタブから表示されない。

パブリックイメージ
・自分が作成したAMI(AMIの可用性をパブリックに設定したもの)と他のAWSアカウントがパブリックに公開しているAMI。
・各リージョンにつき数万~十数万のパブリックイメージが存在している。
・自己作成のAMIでも、可視性をプライベートに設定したものはパブリックイメージタブから表示されない。

最後に

AWSの基本的な部分であるAMIの知識をブログ投稿を通して再確認出来てよかったです。
これからも皆様よろしくお願いします。

Last modified: 2022-04-19

Author