Docker プラットフォームへの GlassFish アプリケーションのデプロイ: Amazon Linux 2023 への移行パス - AWS Elastic Beanstalk

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Docker プラットフォームへの GlassFish アプリケーションのデプロイ: Amazon Linux 2023 への移行パス

このチュートリアルの目的は、事前設定済み Docker GlassFish プラットフォーム (Amazon Linux AMI に基づく) を使用しているお客様に Amazon Linux 2023 への移行パスを提供することです。 GlassFish とアプリケーションコードを Amazon Linux 2023 Docker イメージにデプロイすることで、 GlassFish アプリケーションを Amazon Linux 2023 に移行できます。

このチュートリアルでは、 AWS Elastic Beanstalk Docker プラットフォームを使用して Java EE アプリケーションサーバーに基づく GlassFish アプリケーションを Elastic Beanstalk 環境にデプロイする手順を説明します。

Docker イメージを構築する 2 つの方法を示します。

  • シンプル — GlassFish アプリケーションのソースコードを提供し、環境のプロビジョニングの一環として Elastic Beanstalk で Docker イメージを構築して実行できるようにします。この方法は、設定が簡単ですが、インスタンスのプロビジョニング時間が長くなります。

  • アドバンスト – アプリケーションコードと依存関係を含むカスタム Docker イメージを作成し、Elastic Beanstalk に提供して、お客様の環境で使用します。この方法は少し複雑ですが、お客様の環境でのインスタンスのプロビジョニング時間が短くなります。

前提条件

このチュートリアルでは、Elastic Beanstalk の基本的なオペレーション、Elastic Beanstalk コマンドラインコマンドラインインターフェイス (EB CLI) および Docker についてある程度の知識があることを前提としています。まだ起動していない場合は、Elastic Beanstalk を使用して開始する の指示に従って、最初の Elastic Beanstalk 環境を起動します。このチュートリアルでは EB CLI を使用しますが、Elastic Beanstalk コンソールを使用して環境を作成し、アプリケーションをアップロードすることもできます。

このチュートリアルに従うには、以下の Docker コンポーネントも必要です。

  • Docker の稼働中のローカルインストール。詳細については、Docker ドキュメントウェブサイトの「Get Docker」を参照してください。

  • Docker Hub へのアクセス。Docker ハブにアクセスするには、Docker ID を作成する必要があります。詳細については、Docker ドキュメントウェブサイトの「Share the application」を参照してください。

Elastic Beanstalk プラットフォームでの Docker 環境の設定の詳細については、この同じ章の「Docker の設定」を参照してください。

シンプルの例: アプリケーションコードを提供する

これは、 GlassFish アプリケーションをデプロイするための簡単な方法です。このチュートリアルに含まれる Dockerfile と共に、アプリケーションのソースコードを用意します。Elastic Beanstalk は、アプリケーションと GlassFish ソフトウェアスタックを含む Docker イメージを構築します。その後、Elastic Beanstalk は環境インスタンスでイメージを実行します。

この方法の問題は、Elastic Beanstalk が環境のインスタンスを作成するたびに Docker イメージをローカルに構築することです。イメージの構築により、インスタンスのプロビジョニング時間が長くなります。この影響は、初期環境の作成に限らず、スケールアウトアクション中にも発生します。

サンプル GlassFish アプリケーションで環境を起動するには
  1. アプリケーション例 docker-glassfish-al2-v1.zip をダウンロードし、.zip ファイルを開発環境のディレクトリに展開します。

    ~$ curl https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/samples/docker-glassfish-al2-v1.zip --output docker-glassfish-al2-v1.zip ~$ mkdir glassfish-example ~$ cd glassfish-example ~/glassfish-example$ unzip ../docker-glassfish-al2-v1.zip

    ディレクトリ構造は以下のようになります。

    ~/glassfish-example |-- Dockerfile |-- Dockerrun.aws.json |-- glassfish-start.sh |-- index.jsp |-- META-INF | |-- LICENSE.txt | |-- MANIFEST.MF | `-- NOTICE.txt |-- robots.txt `-- WEB-INF `-- web.xml

    以下のファイルは、お客様の環境で Docker コンテナを構築して実行するために重要です。

    • Dockerfile – アプリケーションと必要な依存関係を含むイメージを構築するために Docker が使用する手順を提供します。

    • glassfish-start.sh – アプリケーションを起動するために Docker イメージが実行するシェルスクリプト。

    • Dockerrun.aws.json – ログファイルリクエストに GlassFish アプリケーションサーバーのログを含めるためのログ記録キーを提供します。 Elastic Beanstalk 環境の Amazon EC2 インスタンスからのログの表示 GlassFish ログに関心がない場合は、このファイルを省略できます。

  2. Elastic Beanstalk にデプロイするローカルディレクトリを設定します。

    ~/glassfish-example$ eb init -p docker glassfish-example
  3. (オプション) eb local run コマンドを使用して、コンテナを構築し、ローカルで実行します。

    ~/glassfish-example$ eb local run --port 8080
    注記

    eb local コマンドの詳細については、「eb local」を参照してください。このコマンドは Windows ではサポートされていません。または、docker build コマンドと docker run コマンドを使用してコンテナを構築して実行することもできます。詳細については、「Docker ドキュメント」を参照してください。

  4. (オプション) コンテナが実行しているときに、eb local open コマンドを使用して、ウェブブラウザでアプリケーションを表示します。または、ウェブブラウザで http://localhost:8080/ を開きます。

    ~/glassfish-example$ eb local open
  5. eb create コマンドを使用して、環境を作成し、アプリケーションをデプロイします。

    ~/glassfish-example$ eb create glassfish-example-env
  6. 環境が起動したら、eb open コマンドを使用してウェブブラウザで表示します。

    ~/glassfish-example$ eb open

アプリケーション例を使用し終えたら、環境を終了し、関連するリソースを削除します。

~/glassfish-example$ eb terminate --all

アドバンストの例: 事前に構築された Docker イメージを提供する

これは、 GlassFish アプリケーションをデプロイするためのより高度な方法です。最初の例に基づいて、アプリケーションコードと GlassFish ソフトウェアスタックを含む Docker イメージを作成し、Docker Hub にプッシュします。この 1 回限りのステップを完了したら、カスタムイメージに基づいて Elastic Beanstalk 環境を起動できます。

環境を起動して Docker イメージを提供すると、環境内のインスタンスはこのイメージを直接ダウンロードして使用するため、Docker イメージを構築する必要はありません。したがって、インスタンスのプロビジョニング時間が短くなります。

メモ
  • 以下のステップでは、一般利用可能な Docker イメージを作成します。

  • ローカルの Docker インストールから Docker コマンドと、Docker Hub の資格情報を使用します。詳細については、このトピックの前述の前提条件セクションを参照してください。

構築済みの GlassFish アプリケーション Docker イメージを使用して環境を起動するには
  1. 前のシンプルの例と同様に、アプリケーション例 docker-glassfish-al2-v1.zip をダウンロードして展開します。その例を完了済みの場合は、既存のディレクトリを使用できます。

  2. Docker イメージを構築し、Docker Hub にプッシュします。docker-id に、あなたの Docker ID を入力して Docker Hub にサインインします。

    ~/glassfish-example$ docker build -t docker-id/beanstalk-glassfish-example:latest . ~/glassfish-example$ docker push docker-id/beanstalk-glassfish-example:latest
    注記

    イメージをプッシュする前に、docker login を実行しなければならないことがあります。パラメータなしでコマンドを実行すると、Docker Hub の資格情報の入力を求められます。

  3. 追加のディレクトリを作成します。

    ~$ mkdir glassfish-prebuilt ~$ cd glassfish-prebuilt
  4. 以下の例を Dockerrun.aws.json という名前のファイルにコピーします。

    ~/glassfish-prebuilt/Dockerrun.aws.json
    { "AWSEBDockerrunVersion": "1", "Image": { "Name": "docker-username/beanstalk-glassfish-example" }, "Ports": [ { "ContainerPort": 8080, "HostPort": 8080 } ], "Logging": "/usr/local/glassfish5/glassfish/domains/domain1/logs" }
  5. Elastic Beanstalk にデプロイするローカルディレクトリを設定します。

    ~/glassfish-prebuilt$ eb init -p docker glassfish-prebuilt$
  6. (オプション) eb local run コマンドを使用して、コンテナをローカルで実行します。

    ~/glassfish-prebuilt$ eb local run --port 8080
  7. (オプション) コンテナが実行しているときに、eb local open コマンドを使用して、ウェブブラウザでアプリケーションを表示します。または、ウェブブラウザで http://localhost:8080/ を開きます。

    ~/glassfish-prebuilt$ eb local open
  8. eb create コマンドを使用して、環境を作成し、Docker イメージをデプロイします。

    ~/glassfish-prebuilt$ eb create glassfish-prebuilt-env
  9. 環境が起動したら、eb open コマンドを使用してウェブブラウザで表示します。

    ~/glassfish-prebuilt$ eb open

アプリケーション例を使用し終えたら、環境を終了し、関連するリソースを削除します。

~/glassfish-prebuilt$ eb terminate --all