メニュー
AWS Elastic Beanstalk
開発者ガイド (API Version 2010-12-01)

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

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

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

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

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

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

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

AWS マネジメントコンソール での Ruby 環境の設定

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

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

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

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

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

  4. [Software Configuration] セクションで、設定アイコン (  を編集します。 ) を選択します。

ログオプション

[Log Options] セクションには、2 つの設定があります。

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

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

環境プロパティ

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

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

  • [BUNDLE_WITHOUT] – Gemfile から依存関係をインストールするときに無視するグループのコロン区切りリスト。

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

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

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

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

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

connectionstring = ENV['CONNECTION_STRING']

環境設定では、アクセント記号(`、ASCII 96)は除く、印刷可能な ASCII 文字を使用できます。また、200 文字を超えることはできません。

設定ファイル

設定ファイル を使用して、設定オプションを設定し、デプロイの間、他のインスタンス設定タスクを実行できます。 以下の設定ファイルでは、各プラットフォームによって定義される環境プロパティが設定され、LOGGING という追加の環境のプロパティが設定され、デプロイの間に コンテナコマンド を使用してタスクが実行されます。

例 .ebextensions/ruby-settings.config

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

# Run shell commands during a deployment
container_commands:
  01deploy:
    command: rake my_deployment_tasks

Gemfile を使用したパッケージのインストール

プロジェクトソースのルートで Gemfile ファイルを使用し、RubyGems を使用してアプリケーションに必要なパッケージをインストールします。

例 Gemfile

source "https://rubygems.org"
gem 'sinatra'
gem 'json'
gem 'rack-parser'

Gemfile ファイルがある場合は、Elastic Beanstalk では依存関係をインストールするために bundle install が実行されます。