

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

# [Procfile] でアプリケーションプロセスを設定します
<a name="java-se-procfile"></a>

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

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

`Procfile` の書き込みと使用の詳細については、「[ビルドファイルと Procfile](platforms-linux-extend.build-proc.md)」を参照してください。

**Example [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`](java-se-buildfile.md) を使用します。

## (Amazon Linux 2 より前の) Amazon Linux AMI での Procfile の使用
<a name="java-se-procfile.alami"></a>

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

**注意事項**  
このトピックの情報は、Amazon Linux AMI (AL1) に基づくプラットフォームブランチにのみ適用されます。AL2023/AL2 プラットフォームブランチでは、以前の Amazon Linux AMI (AL1) プラットフォームバージョンと互換性がなく、*別の構成設定が必要です*。
 [2022 年 7 月 18 日](https://docs.aws.amazon.com/elasticbeanstalk/latest/relnotes/release-2022-07-18-linux-al1-retire.html)に、Elastic Beanstalk では Amazon Linux AMI (AL1) に基づくプラットフォームブランチのステータスがすべて**廃止**に設定されました。現在および完全にサポートされている Amazon Linux 2023 プラットフォームブランチへの移行の詳細については、「[Elastic Beanstalk Linux アプリケーションを Amazon Linux 2023 または Amazon Linux 2 に移行する](using-features.migration-al.md)」を参照してください。

### ポートパッシング — Amazon Linux AMI (AL1)
<a name="java-se-procfile.alami.ports"></a>

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

`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`] がリッスンしているポートを決定し、リクエストを送信します。