メニュー
AWS Elastic Beanstalk
開発者ガイド (API Version 2010-12-01)

AWS Elastic Beanstalk Java SE プラットフォームを使用する

AWS Elastic Beanstalk Java SE プラットフォームは、コンパイルされた JAR ファイルから独自に実行できる Java ウェブアプリケーションの環境設定のセットです。インスタンス内でコンパイルするには、アプリケーションをローカルでコンパイルするか、ビルドスクリプトを使用してソースコードをアップロードします。各設定は Java 8 および Java 7 を含む Java の主要なバージョンに対応しています。

プラットフォームに固有の設定オプションは AWS マネジメントコンソール で実行中の環境の設定を変更するために利用できます。環境を終了したときにその設定が失われないようにするため、保存済み設定を使用して設定を保存し、それを後で他の環境に適用することができます。

ソースコードの設定を保存する場合、設定ファイルを含めることができます。設定ファイルの設定は、環境を作成するたびに、またはアプリケーションをデプロイするたびに適用されます。設定ファイルを使用して、デプロイの間にパッケージをインストールしたり、スクリプトを実行したり、他のインスタンスのカスタマイズオペレーションを実行することもできます。

Elastic Beanstalk Java SE プラットフォーム設定は、リバースプロキシとして機能する nginx サーバーを含み、キャッシュ型静的コンテンツを提供し、アプリケーションにリクエストをパスします。このプラットフォームには、アプリケーションの負荷を減らすため、ソースコードのフォルダから静的アセットに対応するようプロキシサーバーを設定する設定オプションが用意されています。高度なシナリオでは、ソースバンドルに独自の .conf ファイルを含めて Elastic Beanstalk のプロキシ設定を拡張するか、これを完全に上書きできます。

JAR ファイルが 1 つだけの場合は、Elastic Beanstalk は java -jar application_name.jar でそのファイルを実行します。環境でサーバーインスタンスを実行するプロセスを設定するには、オプションの Procfile をソースバンドルに含めます。ソースバンドルのルートに JAR が 2 つ以上ある場合、または java コマンドをカスタマイズして JVM オプションを設定する場合は Procfile が必要です。

Java クラスをコンパイルし、デプロイ時に環境内の EC2 インスタンスでの他のビルドコマンドを実行するには、アプリケーションバンドルに Buildfile を含めます。Buildfile により、JAR をローカルにコンパイルする代わりに、ソースコードをそのままデプロイしてサーバー上に構築できます。Java SE プラットフォームには、サーバー上でのビルドを可能にする共通ビルドツールが含まれます。

実行順序

アプリケーションソースバンドルに複数のタイプの構成を含めると、次の順序で実行されます。各手順は、直前の手順が完了するまで開始されません。

  • ステップ 1: 設定ファイルで定義された commandsfiles、および packages

  • ステップ 2: Buildfile コマンド

  • ステップ 3: 設定ファイルの container_commands

  • 手順 4: [Procfile] コマンド(すべてのコマンドは同時に実行されます)

設定ファイルで commandsfilespackages、および container_commands を使用する手順の詳細については、「Linux サーバーでのソフトウェアのカスタマイズ」を参照してください。

Java SE 環境を設定する

Elastic Beanstalk の Java SE プラットフォーム設定では、Elastic Beanstalk は、すべての環境で提供する標準オプションに加えて、プラットフォーム固有のオプションをいくつか提供します。これらのオプションにより、アプリケーションの前面で実行される nginx プロキシを設定して、静的ファイルを処理することができます。

AWS マネジメントコンソール を使用して、Amazon S3 へのログローテーションを有効にでき、アプリケーションが環境から読むことができる変数を設定します。

Elastic Beanstalk コンソールで Java SE 環境を設定するには

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

  2. お客様の環境の管理ページに移動します。

  3. [Configuration] を選択します。

  4. [Software Configuration] セクションで、設定アイコン (  を編集します。 ) を選択します。

ログオプション

[Log Options] セクションには、2 つの設定があります。

  • Instance profile – アプリケーションに関連付けられた Amazon S3 バケットへのアクセス許可が付与されているインスタンスプロファイルを指定します。

  • Enable log file rotation to Amazon S3 – アプリケーションの Amazon EC2 インスタンスのログファイルを、アプリケーションに関連付けられている Amazon S3 バケットにコピーするかどうかを指定します。

環境プロパティ

[Environment Properties] セクションでは、アプリケーションを実行している Amazon EC2 インスタンスの環境設定を指定できます。環境プロパティは、キーと値のペアでアプリケーションに渡されます。

Elastic Beanstalk で実行される Java SE 環境内では、System.getenv() 関数を使用して環境変数にアクセスできます。たとえば、次のコードを使用して変数に API_ENDPOINT という名前のプロパティを読み取ることができます。

String endpoint = System.getenv("API_ENDPOINT");

詳細については、「環境プロパティとその他のソフトウェアの設定」を参照してください。

aws:elasticbeanstalk:container:java:staticfiles 名前空間

設定ファイル を使用して、設定オプションを設定し、デプロイの間、他のインスタンス設定タスクを実行できます。 設定オプションは、Elastic Beanstalk サービスまたは使用できるプラットフォームで定義し、名前空間に整理できます。

Java SE プラットフォームは、すべてのプラットフォームでサポートされる名前空間の他に、プラットフォーム固有の設定の名前空間を 1 つサポートします。名前空間 aws:elasticbeanstalk:container:java:staticfiles により、ウェブアプリケーションのパスを、静的コンテンツを含むアプリケーションソースバンドルのフォルダーにマッピングするオプションを定義できます。

たとえば、この option_settings スニペットは、静的ファイルの名前空間で 2 つのオプションを定義します。1 つめのオプションはパス /public を [public] というフォルダーに、2 つめのオプションはパス /images を [img] というフォルダーにマッピングします。

option_settings:
  aws:elasticbeanstalk:container:java:staticfiles:
    /public: public
    /images: img

この名前空間を使用してマッピングされるフォルダーは、ソースバンドルのルートに実際に存在するフォルダーであることが必要です。パスを JAR ファイルのフォルダーにマッピングすることはできません。

Elastic Beanstalk には、環境をカスタマイズするための多数の設定オプションが用意されています。設定ファイルに加えて、コンソール、保存された設定、EB CLI、または AWS CLI を使用して、設定オプションを指定することもできます。詳細については、「設定オプション」を参照してください。