[Procfile] でアプリケーションプロセスを設定します - AWS Elastic Beanstalk

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

[Procfile] でアプリケーションプロセスを設定します

アプリケーションソースバンドルのルートに JAR ファイルが複数ある場合は、どの JAR を実行するかを Elastic Beanstalk に伝える Procfile ファイルを含める必要があります。単一の JAR アプリケーション用の [Procfile] ファイルを含め、アプリケーションを実行する Java 仮想マシン(JVM)を設定することもできます。

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

Procfile の書き込みと使用の詳細については、「ビルドファイルと Procfile」を参照してください。

例 [Procfile]
web: java -Xms256m -jar server.jar cache: java -jar mycache.jar web_foo: java -jar other.jar

アプリケーション内の主要な JAR を実行するコマンドは、[web] と呼ばれ、Procfile 内のコマンドリストの最初に記載されている必要があります。nginx サーバーは、環境のロードバランサーから受信するすべての HTTP リクエストをアプリケーションに転送します。

Elastic Beanstalk は、Procfile 内のすべてのエントリが常に実行されている必要があるとみなし、Procfile に定義されたアプリケーションが終了した場合には自動的に再起動します。終了後に再起動の必要がないコマンドを実行するには、Buildfile を使用します。

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

メモ
  • このトピックの情報は、Amazon Linux AMI (AL1) に基づくプラットフォームブランチにのみ適用されます。AL2023/AL2 プラットフォームブランチでは、以前の Amazon Linux AMI (AL1) プラットフォームバージョンと互換性がなく、別の構成設定が必要です。

  • 2022 年 7 月 18 日、Elastic Beanstalk では Amazon Linux AMI (AL1) に基づくプラットフォームブランチのステータスがすべて廃止されます。現在および完全にサポートされている Amazon Linux 2023 プラットフォームブランチへの移行の詳細については、「Elastic Beanstalk Linux アプリケーションを Amazon Linux 2023 または Amazon Linux 2 に移行する」を参照してください。

デフォルトでは、Elastic Beanstalk はポート 5000 でアプリケーションにリクエストを送信するように nginx プロキシを設定します。デフォルトのポートを上書きするには、PORT 環境プロパティを、主要なアプリケーションがリッスンするポートに設定します。

Procfile を使用して複数のアプリケーションを実行する場合、Amazon Linux AMI プラットフォームバージョン上の Elastic Beanstalk では、各アプリケーションがリッスンするポートとして、1 つ前のアプリケーションのポート番号に 100 を加算した番号のポートが想定されます。各アプリケーション内からアクセス可能な PORT 変数には、そのアプリケーションの実行が予想されるポート番号が Elastic Beanstalk によって設定されます。System.getenv("PORT") を呼び出すことで、アプリケーションコード内のこの変数にアクセスできます。

以前の Procfile 例では、web アプリケーションはポート 5000 を、cache はポート 5100 を、web_foo はポート 5200 をリッスンします。[web] は、PORT 変数を読み取ることでリスニングポートを設定し、ポート番号に 100 を足して [cache] がリッスンしているポートを決定し、リクエストを送信します。