Docker Amazon Linux 2 プラットフォームへの移行
Amazon Linux 2 プラットフォームバージョンは、(Amazon Linux 2 より前の) Amazon Linux AMI プラットフォームバージョンとは根本的に異なります。これらの異なるプラットフォーム世代は、いくつかの点で互換性がありません。Amazon Linux 2 プラットフォームのバージョンに移行する場合は、「Elastic Beanstalk Linux アプリケーションを Amazon Linux 2 に移行する」の情報を必ずお読みください。
Amazon Linux AMI のマルチコンテナ Docker プラットフォームで実行されているアプリケーションを Amazon Linux 2 Docker プラットフォームに移行できます。Amazon Linux AMI のマルチコンテナ Docker プラットフォームでは、コンテナとして実行するためにビルド済みのアプリケーションイメージを指定する必要があります。移行後は、Amazon Linux 2 Docker プラットフォームでも Elastic Beanstalk がデプロイ中にコンテナイメージを構築できるため、この制限はなくなります。
アプリケーションはマルチコンテナ環境で引き続き実行され、Docker Compose ツールの利点が追加されます。Docker Compose の詳細およびインストール方法については、Docker
サイトの「Docker Compose の概要
docker-compose.yml
ファイル
Docker Compose ツールは、アプリケーションサービスの設定に docker-compose.yml
ファイルを使用します。このファイルは、アプリケーションプロジェクトディレクトリおよびアプリケーションソースバンドル内の Dockerrun.aws.json v2
ファイルを置き換えます。docker-compose.yml
ファイルを手動で作成すると、ほとんどのパラメータ値について Dockerrun.aws.json v2
ファイルを参照すると便利です。
以下は、同じアプリケーションの docker-compose.yml
ファイルと対応する Dockerrun.aws.json v2
ファイルの例です。docker-compose.yml
ファイルの詳細については、「Compose file referenceDockerrun.aws.json v2
ファイルの詳細については、「Dockerrun.aws.json v2」を参照してください。
docker-compose.yml |
Dockerrun.aws.json v2 |
||
---|---|---|---|
|
|
移行に関するその他の考慮事項
エリア | Amazon Linux AMI のマルチコンテナ Docker プラットフォーム | Docker Compose を使用した Amazon Linux 2 の Docker プラットフォーム |
---|---|---|
環境プロパティ |
Elastic Beanstalk は環境プロパティをコンテナに直接渡すことができます。コンテナ内で実行されているコードは、追加の設定なしに、環境変数としてこれらのプロパティにアクセスできます。 |
コンテナが環境プロパティにアクセスするには、 |
ログディレクトリ |
各コンテナについて、Elastic Beanstalk は |
各コンテナについて、Elastic Beanstalk は |
移行手順
Amazon Linux 2 Docker プラットフォームに移行するには
-
既存の
Dockerrun.aws.json v2
ファイルに基づいて、アプリケーション用のdocker-compose.yml
ファイルを作成します。詳細については、前述の「docker-compose.yml ファイル」セクションを参照してください。 -
アプリケーションプロジェクトフォルダのルートディレクトリで、
Dockerrun.aws.json v2
ファイルを先ほど作成したdocker-compose.yml
に置き換えます。ディレクトリ構造は以下のようになります。
~/myApplication |-- docker-compose.yml |-- .ebextensions |-- php-app |-- proxy
-
eb init コマンドを使用して、Elastic Beanstalk にデプロイするローカルディレクトリを設定します。
~/myApplication$
eb init -p docker
application-name
-
eb create コマンドを使用して、環境を作成し、Docker イメージをデプロイします。
~/myApplication$
eb create
environment-name
-
アプリがウェブアプリケーションの場合、環境の起動後に eb open コマンドを使用してウェブブラウザに表示します。
~/myApplication$
eb open
environment-name
-
eb status コマンドを使用して、新しく作成した環境のステータスを表示できます。
~/myApplication$
eb status
environment-name