こんにちは、フルスタックエンジニアのryuです。
今回の記事では、AWS EC2で利用するAMI(Amazon Machine Image)について解説します。
AMIは、EC2インスタンスを作成するときに使うサーバーのひな型です。
AWSを勉強し始めると、EC2の作成画面でAmazon LinuxやUbuntuなどを選びますが、このとき選んでいるものがAMIです。
また、自分で設定したEC2インスタンスからAMIを作成しておけば、同じ構成のサーバーをもう一度作ることもできます。
この記事では、AMIとは何か、EBSスナップショットとの違い、どのような場面で使うのか、AMIからEC2を作成する方法まで初心者向けに解説します。
EC2のAMIとは?¶
AMIとはAmazon Machine Imageの略で、EC2インスタンスを起動するためのイメージです。
AMIにはOS、アーキテクチャ、ルートボリュームの情報など、EC2を起動するために必要な情報が含まれています。
たとえばEC2でAmazon Linuxを使いたい場合はAmazon LinuxのAMI、Ubuntuを使いたい場合はUbuntuのAMIを選択します。
AMI
↓
EC2インスタンスを起動
↓
Linuxサーバーとして利用
さらに、自分で作成したEC2へApacheやアプリケーションをインストールし、その状態から新しいAMIを作成することもできます。
そのAMIから別のEC2を起動すれば、初期設定済みのサーバーを作成できます。
AMIにはどのような情報が含まれる?¶
AMIは単純にOSのISOファイルを保存したものではありません。
EC2を起動するために必要な情報がまとまっています。
主な要素を整理すると次のようになります。
| 項目 | 内容 |
|---|---|
| OS | Amazon Linux、Ubuntu、Windows Serverなど |
| アーキテクチャ | x86_64、arm64など |
| ルートボリューム | OSやファイルが保存されるディスク |
| ブロックデバイス | 起動時に作成するEBSボリュームなど |
| 起動権限 | どのAWSアカウントがAMIを利用できるか |
AMIを選ぶときは、利用したいEC2インスタンスタイプとアーキテクチャが合っている必要があります。
たとえばArmベースのGravitonインスタンスを利用する場合は、対応するarm64のAMIを選びます。
AMIはどこから選ぶ?¶
AMIにはいくつか種類があります。
EC2を作成するときは、主に次のようなAMIから選択できます。
| AMI | 例 |
|---|---|
| AWSが提供するAMI | Amazon Linuxなど |
| OSベンダーなどが提供するAMI | Ubuntuなど |
| 自分で作成したAMI | 設定済みWebサーバーなど |
| 共有されたAMI | 別AWSアカウントから共有されたもの |
| AWS Marketplace | ソフトウェア入りのAMIなど |
AWS初心者であれば、まずAmazon LinuxやUbuntuなど、提供元が明確なAMIから利用するのがおすすめです。
第三者が公開しているAMIを利用するときは、提供元や料金、ソフトウェアの内容を確認しましょう。
AMIとEBSスナップショットの違い¶
AMIと一緒に覚えておきたいのがEBSスナップショットです。
どちらもバックアップのように見えるため、最初は違いが分かりにくいと思います。
簡単に整理すると次の通りです。
| 項目 | AMI | EBSスナップショット |
|---|---|---|
| 主な目的 | EC2を起動するためのイメージ | EBSボリュームのバックアップ |
| EC2起動 | そのままEC2起動に利用できる | 通常はEBSボリューム復元に利用 |
| 含む情報 | OSや起動設定、EBS情報など | EBS内のデータ |
| 作成時 | 必要なEBSスナップショットも作成される | 単体で作成できる |
EBS-backedのEC2インスタンスからAMIを作成すると、ルートボリュームなどのEBSスナップショットも作成されます。
つまり、
EC2インスタンス
↓ AMI作成
AMI
└ EBSスナップショット
という関係で考えると分かりやすいです。
【関連記事】EBSスナップショットについては、EC2のバックアップと復旧の方法は?EBSスナップショットについて解説も参考にしてください。
AMIを利用するメリット¶
AMIの主な用途は、EC2の複製と復旧です。
同じ設定のEC2を作成しやすい¶
たとえば、Apacheをインストールし、必要な設定を済ませたEC2があるとします。
このEC2からAMIを作成しておけば、そのAMIを使って別のEC2を起動できます。
EC2
Apacheインストール済み
設定済み
↓
AMI
↙ ↘
EC2-A EC2-B
1台ずつ手作業で同じ設定をするより、構成を揃えやすくなります。
ただし、本格的に多数のサーバーを管理する場合はAMIだけに頼るのではなく、CloudFormationやTerraform、Ansibleなどを使って構成をコード化する方法もあります。
障害時の復旧に利用できる¶
正常に動作しているEC2からAMIを作成しておけば、そのAMIを元に新しいEC2を作成できます。
ただし、AMIはEC2をその場で巻き戻す機能ではありません。
AMIから新しいEC2インスタンスを起動して復旧するという考え方になります。
データベースなど頻繁に更新されるデータについては、AMIだけでは十分ではありません。RDSのバックアップやEBSスナップショットなど、データに合わせたバックアップ方法も考える必要があります。
EC2インスタンスからAMIを作成する¶
既に設定済みのEC2がある場合、そのインスタンスから自分専用のAMIを作成できます。
AWSマネジメントコンソールでは、大まかに次の流れです。
- EC2コンソールを開く
- AMIを作成したいインスタンスを選択する
- 「アクション」を開く
- 「イメージとテンプレート」を選択する
- 「イメージを作成」を選択する
- AMI名などを設定して作成する
作成直後のAMIはpendingになり、作成が完了するとavailableになります。
AWS CLIでは次のように作成できます。
aws ec2 create-image \
--instance-id i-1234567890abcdef0 \
--name "my-web-server"
通常、AMI作成時にはデータの整合性を保つため、EC2インスタンスが再起動される設定になっています。
本番環境で作成する場合は、サービスへの影響も確認してから実施してください。
AMI作成後のスナップショット料金に注意する¶
AMIを作成すると、EBS-backedのAMIでは関連するEBSスナップショットも作成されます。
ここで注意したいのが、AMIを使わなくなったときです。
AMIを登録解除しただけで、関連するスナップショットが残っているとストレージ料金が発生し続ける場合があります。
不要なAMIを整理するときは、
AMI
EBSスナップショット
の両方を確認しましょう。
学習用に何度もAMIを作成していると、古いスナップショットが残りやすいので注意してください。
【関連記事】AWSで想定外の課金を防ぎたい方は、EC2の無料枠を超えて課金されてしまった話も参考になります。
AMIからEC2インスタンスを作成する¶
AMIを用意できたら、そのAMIから新しいEC2を起動できます。
自分で作成したAMIの場合は、EC2コンソールのAMI一覧から対象のAMIを選択し、インスタンスを起動します。
その後は通常のEC2と同じように、インスタンスタイプ、VPC、サブネット、セキュリティグループ、ストレージなどを設定します。
AWS MarketplaceのAMIを利用する場合¶
以前の記事では、AWS MarketplaceからDebianのAMIを探して起動する方法を紹介していました。

当時の画面では「Continue to Subscribe」などから進めていました。

現在もAWS MarketplaceにはAMI形式の製品がありますが、画面や起動方法は変更されています。
そのため、以下の画像は操作の流れを理解するための過去の画面としてご覧ください。

Marketplace製品では、ソフトウェアによって追加料金や利用条件が設定されている場合があります。
無料のOSを使いたいだけであれば、EC2の起動画面からAmazon LinuxやUbuntuなどのAMIを選ぶ方法がシンプルです。
EC2の設定をする¶
AMIを選択した後は、通常のEC2作成と同じように設定します。

インスタンスタイプ、VPC、サブネットなどを設定します。

最後に設定内容を確認してインスタンスを起動します。

EC2そのものの作成方法を詳しく確認したい方は、EC2インスタンスの作成方法解説!サーバーを作成して接続してみるも参考にしてください。
AMIはリージョンごとに管理される¶
AMIを使うときにもう一つ覚えておきたいのがリージョンです。
AMIはリージョン単位のリソースです。
たとえば東京リージョンで作成したAMIを、そのまま大阪やバージニア北部リージョンから選択できるわけではありません。
別リージョンで同じAMIを利用したい場合は、AMIをコピーします。
東京リージョン
AMI
↓ コピー
大阪リージョン
AMI
また、自分で作成したAMIは他のAWSアカウントへ共有することもできます。
複数アカウントや複数リージョンを使うようになったら、この違いを覚えておきましょう。
AMIを使うときの注意点¶
AMIは便利ですが、何でもAMIへ保存すれば良いわけではありません。
特に次の点に注意してください。
| 注意点 | 内容 |
|---|---|
| 古いAMI | OSやパッケージが古くなる可能性がある |
| 認証情報 | APIキーやパスワードをAMIへ含めない |
| スナップショット | 不要になったら料金も確認する |
| リージョン | AMIはリージョンごとに管理される |
| Marketplace | ソフトウェア料金や利用条件を確認する |
数年前に作成したAMIからサーバーを起動すると、OSやパッケージが古い状態のままになることがあります。
長期間使うテンプレートであれば、定期的にAMIを更新することも大切です。
EC2のAMIとは?まとめ¶
今回の記事では、EC2のAMIについて解説しました。
AMIは、EC2インスタンスを起動するためのイメージです。
Amazon LinuxやUbuntuなどのAMIから新しいEC2を作成できるだけではなく、自分で設定したEC2から独自のAMIを作成することもできます。
覚えておきたいポイントは次の通りです。
- AMIはEC2を起動するためのひな型
- EBS-backed AMIではEBSスナップショットも関係する
- 設定済みEC2の複製や復旧に利用できる
- AMIはリージョン単位で管理される
- 不要なAMIとスナップショットは料金も確認する
AWSを学ぶときは、AMIだけを単独で覚えるのではなく、EC2、EBS、スナップショットとの関係を一緒に理解すると分かりやすくなります。
InfraAcademyでは、AWSの基礎をシミュレーターや教材を使いながら学習できます。
AWSを基礎から学びたい方は、AWS講座をご覧ください。
EC2へ接続した後のLinux操作から学びたい方は、Linux入門講座も用意しています。





