InfraAcademy

InfraAcademy Blog

EC2のAMIとは?AMIを利用してインスタンスを作成する方法を解説します【AWS】

| #aws #aws入門 #ec2
Linuxをブラウザで試してみる

Linux・ネットワーク・AWSを、環境構築なしで実践学習できます

こんにちは、フルスタックエンジニアの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マネジメントコンソールでは、大まかに次の流れです。

  1. EC2コンソールを開く
  2. AMIを作成したいインスタンスを選択する
  3. 「アクション」を開く
  4. 「イメージとテンプレート」を選択する
  5. 「イメージを作成」を選択する
  6. 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を探して起動する方法を紹介していました。

DebianのAMIを選択

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

現在もAWS MarketplaceにはAMI形式の製品がありますが、画面や起動方法は変更されています。

そのため、以下の画像は操作の流れを理解するための過去の画面としてご覧ください。

AMIのバージョン

Marketplace製品では、ソフトウェアによって追加料金や利用条件が設定されている場合があります。

無料のOSを使いたいだけであれば、EC2の起動画面からAmazon LinuxやUbuntuなどのAMIを選ぶ方法がシンプルです。

EC2の設定をする

AMIを選択した後は、通常のEC2作成と同じように設定します。

AMIの設定

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

EC2インスタンスの設定

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

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

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入門講座も用意しています。

Next Action

記事で読んだ内容を、講座で実装してみましょう

InfraAcademyでは、ブラウザ上でLinuxやネットワークの実践環境を使いながら学習できます。無料で始められる講座から、学習の流れを試せます。

この記事を書いた人

ryu

InfraAcademy運営 / エンジニア

エンジニア歴10年。Linux、ネットワーク、クラウドを中心に、実務で役立つインフラ技術を初心者にもわかりやすく解説しています。

X: @ryu63614894

Related

関連記事

ブログ一覧へ

Roadmap

まずはこの4講座から

ログインすれば無料で始められる講座です。気になったテーマから手を動かして学べます。

講座一覧を見る