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

Amazon EBS-backed Linux AMI を作成する

Amazon EBS-Backed Linux AMI を作成するには、既存の Amazon EBS-Backed Linux AMI から起動したインスタンスから始めます。例えば、AWS Marketplace から取得した AMI、AWS Server Migration ServiceVM Import/Export を使用して作成した AMI、またはユーザーがアクセス可能なその他の任意の AMI です。ニーズに合わせてインスタンスをカスタマイズしたら、新しい AMI を作成し、登録します。新しい AMI を使用して、カスタマイズした新しいインスタンスを起動できます。

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

AMI の作成プロセスは、Instance Store-Backed AMIs の場合とは異なります。Amazon EBS-backed インスタンスと instance store-backed インスタンスの違いの詳細と、インスタンスのルートデバイスタイプを判別する方法については、「ルートデバイスのストレージ」を参照してください。instance store-backed Linux AMI の作成に関する詳細については、「instance store-backed Linux AMI を作成する」を参照してください。

Amazon EBS-backed Windows AMI の作成の詳細については、「Windows インスタンスの Amazon EC2 ユーザーガイド」の「Amazon EBS-backed Windows AMI の作成」を参照してください。

Amazon EBS-Backed AMIs の作成の概要

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


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

作成する AMI に似た既存の AMI を検索します。例えば、AWS Marketplace から取得した AMI、AWS Server Migration ServiceVM 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 を作成する際に作成する必要があるのは小さい差分スナップショットのみになるため、プロセスがよりすばやく完了します (スナップショット作成の合計時間は同じです)。詳細については、Amazon EBS スナップショットの作成 を参照してください。

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 ボリュームのデータは永続的です。詳細については、ブロックデバイスマッピング を参照してください。

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

インスタンスからの Linux AMI の作成

AWS Management Console またはコマンドラインを使用して、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. [No reboot] (再起動しない) の場合は、[Enable] (有効化) チェックボックスをオフ (デフォルト) のままにするか、オンにします。

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

      • [再起動しない][有効化] チェックボックスがオンの場合、Amazon EC2 が新しい AMI を作成しても、インスタンスはシャットダウンおよび再起動されません。

      警告

      [No reboot] (再起動しない) を選択した場合、作成されたイメージの、ファイルシステムの整合性は保証されません。

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

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

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

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

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

      3. インスタンスストアボリュームを追加するには、「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 へのアクセスを参照してください。

スナップショットからの Linux AMI の作成

インスタンスのルートデバイスボリュームのスナップショットがある場合、AWS Management Console またはコマンドラインを使用して、そのスナップショットから 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] (ルートデバイス名) に、ルートデバイスボリュームに使用するデバイス名を入力します。詳細については、Linux インスタンスでのデバイス名 を参照してください。

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

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

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

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

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

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

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

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

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

作成した AMI からのインスタンスの起動

インスタンスまたはスナップショットから作成した AMI からインスタンスを起動できます。

新しい AMI からインスタンスを起動するには
  1. Amazon EC2 コンソール (https://console.aws.amazon.com/ec2/) を開きます。

  2. ナビゲーションペインの [Images (イメージ)] で、[AMIs (AMI)] を選択します。

  3. フィルタを [Owned by me (自分の所有)] に設定し、AMI を選択します。

  4. [AMI からインスタンスを起動する] を選択します。

  5. デフォルト値をそのまま使用するか、インスタンス起動ウィザードでカスタム値を指定します。詳細については、新しいインスタンス起動ウィザードを使用してインスタンスを起動する を参照してください。