AWS Elastic Beanstalk
開発者ガイド

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

AWS Elastic Beanstalk Ruby プラットフォームは、Puma または Passenger アプリケーションサーバーの下にある nginx プロキシサーバーの背後で実行できる Ruby ウェブアプリケーションの一連の環境設定です。各設定は Ruby のバージョンに対応しています。

Elastic Beanstalk には、Elastic Beanstalk 環境内の EC2 インスタンスで実行されるソフトウェアのカスタマイズに使用できる設定オプションが用意されています。必要に応じてアプリケーションの環境変数を設定し、Amazon S3 へのログローテーションを有効にできます。プラットフォームでは、Rails および Rack の検出と使用を容易にすることに関連していくつかの一般的な環境変数を事前に定義します。

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

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

RubyGems を使用すると、デプロイの間にパッケージをインストールするためにソースバンドルに Gemfile ファイルを含めることができます。

AWS マネジメントコンソール で適用される設定は、設定ファイルに同じ設定があれば、それらの設定を上書きします。これにより、設定ファイルでデフォルト設定を定義し、コンソールでそのデフォルト設定を環境固有の設定で上書きできます。設定の優先順位の詳細と設定の他の変更方法については、「設定オプション」を参照してください。

Ruby 環境の設定

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

お客様の環境のソフトウェア構成設定にアクセスするには

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

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

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

  4. [ソフトウェア] 設定カードで、[変更] を選択します。

ログオプション

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

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

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

環境プロパティ

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

Ruby プラットフォームでは、環境設定用に次のプロパティを定義します。

  • [BUNDLE_WITHOUT] – Gemfile から依存関係をインストールするときに無視するグループを指定します。複数のグループを指定するときは、各グループをコロン「:」で区切ります。

  • [RAILS_SKIP_ASSET_COMPILATION] – デプロイの間に、rake assets:precompile 実行をスキップするには true に設定します。

  • [RAILS_SKIP_MIGRATIONS] – デプロイの間に、rake db:migrate 実行をスキップするには true に設定します。

  • [RACK_ENV] – Rack の環境ステージを指定します。たとえば、developmentproduction、または test などです。

Elastic Beanstalk 内で実行される Ruby 環境では、ENV オブジェクトを使って環境変数にアクセスできます。たとえば、次のコードを使用して変数に API_ENDPOINT という名前のプロパティを読み取ることができます。

endpoint = ENV['API_ENDPOINT']

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

Ruby 設定の名前空間

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

Ruby プラットフォームでは、追加の名前空間を定義しません。代わりに、一般的な Rails および Rack オプションの環境プロパティを定義します。以下の設定ファイルでは、各プラットフォームによって定義される環境プロパティが設定され、LOGGING という名前で追加の環境プロパティが設定されます。

例 .ebextensions/ruby-settings.config

option_settings: aws:elasticbeanstalk:application:environment: BUNDLE_WITHOUT: test RACK_ENV: development RAILS_SKIP_ASSET_COMPILATION: true RAILS_SKIP_MIGRATIONS: true LOGGING: debug

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