Amazon EBS-backed AMI を作成する - Amazon Elastic Compute Cloud

Amazon EBS-backed AMI を作成する

Amazon EC2 インスタンスまたは Amazon EC2 インスタンスのルートデバイスのスナップショットから、独自の Amazon EBS-backed AMI を作成できます。

インスタンスから Amazon EBS-backed AMI を作成するには、既存の Amazon EBS-backed AMI を使用してインスタンスを起動することから開始します。この AMI は、例えば、AWS Marketplace から取得した AMI、VM Import/Export を使用して作成した AMI、またはユーザーがアクセス可能なその他の任意の AMI です。特定の要件を満たすようにインスタンスをカスタマイズしたら、新しい AMI を作成して登録します。その後、新しい AMI を使用して、カスタマイズした新しいインスタンスを起動できます。

以下に説明された手順は、暗号化された Amazon Elastic Block Store (Amazon EBS) ボリューム (ルートボリュームを含む) でバックアップされた Amazon EC2 インスタンスにも、暗号化されていないボリューム同様に機能します。

AMI の作成プロセスは、Instance Store-Backed AMIs の場合とは異なります。詳細については、「instance store-backed AMI を作成する」を参照してください。

インスタンスからの AMI 作成の概要

次の図は、実行中の EC2 インスタンスから Amazon EBS-backed AMI を作成するプロセスをまとめたものです。既存の AMI から開始して、インスタンスを起動してカスタマイズし、そこから新しい AMI を作成し、最後に新しい AMI のインスタンスを起動します。図表内の数字は、次の説明の数値と一致します。

インスタンスから AMI を作成するワークフロー
1 — AMI #1: 既存の AMI から始める

作成する AMI に似た既存の AMI を検索します。例えば、AWS Marketplace から取得した AMI、VM Import/Export を使用して作成した AMI、またはユーザーがアクセス可能なその他の任意の AMI です。この AMI を必要に応じてカスタマイズします。

図表内の EBS ルートボリュームスナップショット #1 は、AMI が Amazon EBS-backed AMI であり、ルートボリュームに関する情報がこのスナップショットに格納されていることを示します。

2 — 既存の AMI からインスタンスを起動する

AMI を設定する方法は、新しい AMI のベースとなる AMI からインスタンスを起動し、インスタンスをカスタマイズすることです (図表内の 3)。次に、カスタマイズを含む新しい AMI を作成します (図表内の 4)。

3 — EC2 インスタンス #1: インスタンスをカスタマイズする

インスタンスに接続し、必要に応じてカスタマイズします。新しい AMI には、これらのカスタマイズが含まれます。

インスタンスで次のアクションを実行して、インスタンスをカスタマイズできます。

  • ソフトウェアやアプリケーションをインストールする

  • データをコピーする

  • 起動時間を短縮するために一時ファイルの消去、ハードディスクのデフラグ、占有領域の開放処理を行う。

  • 追加の EBS ボリュームをアタッチする

4 – イメージを作成する

インスタンスから AMI を作成する際に、Amazon EC2 がインスタンスをシャットダウンしてから AMI を作成するのは、インスタンス上のすべての動作を停止し、作成プロセス中に一貫した状態が保たれるようにするためです。インスタンスが一貫した状態にあり、適切に AMI を作成できる場合、インスタンスの電源を落として再起動しないように、Amazon EC2 に指定できます。XFS などの一部のファイルシステムでは、アクティビティのフリーズおよびフリーズ解除が可能なため、インスタンスを再起動しなくてもイメージを安全に作成できます。

AMI 作成プロセスの間、Amazon EC2 はインスタンスのルートボリュームとインスタンスにアタッチされているその他の EBS ボリュームのスナップショットを作成します。AMI の登録を解除してスナップショットを削除するまで、スナップショットは課金の対象となります。インスタンスにアタッチされるいずれかのボリュームが暗号化されている場合、新しい AMI は、Amazon EBS 暗号化をサポートするインスタンスでのみ正常に起動します。

ボリュームのサイズによっては、AMI 作成プロセスの完了に数分かかる場合があります (最長で 24 時間かかることもあります)。AMI を作成する前に、ボリュームのスナップショットを作成しておくと、効率が向上する可能性があります。この方法では、AMI を作成する際に作成する必要があるのは小さい差分スナップショットのみになるため、プロセスがよりすばやく完了します (スナップショット作成の合計時間は同じです)。

5 — AMI #2: 新しい AMI

プロセスが完了すると、新しい AMI と、インスタンスのルートボリュームから作成されたスナップショット (スナップショット #2) が得られます。ルートデバイスボリュームに加えて、インスタンスストアボリュームまたは EBS ボリュームをインスタンスに追加した場合、新しい AMI のブロックデバイスマッピングにこれらのボリュームの情報が含まれます。

Amazon EC2 では AMI は自動的に登録されます。

6 – 新しい AMI からインスタンスを起動する

新しい AMI を使用してインスタンスを起動できます。

7 — EC2 インスタンス #2: 新しいインスタンス

ユーザーが新しい AMI を使用してインスタンスを起動すると、Amazon EC2 はスナップショットを使用して、そのインスタンスのルートボリュームのために新しい EBS ボリュームを作成します。インスタンスのカスタマイズ時に、インスタンスストアボリュームまたは EBS ボリュームを追加した場合、新しい AMI のブロックデバイスマッピングにこれらのボリュームの情報が含まれ、新しい AMI から起動するインスタンスのブロックデバイスマッピングに自動的にこれらのボリュームの情報が含まれます。新しいインスタンスのブロックデバイスマッピングに指定されているインスタンスストアボリュームは新しく、AMI の作成に使用したインスタンスのインスタンスストアボリュームからのデータは含まれていません。EBS ボリュームのデータは永続的です。詳細については、Amazon EC2 インスタンスでのボリュームのブロックデバイスマッピング を参照してください。

EBS-backed AMI から新しいインスタンスを作成する場合、本稼働環境に移す前にそのルートボリュームと追加 EBS ストレージの両方を初期化する必要があります。詳細については、「Amazon EBS ユーザーガイド」の「Amazon EBS ボリュームの初期化」を参照してください。

インスタンスから AMI を作成する

既存のインスタンスがある場合は、このインスタンスから AMI を作成できます。

Console
AMI を作成するには
  1. Amazon EC2 コンソール (https://console.aws.amazon.com/ec2/) を開きます。

  2. ナビゲーションペインで、[インスタンス] を選択します。

  3. AIM を作成されるインスタンスを選択し、[Actions] (アクション)、[Image and templates] (イメージとテンプレート) の順に選択し、[Create image] (イメージの作成) をクリックします。

    ヒント

    このオプションが無効になっている場合、そのインスタンスは Amazon EBS-Backed インスタンスではありません。

  4. [Create image] (イメージの作成) ページで、次の情報を指定します。

    1. [Image name] (イメージ名) に、最大 127 文字までイメージの一意の名前を入力します。

    2. [Image description] (イメージの説明) に、最大 255 文字までイメージの説明を入力します (オプション)。

    3. [インスタンスを再起動] の場合は、チェックボックスをオンのまま (デフォルト) にするか、クリアします。

      • [インスタンスを再起動] がオンの場合、Amazon EC2 が新しい AMI を作成するとき、データの保管時にアタッチされたボリュームのスナップショットを取得できるようにインスタンスを再起動して、一貫性のある状態を維持します。

      • [インスタンスを再起動] をクリアすると、Amazon EC2 が新しい AMI を作成しても、インスタンスはシャットダウンおよび再起動されません。

      警告

      [インスタンスを再起動] をクリアした場合は、作成されたイメージのファイルシステムの整合性は保証されません。

    4. [Instance volumes] (インスタンスボリューム) - 次のとおり、ルートボリュームを変更し、Amazon EBS およびインスタンスストアボリュームを追加できます。

      1. ルートボリュームは、最初の行で定義されます。

        • ルートボリュームのサイズを変更するには、[サイズ] に必要な値を入力します。

        • [終了時に削除] を選択した場合、この AMI から作成されたインスタンスを終了すると、EBS ボリュームが削除されます。[終了時に削除] をオフにした場合は、インスタンスを終了しても、EBS ボリュームは削除されません。詳細については、インスタンスの終了時にデータを保持する を参照してください。

      2. EBS ボリュームを追加するには、[Add Volume] を選択します (これにより、新しい行が追加されます)。[ストレージタイプ][EBS] を選択し、行のフィールドに入力します。作成した AMI からインスタンスを起動すると、追加したボリュームは自動的にそのインスタンスにアタッチされます。空のボリュームはフォーマットしてマウントする必要があります。スナップショットベースのボリュームはマウントする必要があります。

      3. インスタンスストアボリュームを追加するには、「Amazon EC2 AMI にインスタンスストアボリュームを追加するを参照してください。その後新しい AMI からインスタンスを起動すると、追加されたボリュームは自動的に初期化されてマウントされます。これらのボリュームには、AMI の作成に使用された実行中のインスタンスのインスタンスストアボリュームのデータは含まれません。

    5. タグ - AMI とスナップショットに同じタグを付けることも、異なるタグを付けることもできます。

      • AMI とスナップショットに同じタグを付けるには、[イメージとスナップショットに一緒にタグを付ける] を選択します。AMI と作成されるすべてのスナップショットには、同じタグが適用されます。

      • AMI とスナップショットに異なるタグを付けるには、[イメージとスナップショットに個別にタグを付ける] を選択します。AMI と作成されるスナップショットには、異なるタグが適用されます。ただし、すべてのスナップショットに同じタグが付けられます。各スナップショットに異なるタグを付けることはできません。

      (オプション) タグを追加するには、[Add tag] を選択し、そのタグのキーと値を入力します。各タグについて、これを繰り返します。

    6. AMI を作成する準備ができたら、[Create image] (イメージの作成) を選択します。

  5. 作成中に AMI のステータスを表示するには

    1. ナビゲーションペインで [AMI] を選択します。

    2. フィルタを [Owned by me] (自分が所有) に設定し、リストから AMI を探します。

      最初は、ステータスは pending ですが、数分後 available に変わります。

  6. (オプション) 新しい AMI に作成されたスナップショットを表示するには:

    1. 前のステップで特定した AMI の ID をメモします。

    2. ナビゲーションペインで、[Snapshots] を選択します。

    3. フィルターを [Owned by me] (自分が所有) に設定し、新しい AMI ID のスナップショットを [Description] (説明) 列で検索します。

      ユーザーがこの AMI からインスタンスを起動すると、Amazon EC2 はこのスナップショットを使用して、ルートデバイスボリュームを作成します。

AWS CLI

次のいずれかのコマンドを使用できます。これらのコマンドラインインターフェイスの詳細については、Amazon EC2 へのアクセスを参照してください。

スナップショットから AMI を作成する

インスタンスのルートデバイスボリュームのスナップショットがある場合、このスナップショットから AMI を作成できます。

注記

ほとんどの場合、Windows、RedHat、SUSE、SQL Server の AMI には、正しいライセンス情報が存在する必要があります。詳細については、「AMI の請求情報について」を参照してください。スナップショットから AMI を作成する場合、RegisterImage オペレーションはスナップショットのメタデータから正しい請求情報を取得しますが、これには適切なメタデータが必要です。正しい請求情報が適用されたかどうかを確認するには、新しい AMI の [プラットフォームの詳細] フィールドを確認します。フィールドが空であるか、所定のオペレーティングシステムコード (Windows、RedHat、SUSE、SQL など) と一致しない場合、AMI の作成は失敗しているため、この AMI を破棄して「インスタンスから AMI を作成する」の手順に従う必要があります。

Console
スナップショットから AMI を作成するには
  1. Amazon EC2 コンソール (https://console.aws.amazon.com/ec2/) を開きます。

  2. ナビゲーションペインで、[Snapshots] を選択します。

  3. AMI の作成元になるスナップショットを選択してから、[Actions] (アクション)、[Create image from snapshot] (スナップショットからイメージを作成) の順に選択します。

  4. [スナップショットからイメージを作成] ページで、次の情報を指定します。

    1. [Image name] (イメージ名) に、イメージのわかりやすい名前を入力します。

    2. [Description] (説明) に、イメージの簡単な説明を入力します。

    3. [Architecture] (アーキテクチャ) で、イメージアーキテクチャを選択します。32 ビットの場合は [i386]、64 ビットの場合は [x86_64]、64 ビット ARM の場合は [arm64]、64 ビット macOS の場合は [x86_64] をそれぞれ選択します。

    4. [Root device name] (ルートデバイス名) に、ルートデバイスボリュームに使用するデバイス名を入力します。詳細については、Amazon EC2 インスタンス上のボリュームのデバイス名 を参照してください。

    5. [Virtualization type] (仮想化タイプ) で、この AMI から起動されたインスタンスで使用する仮想化タイプを選択します。詳細については、仮想化タイプ を参照してください。

    6. (準仮想化の場合のみ) [Kernel ID] (カーネル ID) で、イメージのオペレーティングシステムのカーネルを選択します。インスタンスのルートデバイスボリュームのスナップショットを使用している場合、元のインスタンスと同じカーネル ID を選択します。不明な場合は、デフォルトのカーネルを使用してください。

    7. (準仮想仮想化の場合のみ) [RAM disk ID] (RAM ディスク ID) で、イメージの RAM ディスクを選択します。カーネルを選択した場合は、サポートするドライバーとともに特定の RAM ディスクを選択しなければならない可能性があります。

    8. [ブートモード] では、イメージのブートモードを選択するか [デフォルトを使用] を選択し、この AMI でインスタンスを起動したときにインスタンスタイプでサポートされているブートモードで起動するようにします。詳細については、「Amazon EC2 AMI のブートモードを設定する」を参照してください。

    9. (オプション) [ブロックデバイスマッピング] で、ルートボリュームをカスタマイズし、データボリュームを追加します。

      ボリュームごとに、サイズ、タイプ、パフォーマンス特性、終了時の削除の動作、および暗号化ステータスを指定できます。ルートボリュームについては、サイズをスナップショットのサイズより小さくすることはできません。ボリュームタイプには、汎用 SSD gp3 がデフォルトで選択されています。

    10. (オプション) [タグ] で、新しい AMI に 1 つ以上のタグを追加できます。(オプション) タグを追加するには、[Add tag] を選択し、そのタグのキーと値を入力します。各タグについて、これを繰り返します。

    11. AMI を作成する準備ができたら、[Create image] (イメージの作成) を選択します。

  5. (Windows、RedHat、SUSE、SQL Server のみ) 正しい請求情報が適用されたかどうかを確認するには、新しい AMI の [プラットフォームの詳細] フィールドを確認します。フィールドが空であるか、所定のオペレーティングシステムコード (WindowsRedHat など) と一致しない場合、AMI の作成は失敗しているため、この AMI を破棄して「インスタンスから AMI を作成する」の手順に従う必要があります。

AWS CLI
コマンドラインを使用してスナップショットから AMI を作成するには

次のいずれかのコマンドを使用できます。これらのコマンドラインインターフェイスの詳細については、Amazon EC2 へのアクセスを参照してください。