AWS Elastic Beanstalk
開発者ガイド

Elastic Beanstalk での Java 入門ガイド

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

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

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

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

サンプル

名前

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

環境タイプ

送信元

説明

Tomcat のデフォルト

Tomcat 8 と Java 8

ウェブサーバー

ワーカー

java-tomcat-v3.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 コンソールで表示できるデバッグ情報を生成するオプションを提供します。

Tomcat 7

Tomcat 7 と Java 7

Tomcat 7 と Java 6

ウェブサーバー

ワーカー

java7-tomcat7.zip

Tomcat 7 で Java 7 以前をターゲットとする Tomcat のデフォルトアプリケーションのバージョンです。

Java SE のデフォルト

Java 8

Java 7

ウェブサーバー

java-se-jetty-gradle-v3.zip

Buildfile 設定ファイルおよび Procfile 設定ファイルを使用する Jetty SE アプリケーションです。このサンプルの Buildfile は、Gradle コマンドを実行し、オンインスタンスでアプリケーションソースを構築します。

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

Scorekeep

Java 8 ウェブサーバー Clone the repo at GitHub.com

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

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

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

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

Does it Have Snakes?

Tomcat 8 と Java 8 ウェブサーバー Clone 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

ウェブサーバー

Clone the repo at GitHub.com

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

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

サンプルアプリケーションを使用して環境を起動するには(コンソール)

  1. Elastic Beanstalk コンソール を開きます。

  2. 既存のアプリケーションを選択するか、アプリケーションを作成します。

  3. 右上隅の [Actions (アクション)] メニューから、[Create enviroment (環境の作成)] を選択します。

  4. [Web server enviroment (ウェブサーバー環境)] または [Worker enviroment (ワーカー環境)] 環境枠を選択します。作成後に環境枠を変更することはできません。

    注記

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

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

    注記

    Elastic Beanstalk では、リストされるほとんどのプラットフォームで複数のバージョンがサポートされています。デフォルトでは、最新バージョンの言語、ウェブコンテナ、または Elastic Beanstalk によってサポートされるフレームワークがコンソールで選択されます。アプリケーションが以前のバージョンを必要とする場合は、ステップ 7 で説明するように、[Configure more options (さらにオプションを設定)] を選択します。

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

  7. 環境をさらにカスタマイズするには、[ Configure more options (さらにオプションを設定)] を選択します。以下のオプションは、環境の作成中にのみ設定できます。

    • 環境名

    • ドメイン名

    • プラットフォームのバージョン (設定)

    • VPC

    • 階層

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

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

    • 内部 Amazon RDS データベース

    • ロードバランサー

    使用可能なすべての設定の詳細については、Create New Environment ウィザードを参照してください。

  8. [Create environment (環境の作成)] を選択します。

次のステップ

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

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