事前設定済み Docker コンテナ - AWS Elastic Beanstalk

事前設定済み 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 アプリケーション例を使用します。

使用する環境をセットアップするには

  1. アプリケーション例用の新しいフォルダーを作成します。

    ~$ mkdir eb-preconf-example ~$ cd eb-preconf-example
  2. アプリケーション例のコードを新しいフォルダにダウンロードします。

    ~$ 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 アプリケーション例を開発するには

  1. 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 の設定」を参照してください。

  2. Docker イメージを作成します。

    ~/eb-preconf-example$ docker build -t my-app-image .
  3. イメージから Docker コンテナを実行します。

    注記

    コンテナのポート 8080 をローカルホストのポート 3000 にマッピングする -p フラグを指定する必要があります。Elastic Beanstalk Docker コンテナでは、常にコンテナのポート 8080 でアプリケーションを公開します。 フラグは、イメージをインタラクティブプロセスとして実行します。--rm フラグは、コンテナが存在する場合にコンテナファイルシステムをクリーンアップします。オプションで、イメージをデーモンとして実行するための -d フラグも指定できます。

    $ docker run -it --rm -p 3000:8080 my-app-image
  4. アプリケーション例を表示するには、次の URL をウェブブラウザに入力します。

    http://localhost:3000

    以下のウェブページが表示されます。

    
              ウェブブラウザに表示される GlassFish アプリケーション例

Elastic Beanstalk にデプロイする

アプリケーションをテストすると、Elastic Beanstalk にデプロイする準備が完了します。

アプリケーションを Elastic Beanstalk にデプロイするには

  1. アプリケーションのルートフォルダで、DockerfileDockerfile.local に名前変更します。このステップは、Elastic Beanstalk に対する正しい指示を含んだ Dockerfile を Elastic Beanstalk で使用し、カスタマイズされた Docker イメージを Elastic Beanstalk 環境の各 Amazon EC2 インスタンスに作成するために必要なステップです。

    注記

    プラットフォームバージョンのベースの Docker イメージを変更する命令が Dockerfile に含まれている場合、このステップを行う必要はありません。Dockerfile に、コンテナの構築に使用するベースイメージを指定する FROM 行のみが含まれている場合、Dockerfile を使用する必要は一切ありません。この場合、その Dockerfile は重複しています。

  2. アプリケーションソースバンドルを作成します。

    ~/eb-preconf-example$ zip myapp.zip -r *
  3. 次の事前に設定されたリンクで、Elastic Beanstalk コンソールを開きます: console.aws.amazon.com/elasticbeanstalk/home#/newApplication?applicationName=tutorials&environmentType=LoadBalanced

  4. [Platform (プラットフォーム)] の [Preconfigured – Docker (事前設定 Docker)] で、[Glassfish] を選択します。

  5. [Application code] では、[Upload your code] を選択して、[Upload] を選択します。

  6. [Local file (ローカルファイル)]、[Browse (参照)] の順に選択したら、先ほど作成したアプリケーションソースバンドルを開きます。

  7. [Upload] を選択します。

  8. 確認と起動 を選択します。

  9. 使用できる設定を確認し、アプリの作成 を選択します。

  10. 環境が作成されると、デプロイされたアプリケーションを表示できます。コンソールダッシュボードの上部に表示される環境 URL を選択します。