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

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

Ruby アプリケーションを起動するコマンドを指定するには、ソースバンドルのルートに Procfile というファイルを含めます。

注記

Elastic Beanstalk は、Amazon Linux AMI Ruby プラットフォームブランチ (Amazon Linux 2 以前) でこの機能をサポートしていません。with Puma または with Passenger を含む名前を持つプラットフォームブランチは、Ruby のバージョンにかかわらず Procfile の前に付けられ、Amazon Linux 2 の機能をサポートしません。

Procfile の記述と使用の詳細については、「Elastic Beanstalk Linux プラットフォームの拡張」の「ビルドファイルと Procfile」セクションを展開してください。

Procfile を指定しない場合、Elastic Beanstalk によって次のデフォルトファイルが生成されます。これは、プリインストールされた Puma アプリケーションサーバーを使用していることを前提としています。

web: puma -C /opt/elasticbeanstalk/config/private/pumaconf.rb

独自の Puma サーバーを使用する場合は、Gemfile を使用してインストールできます。以下の Procfile の例は、起動方法を示しています。

例 [Procfile]

web: bundle exec puma -C /opt/elasticbeanstalk/config/private/pumaconf.rb

Passenger アプリケーションサーバーを使用する場合は、次のサンプルファイルを使用して、Passenger をインストールして使用するよう Ruby 環境を設定します。

  1. このサンプルファイルを使用して Passenger をインストールします。

    例 Gemfile

    source 'https://rubygems.org' gem 'passenger'
  2. このサンプルファイルを使用して Passenger を起動するよう Elastic Beanstalk に指示します。

    例 [Procfile]

    web: bundle exec passenger start /var/app/current --socket /var/run/puma/my_app.sock
注記

Passenger を使用するために nginx プロキシサーバーの設定に変更を加える必要はありません。他のアプリケーションサーバーを使用するには、nginx 設定をカスタマイズして、リクエストをアプリケーションに適切に転送する必要があります。