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

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

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

Elastic Beanstalk で Docker を使用することにより、容量のプロビジョニング、負荷の分散、スケーリング、およびアプリケーションの状態のモニタリングの詳細をすべて処理するインフラストラクチャが提供されます。Elastic Beanstalk と統合されているさまざまなサービスをサポートする環境で、ウェブアプリケーションを簡単に管理できます。

この章のトピックは、Elastic Beanstalk 環境についてある程度の知識があることを前提としています。Elastic Beanstalk を使用したことがない場合は、入門ガイドチュートリアルで基本知識を得てください。また、この章は、ユーザーが Docker の基本と仕組みを理解していることを前提としています。詳細については、Docker Docs ウェブサイトの「Docker overview」 (Docker の概要) を参照してください。

Docker プラットフォームファミリー

Elastic Beanstalk の Docker プラットフォームファミリーには、いくつかのプラットフォームブランチが含まれています。最新のプラットフォームブランチは、Amazon Linux 2 オペレーティングシステムをベースにしており、長期的なサポートを提供します。

  • 64 ビット版 Amazon Linux 2 上で動作する Docker

  • 64 ビット版 Amazon Linux 2 上で動作する ECS

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

Docker をサポートするプラットフォームブランチは他にも 3 つあります。これらは 2022 年 6 月 30 日に使用停止になります。これらはすべて Amazon Linux 2 より前の Amazon Linux AMI で動作します。

  • 64 ビット版 Amazon Linux 上で動作する Docker

  • 64 ビット版 Amazon Linux 上で動作するマルチコンテナ Docker (Amazon ECS マネージド)

  • Amazon Linux 上で動作する事前設定済み Docker (Glassfish 5.0)

使用停止される Elastic Beanstalk プラットフォームブランチのリストについては、「AWS Elastic Beanstalk プラットフォーム」ガイドの「リタイアが予定されている Elastic Beanstalk プラットフォームのバージョン」を参照してください。

Amazon Linux 2 上で動作する Docker

このプラットフォームは、マルチコンテナおよび単一コンテナの両方のサポートを提供します。Elastic Beanstalk は、このプラットフォームブランチ上の EC2 インスタンスに Docker イメージとソースコードをデプロイします。また、Docker プラットフォームで Docker Compose ツールを活用して、アプリケーションの設定、テスト、デプロイを簡素化することもできます。このプラットフォームブランチの詳細については、「Docker プラットフォームブランチの使用」を参照してください。

64 ビット版 Amazon Linux 2 上で動作する ECS

このプラットフォームブランチは、Amazon ECS を使用して、Elastic Beanstalk 環境で複数の Docker コンテナを Amazon ECS クラスターにデプロイするように調整します。環境におけるインスタンスはそれぞれ、Dockerrun.aws.json ファイルに定義される同じセットのコンテナで実行されます。詳細については、「Amazon ECS プラットフォームブランチの使用」を参照してください。

(Amazon Linux 2 より前の) Amazon Linux で動作するプラットフォームブランチ

注記

以下のプラットフォームブランチは、2022 年 6 月 30 日に使用停止になる予定です。プラットフォームサポートポリシーおよび使用停止になったプラットフォームブランチの詳細については、このガイドの「プラットフォームのサポートポリシー」トピックを参照してください。

このプラットフォームブランチを使用して、Dockerfile または Dockerrun.aws.json v1 定義で説明されている Docker イメージをデプロイできます。このプラットフォームは、Amazon Linux AMI オペレーティングシステム (Amazon Linux 2 より前のバージョン) のみをサポートし、各インスタンスに対してコンテナを 1 つだけ実行します。

サポートされている新しいプラットフォームブランチ 64 ビット版 Amazon Linux 2 上で動作する Docker を使用して環境を作成することをお勧めします。詳細については、「Docker プラットフォームブランチの使用」を参照してください。

このプラットフォームブランチは、Amazon ECS を使用して、Elastic Beanstalk 環境で複数の Docker コンテナを Amazon ECS クラスターにデプロイするように調整します。しかし、このプラットフォームでサポートされるのは、Amazon Linux AMI オペレーティングシステム (Amazon Linux 2 より前のバージョン) のみです。このプラットフォームブランチを使用する代わりに、Amazon Linux 2 で動作する、前述の Docker プラットフォームブランチのいずれかを使用することをお勧めします。

すでにこのプラットフォームブランチを使用している場合は、最新の 64 ビット版 Amazon Linux 2 上で動作する ECSプラットフォームブランチに移行することをお勧めします。最新のプラットフォームブランチでは、この廃止されたプラットフォームブランチのすべての機能がサポートされています。ソースコードを変更する必要はありません。詳細については、「Amazon Linux 上で動作するマルチコンテナ Docker のAmazon Linux 2 上の ECS への移行」を参照してください。

2 つの汎用の Docker プラットフォームに加えて、Amazon Linux AMI オペレーティングシステム (Amazon Linux 2 より前のバージョン) 上で動作する事前設定済みの Docker GlassFish プラットフォームブランチもあります。このプラットフォームブランチは、プラットフォームブランチ 64 ビット版 Amazon Linux 2 上で動作する Docker に置き換えられました。GlassFish とアプリケーションコードを Amazon Linux 2 Docker イメージにデプロイすると、GlassFish アプリケーションをこのサポートされている新しいプラットフォームブランチに簡単に移行できます。詳細については、「Docker プラットフォームへの GlassFish アプリケーションのデプロイ」を参照してください。