Elastic Beanstalk での Java の開始方法 - AWS Elastic Beanstalk

Elastic Beanstalk での Java の開始方法

AWS Elastic Beanstalk で Java アプリケーションを開始するには、最初のアプリケーションバージョンとしてアップロードして環境にデプロイするためのアプリケーションソースバンドルが必要です。環境を作成すると、スケーラブルなウェブアプリケーションを実行するために必要なすべての AWS リソースが Elastic Beanstalk によって割り当てられます。

サンプル Java アプリケーションで環境を起動する

Elastic Beanstalk には、各プラットフォーム用の単一ページのサンプルアプリケーションが用意されているほか、追加の AWS リソース (Amazon RDS、言語、プラットフォーム固有の機能、API など) の使用方法を示す複雑なサンプルアプリケーションも用意されています。

単一ページのサンプルは、環境を作成するときに取得する同じコードであり、独自のソースコードを提供する必要はありません。複雑なサンプルアプリケーションは GitHub でホストされていますが、Elastic Beanstalk 環境にデプロイする前にはコンパイルやビルドが必要になる場合があります。

サンプル

名前

サポートされるバージョン

環境タイプ

送信元

説明

Tomcat (単一ページ)

すべての Tomcat with Corretto プラットフォームブランチ

ウェブサーバー

ワーカー

tomcat.zip

1 ページ(index.jsp)がウェブサイトのルートに表示されるように設定された Tomcat ウェブアプリケーションです。

ワーカー環境では、このサンプルには、1 分に 1 回 [cron.yaml] を呼び出すスケジュール済みタスク設定する [scheduled.jsp] ファイルが含まれます。scheduled.jsp が呼び出されると、/tmp/sample-app.log のログファイルに書き込まれます。最後に、設定ファイルが .ebextensions に含められれます。この設定ファイルにより、/tmp/ のログは、環境ログがリクエストされたときに Elastic Beanstalk が読み取る場所にコピーされます。

このサンプルを実行している環境で X-Ray の統合を有効にすると、アプリケーションは X-Ray に関する追加のコンテンツを表示し、X-Ray コンソールで表示できるデバッグ情報を生成するオプションを提供します。

Corretto (単一ページ)

Corretto 11

Corretto 8

ウェブサーバー

corretto.zip

Buildfile 設定ファイルおよび Procfile 設定ファイルを使用する Corretto アプリケーションです。

このサンプルを実行している環境で X-Ray の統合を有効にすると、アプリケーションは X-Ray に関する追加のコンテンツを表示し、X-Ray コンソールで表示できるデバッグ情報を生成するオプションを提供します。

Scorekeep

Java 8 ウェブサーバー クローン the repo at GitHub.com

Scorekeep は、Spring フレームワークを使ってユーザー、セッション、およびゲームを作成および管理するためのインターフェイスを提供する、RESTful ウェブ API です。API は、HTTP を介して API を使用する Angular 1.5 ウェブアプリを持つバンドルです。

アプリケーションは、Java SE プラットフォームの機能を使って依存関係をダウンロードし、オンインスタンスを構築することで、ソースバンドルのサイズを最小化します。また、アプリケーションには、プロキシを通じてポート 80 で静的にフロントエンドウェブアプリに対応するデフォルト設定を上書きし、/api で実行される API に localhost:5000 以下のパスをルーティングする nginx 設定ファイルが含まれています。

Scorekeep には、xray で使用する Java アプリケーションの設定方法を示す AWS X-Ray ブランチも含まれます。サーブレットフィルタを使用した着信 HTTP リクエストの計測方法、自動および手動の AWS SDK クライアントの計測方法、レコーダー設定、および送信 HTTP リクエストと SQL クライアントの計測方法が表示されます。

手順については readme を参照するか、AWS X-Ray 入門チュートリアルを使用して X-Ray でアプリケーションをでお試しください。

Does it Have Snakes?

Tomcat 8 と Java 8 ウェブサーバー クローン the repo at GitHub.com

Does it Have Snakes? は、Elastic Beanstalk 設定ファイル、Amazon RDS、JDBC、PostgreSQL、サーブレット、JSP、簡易タグのサポート、タグファイル、Log4J、ブートストラップ、Jackson の使用方法を示す Tomcat ウェブアプリケーションです。

このプロジェクトのソースコードには、クラスファイルにサーブレットとモデルをコンパイルし、Elastic Beanstalk 環境にデプロイできるウェブアーカイブに必要ファイルをパッケージする、最小限のビルドスクリプトが含まれています。完全な手順については、プロジェクトのリポジトリ内の readme ファイルを参照してください。

Locust Load Generator

Java 8

ウェブサーバー

クローン the repo at GitHub.com

別の Elastic Beanstalk 環境で実行している別のウェブアプリケーションの負荷テストに使用できるウェブアプリケーションです。Buildfile ファイル、Procfile ファイル、DynamoDB、Locust 、オープンソースの負荷テストツールの使用方法を示しています。

サンプルアプリケーションをダウンロードし、以下の手順に従って Elastic Beanstalk にデプロイします。

サンプルアプリケーションのある環境を起動する場合(コンソール)
  1. Elastic Beanstalk コンソールを開き、[Regions] (リージョン) リストで AWS リージョンを選択します。

  2. ナビゲーションペインで、[アプリケーション] を選択し、リストから既存のアプリケーション名を選択するか、またはアプリケーションを作成します。

  3. アプリケーションの概要ページで、[Create new environment] (新しい環境の作成) を選択します。

    
              Elastic Beanstalk コンソールに表示された、アプリケーション環境のリストを含むアプリケーションの概要ページ

    これにより、[Create environment] (環境を作成する) ウィザードが起動します。ウィザードには、新しい環境を作成するための一連のステップが用意されています。

    
              Elastic Beanstalk コンソールの [Create environment] (環境を作成する) ウィザード
  4. 環境枠では、[Web server environment] (ウェブサーバー環境) または [Worker environment] (ワーカー環境) の環境枠を選択します。作成後に環境枠を変更することはできません。

    注記

    Windows Server プラットフォームの .NET はワーカー環境枠をサポートしていません。

  5. [プラットフォーム] で、アプリケーションで使用される言語に一致するプラットフォームとプラットフォームブランチを選択します。

    注記

    Elastic Beanstalk では、一覧表示されるほとんどのプラットフォームで複数のバージョンがサポートされています。デフォルトでは、選択したプラットフォームとプラットフォームブランチの推奨バージョンがコンソールによって選択されます。アプリケーションで異なるバージョンが必要な場合は、ここでそのバージョンを選択できます。サポートされているプラットフォームのバージョンについては、Elastic Beanstalk でサポートされているプラットフォーム を参照してください。

  6. アプリケーションコード として、サンプルアプリケーション を選択します。

  7. [Configuration presets] (設定プリセット) では、[Single instance] (単一インスタンス) を選択します。

  8. [Next] (次へ) をクリックします。

  9. [サービスアクセスの設定] ページが表示されます。

    
              サービスアクセスを設定する
  10. [サービスロール][既存のサービスロールを使用] を選択します。

  11. 次に、[EC2 インスタンスプロファイル] ドロップダウンリストに焦点を当てます。このドロップダウンリストに表示される値は、アカウントが以前に新しい環境を作成したかどうかによって異なる場合があります。

    リストに表示されている値に基づいて、次のいずれかを選択します。

    • aws-elasticbeanstalk-ec2-role がドロップダウンリストに表示されている場合は、[EC2 インスタンスプロファイル] ドロップダウンリストから選択します。

    • リストに別の値が表示され、かつそれがお使いの環境向けのデフォルト EC2 インスタンスプロファイルである場合、[EC2 インスタンスプロファイル] ドロップダウンリストからその値を選択します。

    • [EC2 インスタンスプロファイル] ドロップダウンリストに選択できる値が何も表示されない場合、「EC2 インスタンスプロファイルの IAM ロールを作成」の次の手順を拡張してください。

      「EC2 インスタンスプロファイルの IAM ロールを作成」のステップを完了し、[EC2 インスタンスプロファイル] に後で選択できる IAM ロールを作成します。その後、このステップに戻ります。

      IAM ロールを作成してリストを更新すると、ドロップダウンリストに選択肢として表示されます。[EC2 インスタンスプロファイル] ドロップダウンリストから、先ほど作成した IAM ロールを選択します。

  12. [Configure service access] (サービスアクセスの設定) ページで [Skip to Review] (確認をスキップ) を選択します。

    これにより、このステップのデフォルト値が選択され、オプションのステップはスキップされます。

  13. [Review] (レビュー) ページに、すべての選択内容の概要が表示されます。

    環境をさらにカスタマイズするには、設定する項目を含むステップの横にある [Edit] (編集) を選択します。以下のオプションは、環境の作成中にのみ設定できます。

    • 環境名

    • ドメイン名

    • プラットフォームのバージョニング

    • プロセッサ

    • VPC

    • 階層

    次の設定は環境の作成後に変更できますが、新しいインスタンスあるいはその他のリソースをプロビジョニングする必要があり、適用までに長い時間がかかる場合があります。

    • インスタンスタイプ、ルートボリューム、キーペア、AWS Identity and Access Management (IAM) ロール

    • 内部 Amazon RDS データベース

    • ロードバランサー

    すべての使用できる設定の詳細については、「新しい環境の作成ウィザード」を参照してください。

  14. ページ下部の [Submit] (送信) を選択して、新しい環境の作成を開始します。


        サービスアクセスを設定する
EC2 インスタンスプロファイルに選択される IAM ロールを作成する方法
  1. [許可の詳細を表示] を選択します。これは [EC2 インスタンスプロファイル] ドロップダウンリストに表示されます。

    [インスタンスプロファイルの許可を表示] というタイトルのモーダルウィンドウが表示されます。このウィンドウには、作成する新しい EC2 インスタンスプロファイルにアタッチする必要がある管理プロファイルが表示されます。IAM コンソールを起動するリンクも提供します。

  2. ウィンドウの上部に表示される [IAM コンソール] リンクを選択します。

  3. IAM コンソールのナビゲーションペインで、[Roles] (ロール) を選択します。

  4. [Create role] (ロールの作成) を選択します。

  5. [信頼されたエンティティタイプ] から、[AWS サービス] を選択します。

  6. [Use case] (ユースケース) で、[EC2] を選択します。

  7. [Next] (次へ) をクリックします。

  8. 適切な管理ポリシーをアタッチします。[インスタンスプロファイルの許可を表示] モーダルウィンドウをスクロールして、管理ポリシーを表示します。ポリシーはこちらにも記載されています。

    • AWSElasticBeanstalkWebTier

    • AWSElasticBeanstalkWorkerTier

    • AWSElasticBeanstalkMulticontainerDocker

  9. [Next] (次へ) をクリックします。

  10. ロールの名前を入力します。

  11. (オプション) ロールにタグを追加します。

  12. [Create role] (ロールの作成) を選択します。

  13. 開いている Elastic Beanstalk コンソールウィンドウに戻ります。

  14. [インスタンスプロファイルの許可を表示] モーダルウィンドウを閉じます。

    重要

    Elastic Beanstalk コンソールを表示するブラウザページを閉じないでください。

  15. [EC2 インスタンスプロファイル] ドロップダウンリストの横にある 
          refresh icon
        (更新) を選択します。

    これによってドロップダウンリストが更新され、今作成したロールがドロップダウンリストに表示されます。

次のステップ

環境でアプリケーションを実行すると、アプリケーションの新しいバージョンや、まったく異なるアプリケーションをいつでもデプロイできるようになります。新しいアプリケーションバージョンのデプロイは、プロビジョニングや EC2 インスタンスの再開が必要ないため、非常に素早く行えます。

サンプルアプリケーションを 1 つか 2 つデプロイし、Java アプリケーションをローカルで開発および実行する準備が整ったら、次のセクションを参照して、必要なすべてのツールやライブラリとともに Java 開発環境を設定します。