事前設定済み Docker コンテナ
Elastic Beanstalk には、Java EE GlassFish アプリケーションサーバーソフトウェアスタックで事前設定された Docker コンテナを実行するプラットフォームブランチがあります。事前設定された Docker コンテナを使用し、アプリケーションをローカルで開発およびテストしてから、ローカル環境と同じに設定されている Elastic Beanstalk 環境でアプリケーションをデプロイできます。
-
Elastic Beanstalk は、Go および Python 用に事前設定された Docker コンテナを実行するプラットフォームブランチもサポートしています。これらのプラットフォームブランチは廃止が予定されています。
-
事前設定された Docker プラットフォームブランチはすべて、(Amazon Linux 2 より前の) Amazon Linux AMI オペレーティングシステムを使用します。GlassFish アプリケーションを Amazon Linux 2 に移行するには、汎用の Docker プラットフォームを使用して、GlassFish とアプリケーションコードを Amazon Linux 2 Docker イメージにデプロイします。詳細については、「Docker プラットフォームへの GlassFish アプリケーションのデプロイ: Amazon Linux 2 への移行パス」を参照してください。
次のセクションでは、事前設定の Docker コンテナを使用してアプリケーションを Elastic Beanstalk にデプロイする手順の詳細を説明します。
現在サポートされている事前設定の Docker プラットフォームバージョンについての詳細は、AWS Elastic Beanstalk プラットフォームのドキュメントの「事前設定 Docker」を参照してください。
事前設定された Docker コンテナの開始方法 ( Amazon Linux AMI ??)
このセクションでは、事前設定された Docker コンテナを使用して、ローカルでアプリケーション例を開発し、そのアプリケーションを Elastic Beanstalk にデプロイする方法について説明します。
ローカルの開発環境のセットアップ
このチュートリアルでは、GlassFish アプリケーション例を使用します。
使用する環境をセットアップするには
-
アプリケーション例用の新しいフォルダーを作成します。
~$
mkdir eb-preconf-example
~$cd eb-preconf-example
-
アプリケーション例のコードを新しいフォルダにダウンロードします。
~$
wget https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/samples/docker-glassfish-v1.zip
~$unzip docker-glassfish-v1.zip
~$rm docker-glassfish-v1.zip
ローカル環境での開発とテスト
GlassFish アプリケーション例を開発するには
-
Dockerfile
をアプリケーションのルートフォルダに追加します。ファイルで、ローカルで事前設定された Docker コンテナを実行するために使用する AWS Elastic Beanstalk Docker ベースイメージを指定します。後で、アプリケーションを Elastic Beanstalk の事前設定された Docker GlassFish プラットフォームバージョンにデプロイします。このプラットフォームバージョンが使用する Docker ベースイメージを選択します。プラットフォームバージョンの現在の Docker イメージを検出するには、AWS Elastic Beanstalk プラットフォームガイドの「AWS Elastic Beanstalk でサポートされているプラットフォーム」ページの「事前設定 Docker」セクションを参照してください。例 ~/Eb-preconf-example/Dockerfile
# For Glassfish 5.0 Java 8 FROM amazon/aws-eb-glassfish:5.0-al-onbuild-2.11.1
Dockerfile
の使用方法の詳細については、「Docker の設定」を参照してください。 -
Docker イメージを作成します。
~/eb-preconf-example$
docker build -t my-app-image .
-
イメージから Docker コンテナを実行します。
注記 コンテナのポート 8080 をローカルホストのポート 3000 にマッピングする
-p
フラグを指定する必要があります。Elastic Beanstalk Docker コンテナでは、常にコンテナのポート 8080 でアプリケーションを公開します。 フラグは、イメージをインタラクティブプロセスとして実行します。--rm
フラグは、コンテナが存在する場合にコンテナファイルシステムをクリーンアップします。オプションで、イメージをデーモンとして実行するための-d
フラグも指定できます。$
docker run -it --rm -p 3000:8080 my-app-image
-
アプリケーション例を表示するには、次の URL をウェブブラウザに入力します。
http://localhost:3000
以下のウェブページが表示されます。
Elastic Beanstalk にデプロイする
アプリケーションをテストすると、Elastic Beanstalk にデプロイする準備が完了します。
アプリケーションを Elastic Beanstalk にデプロイするには
-
アプリケーションのルートフォルダで、
Dockerfile
をDockerfile.local
に名前変更します。このステップは、Elastic Beanstalk に対する正しい指示を含んだDockerfile
を Elastic Beanstalk で使用し、カスタマイズされた Docker イメージを Elastic Beanstalk 環境の各 Amazon EC2 インスタンスに作成するために必要なステップです。注記 プラットフォームバージョンのベースの Docker イメージを変更する命令が
Dockerfile
に含まれている場合、このステップを行う必要はありません。Dockerfile
に、コンテナの構築に使用するベースイメージを指定するFROM
行のみが含まれている場合、Dockerfile
を使用する必要は一切ありません。この場合、そのDockerfile
は重複しています。 -
アプリケーションソースバンドルを作成します。
~/eb-preconf-example$
zip myapp.zip -r *
-
次の事前に設定されたリンクで、Elastic Beanstalk コンソールを開きます: console.aws.amazon.com/elasticbeanstalk/home#/newApplication?applicationName=tutorials&environmentType=LoadBalanced
-
[Platform (プラットフォーム)] の [Preconfigured – Docker (事前設定 Docker)] で、[Glassfish] を選択します。
-
[Application code] では、[Upload your code] を選択して、[Upload] を選択します。
-
[Local file (ローカルファイル)]、[Browse (参照)] の順に選択したら、先ほど作成したアプリケーションソースバンドルを開きます。
-
[Upload] を選択します。
-
確認と起動 を選択します。
-
使用できる設定を確認し、アプリの作成 を選択します。
-
環境が作成されると、デプロイされたアプリケーションを表示できます。コンソールダッシュボードの上部に表示される環境 URL を選択します。