AWS Elastic Beanstalk
開発者ガイド

Docker コンテナからの Elastic Beanstalk アプリケーションのデプロイ

Elastic Beanstalk では、ウェブアプリケーションを Docker コンテナからデプロイできます。Docker コンテナを使用すると、独自のランタイム環境を定義できます。他のプラットフォームでサポートされていない、独自のプラットフォーム、プログラミング言語、およびアプリケーションの従属関係(パッケージマネージャやツールなど)を選択できます。Docker コンテナは自己完結型で、これにはすべての設定情報と、ウェブアプリケーションが実行する必要のあるソフトウェアが含まれています。Elastic Beanstalk コンソールで定義されたすべての環境変数は、コンテナに渡されます。

Elastic Beanstalk で Docker を使用することにより、容量のプロビジョニング、負荷の分散、スケーリング、およびアプリケーションの状態の監視の詳細を自動的に処理するインフラストラクチャが提供されます。VPCRDSIAM など、Elastic Beanstalk と統合できるさまざまなサービスをサポートする環境でウェブアプリケーションを管理できます。Docker のインストール方法、Docker が必要とするソフトウェア、Docker イメージを使用した Docker コンテナの起動方法など、Docker の詳細については、Docker: the Linux container engine を参照してください。

注記

Elastic Beanstalk 環境で実行されている Docker コンテナが何らかの理由でクラッシュするか強制終了された場合、Elastic Beanstalk は自動的にそのコンテナを再起動します。

この章のトピックでは、Elastic Beanstalk 環境についてある程度の知識があることを前提としています。Elastic Beanstalk を使用したことがない場合は、入門ガイドチュートリアルで基本知識を得てください。

Docker プラットフォーム

Elastic Beanstalk 対応の Docker プラットフォームファミリーには、2 つの汎用プラットフォーム (単一のコンテナとマルチコンテナ) および複数の設定済みコンテナがあります。

各 Docker プラットフォームで現在サポートされているプラットフォームバージョンの詳細については、AWS Elastic Beanstalk プラットフォームドキュメントの「サポートされるプラットフォーム」ページを参照してください。

単一コンテナの Docker

単一コンテナのプラットフォームは、Docker イメージ (Dockerfile あるいは Dockerrun.aws.json の定義に示される) とソースコードを Elastic Beanstalk 環境で実行される EC2 インスタンスにデプロイするために使用できます。単一コンテナプラットフォームは、インスタンスごとに 1 つのコンテナを実行する必要がある場合にのみ使用します。

単一コンテナの Docker 環境を使い始めるためのサンプルとヘルプについては、単一コンテナの Docker 環境を参照してください。コンテナ定義形式および使用の詳細については、単一コンテナの Docker の設定を参照してください。

マルチコンテナの Docker

もう 1 つの基本的なプラットフォームであるマルチコンテナ Docker は、Amazon Elastic Container Service を使用して、Elastic Beanstalk 環境における複数の Docker コンテナの Amazon ECS クラスターへのデプロイを調整します。環境におけるインスタンスはそれぞれ、Dockerrun.aws.json ファイルに定義される同じセットのコンテナで実行されます。各インスタンスに複数の Docker コンテナをデプロイする必要がある場合、マルチコンテナプラットフォームを使用します。

マルチコンテナ Docker のプラットフォームと使用の詳細については、「複数コンテナの Docker 環境」を参照してください。複数コンテナの Docker 設定のトピックには Dockerrun.aws.json 形式のバージョン 2 が詳細説明されていて、これは単一コンテナプラットフォームに使用されるバージョンと類似していますが、互換性はありません。別のコンテナで実行される nginx プロキシを使って、PHP ウェブサイトを実行するマルチコンテナ環境のデプロイを初めから作成する手順を説明しているチュートリアルもあります。

事前設定済み Docker コンテナ

2 つの一般的な Docker プラットフォームに加えて、事前設定された Docker プラットフォームのバージョンがいくつか存在し、Glassfish の Java または uWSGI を使用する Python など、人気のあるソフトウェアスタックでアプリケーションを実行するために使用できます。事前設定のコンテナは、アプリケーションが使用するソフトウェアと一致する場合に使用してください。

詳細については、「事前設定済み Docker コンテナ」を参照してください。

このページの内容: