カスタム Amazon Machine Image (AMI) の使用 - AWS Elastic Beanstalk

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

カスタム Amazon Machine Image (AMI) の使用

AWS Elastic Beanstalk 環境を作成するときに、プラットフォームバージョンに含まれる標準の Elastic Beanstalk AMI の代わりに使用する Amazon マシンイメージ (AMI) を指定できます。カスタム AMI では、標準 AMI に含まれていない多数のソフトウェアをインストールする必要がある場合、インスタンスがユーザーの環境で起動されていればプロビジョニング時間が向上します。

設定ファイルの使用は、環境を迅速かつ一貫して設定およびカスタマイズするのに役立ちます。ただし、設定を適用すると、環境の作成および更新時に時間がかかるようになることがあります。設定ファイルで多数のサーバーの設定をする場合は、必要なソフトウェアのインストールおよび設定が済んでいるカスタム AMI を作成することによって、その時間を短縮できます。

設定ファイルでは実装が困難であったり適用に時間がかかったりする低レベルのコンポーネント (Linux カーネルなど) に対する変更を、カスタム AMI で行うこともできます。カスタム AMI を作成するには、Elastic Beanstalk プラットフォーム AMI を Amazon EC2 で起動し、ニーズに合わせてソフトウェアと設定をカスタマイズした後、インスタンスを停止して、そこから AMI を保存します。

カスタム AMI の作成

ベースの Elastic Beanstalk AMI を特定するには
  1. コマンドウィンドウで、次のようなコマンドを実行します。詳細については、 コマンドリファレンスdescribe-platform-versionの「」を参照してください。 AWS CLI

    カスタム AMI を使用する AWS リージョンを指定し、プラットフォームの ARN とバージョン番号を、アプリケーションが基づいている Elastic Beanstalk プラットフォームに置き換えます。

    例 - Mac OS / Linux OS
    $ aws elasticbeanstalk describe-platform-version --region us-east-2 \ --platform-arn "arn:aws:elasticbeanstalk:us-east-2::platform/Tomcat 8.5 with Java 8 running on 64bit Amazon Linux/3.1.6" \ --query PlatformDescription.CustomAmiList [ { "VirtualizationType": "pv", "ImageId": "" }, { "VirtualizationType": "hvm", "ImageId": "ami-020ae06fdda6a0f66" } ]
    例 - Windows OS
    C:\> aws elasticbeanstalk describe-platform-version --region us-east-2 --platform-arn"arn:aws:elasticbeanstalk:us-east-2::platform/IIS 10.0 running on 64bit Windows Server 2019/2.6.4" --query PlatformDescription.CustomAmiList [ { "VirtualizationType": "pv", "ImageId": "" }, { "VirtualizationType": "hvm", "ImageId": "ami-020ae06fdda6a0f66" } ]
  2. 結果として ami-020ae06fdda6a0f66 のようになる ImageId 値を書き留めます。

値は、アプリケーションに関連するプラットフォームバージョン、EC2 インスタンスアーキテクチャ、および AWS リージョンのストック Elastic Beanstalk AMI です。複数のプラットフォーム、アーキテクチャ、または AWS リージョンの AMIs を作成する必要がある場合は、このプロセスを繰り返して、組み合わせごとに正しいベース AMI を特定します。

メモ
  • Elastic Beanstalk 環境で起動しているインスタンスから AMI を作成しないでください。プロビジョニング時に Elastic Beanstalk がインスタンスに変更を加えるため、保存された AMI で問題が発生する可能性があります。Elastic Beanstalk 環境のインスタンスからイメージを保存すると、そのインスタンスにデプロイされたアプリケーションのバージョンがイメージの固定部分になります。

  • 常に最新のプラットフォームバージョンを使用することをお勧めします。新しいプラットフォームバージョンに更新する場合は、カスタム AMI を新しいプラットフォームバージョンの AMI にリベースすることもお勧めします。これにより、互換性のないパッケージまたはライブラリのバージョンによるデプロイエラーが最小限に抑えられます。

Linux の場合、Elastic Beanstalk が発行したものではないコミュニティ AMI からカスタム AMI を作成することもできます。最新の Amazon Linux AMI を出発点として使用できます。Elastic Beanstalk によって管理されていない Linux AMI を使用して環境を起動すると、Elastic Beanstalk は、拡張ヘルスレポートなどの機能をサポートするために、プラットフォームソフトウェア (言語、フレームワーク、プロキシサーバーなど) と追加のコンポーネントのインストールを試みます。

注記

Windows Server に基づくカスタム AMI には、ステップ 1 で前述したように、describe-platform-version から返されたストックの Elastic Beanstalk AMI が必要です。

Elastic Beanstalk は Elastic Beanstalk によって管理されていない AMI を使用できますが、Elastic Beanstalk が欠落したコンポーネントをインストールするためにプロビジョニング時間が増加し、そもそもカスタム AMI を作成する利点が少なくなったり、まったくなくなったりします。他の Linux ディストリビューションは一部のトラブルシューティングについては動作しますが、公式にはサポートされていません。アプリケーションに特定の Linux ディストリビューションが必要な場合は、代わりの方法として Docker イメージを作成し、Elastic Beanstalk の Docker プラットフォームまたはマルチコンテナ Docker プラットフォームで実行することもできます。

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

  2. [Launch Instance] (インスタンスの起動) を選択します。

  3. [コミュニティ AMI] を選択します。

  4. ベースの Elastic Beanstalk AMI (describe-platform-version を使用) または Amazon Linux AMI を特定したら、その AMI ID を検索ボックスに入力します。次に、Enter キーを押します。

    ニーズに合った別のコミュニティ AMI のリストを検索することもできます。

    注記

    HVM 仮想化を使用する AMI を選択することをお勧めします。これらの AMI の説明には、[仮想化タイプ: hvm] と表示されます。

    EC2 コンソールに HVM 仮想化タイプがリストされた AMI

    インスタンス仮想化タイプの詳細については、Amazon EC2 ユーザーガイド」の「Linux AMI 仮想化タイプ」または「Amazon EC2 ユーザーガイド」の「Windows AMI 仮想化タイプAmazon EC2」を参照してください。

  5. [選択] で AMI を選択します。

  6. インスタンスタイプを選択し、[次: インスタンスの詳細の設定] を選択します。

  7. (Linux プラットフォームの場合) [Advanced Details] セクションを展開し、[User Data] フィールドに以下のテキストを貼り付けます。

    #cloud-config repo_releasever: repository version number repo_upgrade: none

    リポジトリバージョン番号は、AMI 名の年と月のバージョンです。例えば、2015 年 3 月リリースの Amazon Linux に基づく AMI のリポジトリバージョン番号は 2015.03 です。Elastic Beanstalk イメージの場合、この値は、Amazon Linux AMI (Amazon Linux 2 より前) に基づくプラットフォームバージョンのソリューションスタック名に示される日付と同じです。

    注記

    repo_releasever 設定は、Amazon Linux AMI lock-on-launch の機能を設定します。これにより、AMI は起動時に固定された特定のリポジトリバージョンを使用します。この機能は Amazon Linux 2 ではサポートされないため、環境で最新の Amazon Linux 2 プラットフォームブランチが使用されている場合は、指定しないでください。カスタム AMI を Elastic Beanstalk で使用する場合は、Amazon Linux AMI プラットフォームブランチ (Amazon Linux 2 より前) でのみ、この設定が必要です。

    repo_upgrade を設定すると、セキュリティ更新プログラムの自動インストールが無効になります。これは、Elastic Beanstalk でカスタム AMI を使用するために必要となります。

  8. ウィザードを続行して、EC2 インスタンスを起動します。プロンプトが表示されたら、次のステップでそのインスタンスに接続できるように、アクセス権があるキーペアを選択します。

  9. SSH または RDP でインスタンスに接続します。

  10. 目的のカスタマイズを行います。

  11. (Windows プラットフォーム) EC2Config サービス Sysprep を実行します。EC2Config の詳細については、「EC2Config サービスを使用した Windows インスタンスの設定」を参照してください。 AWS Management Consoleから取得できるランダムなパスワードを生成するように Sysprep が設定されていることを確認します。

  12. Amazon EC2 コンソールで、EC2 インスタンスを停止します。次に、[インスタンスの操作] メニューで、[イメージの作成 (EBS AMI)] を選択します。

  13. AWS 追加料金が発生しないようにするには、EC2 インスタンス を終了します

Elastic Beanstalk 環境でカスタム AMI を使用するには
  1. Elastic Beanstalk コンソール を開き、リージョンリストで を選択します AWS リージョン。

  2. ナビゲーションペインで、[環境] を選択し、リストから環境の名前を選択します。

    注記

    環境が多数ある場合は、検索バーを使用して環境リストをフィルタリングします。

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

  4. [容量] 設定カテゴリで、[編集] を選択します。

  5. [AMI ID] には、ユーザーのカスタム AMI ID を入力します。

  6. ページの最下部で [適用] を選択し変更を保存します。

カスタム AMI で新しい環境を作成するときは、AMI の作成時にベースとして使用したのと同じプラットフォームバージョンを使用する必要があります。後でカスタム AMI を使用して環境にプラットフォーム更新を適用する場合、Elastic Beanstalk はブートストラッププロセス中にライブラリと設定の更新の適用を試みます。

カスタム AMI をクリーンアップする

カスタム AMI を終了し、Elastic Beanstalk 環境をもう起動する必要がない場合は、ストレージコストを最小限に抑えるために、AMI をクリーンアップすることを検討してください。カスタム AMI をクリーンアップするには、Amazon EC2 から登録を解除し、関連する他のリソースを削除する必要があります。詳細については、「Linux AMI の登録解除」または「Windows AMI の登録解除」を参照してください。