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. 既存の AMI から開始します。

    1. Amazon EC2 コンソール (https://console.aws.amazon.com/ec2/) を開きます。

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

    3. 新しい AMI の開始点として機能する適切な EBS-backed AMI を選択します。

  2. AMI からインスタンスを起動します。

    選択した EBS-backed AMI のインスタンスを起動するには、[Launch instance from iage] (イメージからインスタンスを起動) (新コンソール) または [Launch] (起動) (旧コンソール) を選択します。ウィザードのデフォルト値をそのまま使用します。詳細については、新しいインスタンス起動ウィザードを使用してインスタンスを起動する を参照してください。

  3. インスタンスをカスタマイズします。

    インスタンスの実行中に、それに接続します。必要に応じてインスタンスで次のアクションを実行してインスタンスをカスタマイズできます。

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

    • データをコピーする

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

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

    (オプション) インスタンスにアタッチされているすべてのボリュームのスナップショットを作成する。スナップショット作成についての詳細は、Amazon EBS スナップショットの作成 を参照してください。

  4. インスタンスから AMI を作成します。

    1. ナビゲーションペインで、[Instances] を選択し、インスタンスを選択して、[Actions]、[Image and templates]、[Create Image] の順に選択します。

      ヒント

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

    2. [Create Image] ページで、以下の情報を指定し、[Create Image] を選択します。

      • イメージ名 - イメージの一意の名前。

      • イメージの説明 - (オプション) イメージの説明 (最大 255 文字)。

      • [No reboot] (再起動しない) - デフォルトでは、Amazon EC2 が新しい AMI を作成するとき、データの保存中にアタッチされたボリュームのスナップショットを取得できるようにインスタンスを再起動して、一貫性のある状態を維持します。[No reboot] (再起動しない) の設定では、[Enable] (有効化) チェックボックスをオンにすることで、Amazon EC2 がインスタンスをシャットダウンして再起動することを防げます。

        警告

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

      • インスタンスボリューム - このセクションのフィールドでは、ルートボリュームを変更し、Amazon EBS およびインスタンスストアボリュームを追加できます。

        • ルートボリュームは、最初の行で定義されます。ルートボリュームのサイズを変更するには、[サイズ] に必要な値を入力します。

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

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

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

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

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

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

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

    3. 作成中に AMI のステータスを表示するには、ナビゲーションペインで [AMI] を選択します。最初は、ステータスは pending ですが、数分後 available に変わります。

  5. (オプション) 新しい AMI に作成されたスナップショットを表示するには、[Snapshots (スナップショット)] を選択します。ユーザーがこの AMI からインスタンスを起動すると、Amazon はこのスナップショットを使用して、ルートデバイスボリュームを作成します。

  6. 新しい AMI からインスタンスを起動します。

    詳細については、古いインスタンス起動ウィザードを使用してインスタンスを起動する を参照してください。

    新しい実行中インスタンスには、前のステップで適用したカスタム設定がすべて含まれます。

AWS CLI

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

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

インスタンスのルートデバイスボリュームのスナップショットがある場合、AWS Management Console またはコマンドラインを使用して、そのスナップショットから AMI を作成できます。

New console

コンソールを使用してスナップショットから AMI を作成するには

  1. Amazon EC2 コンソール (https://console.aws.amazon.com/ec2/) を開きます。

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

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

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

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

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

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

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

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

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

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

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

  12. [イメージを作成] を選択します。

Old console

コンソールを使用してスナップショットから AMI を作成するには

  1. Amazon EC2 コンソール (https://console.aws.amazon.com/ec2/) を開きます。

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

  3. スナップショットを選択し、[Actions]、[Create Image] を選択します。

  4. [Create Image from EBS Snapshot] ダイアログボックスで、AMI を作成するためのフィールドに入力し、[Create] を選択します。親インスタンスを再作成する場合は、親インスタンスと同じオプションを選択します。

    • Architecture: 32 ビットの場合は [i386] を、64 ビットの場合は [x86_64] を選択します。

    • Root device name: ルートボリュームの適切な名前を入力します。詳細については、「Linux インスタンスでのデバイス名」を参照してください。

    • Virtualization type: この AMI から起動されるインスタンスで準仮想化 (PV) またはハードウェア仮想マシン (HVM) のいずれの仮想化を使用するかを選択します。詳細については、「Linux AMI 仮想化タイプ」を参照してください。

    • (PV 仮想化タイプのみ) Kernel ID および RAM disk ID: リストから AKI と ARI を選択します。デフォルトの AKI を選択するか、AKI を選択しない場合、この AMI を使用してインスタンスを起動するたびに AKI を指定する必要があります。また、デフォルトの AKI にインスタンスとの互換性がない場合、インスタンスのヘルスチェックが失敗する可能性があります。

    • (オプション) Block Device Mappings: ボリュームを追加するか、AMI のルートボリュームのデフォルト容量を増やします。ボリュームの容量を増やした場合のインスタンスのファイルシステムのサイズ変更の詳細については、「ボリュームサイズ変更後の Linux ファイルシステムの拡張」を参照してください。

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. [Launch instance from AMI] (AMI からインスタンスを起動) (新コンソール) または [Actions] (アクション)、[Launch] (起動) (旧コンソール) を選択します。

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