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

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

重要

Amazon Linux 2 プラットフォームのバージョンは、Amazon Linux AMI プラットフォームのバージョン (前の Amazon Linux 2) とは根本的に異なります。これらの異なるプラットフォーム世代は、いくつかの点で互換性がありません。Amazon Linux 2 プラットフォームのバージョンに移行する場合は、「Elastic Beanstalk Linux アプリケーションを Amazon Linux 2 に移行する」の情報を必ずお読みください。

AWS Elastic Beanstalk Java SE プラットフォームは、コンパイルされた JAR ファイルから独自に実行できる Java ウェブアプリケーションのプラットフォームバージョンのセットです。インスタンス内でコンパイルするには、アプリケーションをローカルでコンパイルするか、ビルドスクリプトを使用してソースコードをアップロードします。Java SE プラットフォームのバージョンはプラットフォームブランチにグループ化され、各ブランチは Java のメジャーバージョン (Java 8Java 7 など) に対応します。

注記

Elastic Beanstalk は、アプリケーションの JAR ファイルを解析しません。Elastic Beanstalk に必要なファイルは、JAR ファイルの外部に保存します。たとえば、ワーカー環境cron.yaml ファイルはアプリケーションのソースバンドルのルート (JAR ファイルの横) に含めます。

設定オプションは 実行中の環境の設定を変更するために Elastic Beanstalk コンソールで利用できます。環境を終了したときにその設定が失われないようにするため、保存済み設定を使用して設定を保存し、それを後で他の環境に適用することができます。

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

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

アプリケーションソースに (ソースバンドル内ではなく、単独で) 単一の JAR ファイルだけを提供する場合、Elastic Beanstalk は JAR ファイルの名前を application.jar に変更し、java -jar application.jar を使用して実行します。環境でサーバーインスタンスを実行するプロセスを設定するには、オプションの Procfile をソースバンドルに含めます。ソースバンドルのルートに JAR が 2 つ以上ある場合、または java コマンドをカスタマイズして JVM オプションを設定する場合は Procfile が必要です。

ソースバンドルには、アプリケーションとともに常に Procfile を指定することをお勧めします。このようにして、アプリケーションに対して Elastic Beanstalk が実行するプロセスと、これらのプロセスが受け取る引数を正確に制御できます。

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

Elastic Beanstalk Linux ベースのプラットフォームを拡張するさまざまな方法の詳細については、Elastic Beanstalk Linux プラットフォームの拡張 を参照してください。

Java SE 環境を設定する

Java SE プラットフォーム設定では、Amazon EC2 インスタンスの動作を微調整できます。Elastic Beanstalk 環境の Amazon EC2 インスタンス設定を編集するには、Elastic Beanstalk コンソールを使用します。

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

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

  1. Elastic Beanstalk コンソールを開き、[リージョン] のリストで AWS リージョンを選択します。

  2. ナビゲーションペインで、[環境] を選択し、リストから環境の名前を選択します。

    注記

    環境が多数ある場合は、検索バーを使用して環境リストをフィルタリングします。

  3. ナビゲーションペインで、[設定] を選択します。

  4. [ソフトウェア] 設定カテゴリで、[編集] を選択します。

ログオプション

[Log Options (ログオプション)] セクションには、2 つの設定があります。

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

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

静的ファイル

パフォーマンスを向上させるには、[Static files (性的ファイル)] セクションを使用してウェブアプリケーション内のディレクトリセットの静的ファイル (HTML、イメージなど) を処理するようにプロキシサーバーを設定できます。ディレクトリごとに、仮想パスをディレクトリマッピングに設定します。プロキシサーバーは、指定されたパスのファイルに対するリクエストを受け取ると、アプリケーションにリクエストをルーティングする代わりにファイルを直接処理します。

Elastic Beanstalk コンソールによる静的ファイルの設定の詳細については、「静的ファイルの提供」を参照してください。

環境プロパティ

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

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

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

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

Java SE 設定の名前空間

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

Java SE プラットフォームは、プラットフォーム固有の名前空間を定義しません。aws:elasticbeanstalk:environment:proxy:staticfiles 名前空間を使用して、静的ファイルを配信するようにプロキシを設定できます。詳細と例については、「静的ファイルの提供」を参照してください。

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

Amazon Linux AMI (Amazon Linux 2 以前) の Java SE プラットフォーム

Elastic Beanstalk Java SE 環境で Amazon Linux AMI プラットフォームバージョン (以前の Amazon Linux 2) を使用している場合は、このセクションの追加情報をお読みください。

設定ファイルを使用して、設定オプションを設定し、デプロイの間、他のインスタンス設定タスクを実行できます。設定オプションは、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: /html: statichtml /images: staticimages

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

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