AWS Elastic Beanstalk
開発者ガイド

事前設定済み Docker コンテナ

Elastic Beanstalk には、Java EE Glassfish アプリケーションサーバーソフトウェアスタックで事前設定された Docker コンテナを実行するプラットフォームバージョンがあります。事前設定された Docker コンテナを使用し、アプリケーションをローカルで開発およびテストしてから、ローカル環境と同じに設定されている Elastic Beanstalk 環境でアプリケーションをデプロイできます。

注記

また、Elastic Beanstalk は、Go および Python 向けに事前設定された Docker コンテナのプラットフォームバージョンもサポートしています。上述のプラットフォームバージョンは廃止が予定されています。

次のセクションでは、事前設定の Docker コンテナを使用してアプリケーションを Elastic Beanstalk にデプロイする手順の詳細を説明します。

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

事前設定された Docker コンテナの使用を開始する

このセクションでは、事前設定された 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 が Elastic Beanstalk 環境内の各 Amazon EC2 インスタンスにカスタマイズされた Docker イメージを構築するための正しい命令を含んだ Dockerfile を Elastic Beanstalk が使用するために必要です。

    注記

    プラットフォームバージョンのベースの 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 を選択します。