メニュー
AWS Elastic Beanstalk
開発者ガイド (API Version 2010-12-01)

カスタム Amazon マシンイメージ(AMI)の作成

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

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

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

ベースの Elastic Beanstalk AMI を特定する

  1. Elastic Beanstalk コンソールを開きます。

  2. アプリケーションを実行する Elastic Beanstalk 環境を作成します。Elastic Beanstalk アプリケーションを起動する方法の詳細については、「Elastic Beanstalk の使用開始」を参照してください。

  3. お客様の環境の管理ページに移動します。

  4. [Configuration] を選択します

  5. [Instances] の隣の次を選択します:  編集 をクリックします。

  6. [Custom AMI ID] ボックスの値をメモします。

  7. 環境を終了します。

[Custom AMI ID(カスタム AMI ID)] フィールドの値は、環境を作成したプラットフォームバージョン、EC2 インスタンスアーキテクチャおよびリージョン別のストック Elastic Beanstalk AMI です。複数のプラットフォーム、アーキテクチャまたはリージョン向けの AMI を作成する必要がある場合、このプロセスを繰り返して各組み合わせの正しいベース AMI を特定します。

注記

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

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

注記

Elastic Beanstalk Windows Server プラットフォームでは非 Beanstalk AMI はサポートされていません。

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

カスタム AMI を作成するには

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

  2. [インスタンスの作成] を選択します。

  3. [Community AMIs] を選択します。

  4. カスタム AMI を作成するためにカスタマイズする Elastic Beanstalk または Amazon Linux AMI の AMI ID を入力し、Enter キーを押します。

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

  6. インスタンスタイプを選択してから、[Next: Configure Instance Details] を選択します。

  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 イメージの場合、この値は、プラットフォーム設定のソリューションスタック名に示される日付と同じです。

    注記

    これらの設定により lock-on-launch 機能が設定されます。この機能を利用すると、AMI の起動時には、固定された特定のリポジトリのバージョンが AMI で使用され、セキュリティ更新の自動インストールが無効になります。lock-on-launch 機能およびセキュリティ更新の自動インストールの無効化は、Elastic Beanstalk でカスタム AMI を使用するために必要となります。

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

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

  10. 必要なカスタマイズを行います。

  11. (Windows プラットフォーム)EC2Config サービス Sysprep を実行します。EC2Config の詳細については、「Configuring a Windows Instance Using the EC2Config Service」を参照してください。AWS マネジメントコンソールから取得できるランダムなパスワードを生成するように Sysprep が設定されていることを確認します。

  12. Amazon EC2 コンソールで、EC2 インスタンスを停止してから、[Instance Actions] メニューの [Create Image (EBS AMI)] を選択します。

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

  14. カスタム AMI を使用するには、Elastic Beanstalk 環境マネジメントコンソールの [Configuration] ページで、[Instances] セクションの [Custom AMI ID] にカスタム AMI ID を指定します。既存のインスタンスは、新しいカスタムの AMI から起動された新しいインスタンスで置き換えられます。

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