翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
このトピックでは、Elastic Beanstalk で Ruby アプリケーションを設定、ビルド、実行する方法について説明します。
AWS Elastic Beanstalk は、Ruby プログラミング言語のさまざまなバージョンの多数のプラットフォームブランチをサポートしています。完全なリストについては、「AWS Elastic Beanstalk プラットフォーム」ドキュメントの「Ruby」を参照してください。
Ruby ウェブアプリケーションは、Puma アプリケーションサーバーの NGINX プロキシサーバーの背後で実行できます。RubyGems を使用すると、デプロイの間にパッケージをインストールするためにソースバンドルに Gemfile を含めることができます。
アプリケーションサーバーの設定
Elastic Beanstalk は、環境を作成するときに選択した Ruby プラットフォームブランチに基づいて Puma アプリケーションサーバーをインストールします。Ruby プラットフォームのバージョンに付属するコンポーネントの詳細については、AWS Elastic Beanstalk プラットフォームガイドの「サポートされているプラットフォーム」を参照してください。
独自に用意された Puma サーバーでアプリケーションを設定できます。これにより、Ruby プラットフォームブランチにあらかじめインストールされているバージョン以外のバージョンの Puma を使用するオプションが提供されます。Passenger などの別のアプリケーションサーバーを使用するようにアプリケーションを設定することもできます。そのためには、デプロイで Gemfile
をインクルードしてカスタマイズする必要があります。また、アプリケーションサーバーを起動するように Procfile
を設定する必要もあります。詳細については、「Procfile でアプリケーションプロセスを設定する」を参照してください。
その他の設定オプション
Elastic Beanstalk には、Elastic Beanstalk 環境内の Amazon Elastic Compute Cloud (Amazon EC2) インスタンスで実行されるソフトウェアをカスタマイズするために使用できる設定オプションが用意されています。アプリケーションに必要な環境変数を設定し、Amazon S3 に対してログのローテーションを有効にしたら、アプリケーションの出典で静的ファイルが含まれるフォルダを、プロキシサーバーによって提供されるパスにマッピングできます。プラットフォームでは、Rails および Rack の検出と使用を容易にすることに関連していくつかの一般的な環境可変数を事前に定義します。
設定オプションは実行中の環境の設定を変更するために Elastic Beanstalk コンソールで利用できます。環境を終了したときにその設定が失われないようにするため、保存済み設定を使用して設定を保存し、それを後で他の環境に適用することができます。
ソースコードの設定を保存する場合、設定ファイルを含めることができます。設定ファイルの設定は、環境を作成するたびに、またはアプリケーションをデプロイするたびに適用されます。設定ファイルを使用して、デプロイの間にパッケージをインストールしたり、スクリプトを実行したり、他のインスタンスのカスタマイズオペレーションを実行することもできます。
Elastic Beanstalk コンソールで適用される設定は、設定ファイルに同じ設定があれば、それらの設定を上書きします。これにより、設定ファイルでデフォルト設定を定義し、コンソールでそのデフォルト設定を環境固有の設定で上書きできます。設定の優先順位の詳細と設定の他の変更方法については、「設定オプション」を参照してください。
Elastic Beanstalk Linux ベースのプラットフォームを拡張するさまざまな方法の詳細については、「Elastic Beanstalk Linux プラットフォームの拡張」を参照してください。
Ruby 環境の設定
Elastic Beanstalk コンソールを使用して、Amazon S3 へのログローテーションを有効にし、アプリケーションが環境から読むことができる変数を設定することができます。
お客様の環境のソフトウェア構成設定にアクセスするには
Elastic Beanstalk コンソール
を開き、リージョンリストで を選択します AWS リージョン。 -
ナビゲーションペインで、[環境] を選択し、リストから環境の名前を選択します。
注記
環境が多数ある場合は、検索バーを使用して環境リストをフィルタリングします。
ナビゲーションペインで、[設定] を選択します。
-
[更新、モニタリング、ログ] の設定カテゴリで、[編集] を選択します。
ログオプション
[ログオプション] セクションには、2 つの設定があります。
-
[Instance profile] – アプリケーションに関連付けられた Amazon S3 バケットへのアクセス許可が付与されているインスタンスプロファイルを指定します。
-
[Enable log file rotation to Amazon S3] (Amazon S3 へのログファイルのローテーションの有効化) - アプリケーションの Amazon EC2 インスタンスのログファイルを、アプリケーションに関連付けられている Amazon S3 バケットにコピーするかどうかを指定します。
静的ファイル
パフォーマンスを向上させるために、[Static files] (静的ファイル) セクションを使用して、ウェブアプリケーション内のディレクトリセットから静的ファイル (HTML、イメージなど) を配信するようにプロキシサーバーを設定することができます。ディレクトリごとに、仮想パスをディレクトリマッピングに設定します。プロキシサーバーは、指定されたパスのファイルに対するリクエストを受け取ると、アプリケーションにリクエストをルーティングする代わりにファイルを直接 処理します。
設定ファイルまたは、Elastic Beanstalk コンソールを使用した静的ファイルの設定の詳細については、「静的ファイルの提供」を参照してください。
デフォルトでは、Ruby 環境のプロキシサーバーは次のように静的ファイルを供するように設定されています。
-
public
フォルダ内のファイルは、/public
パスとドメインルート (/
パス)から供されます。 -
public/assets
サブフォルダ内のファイルは、/assets
パスです。
以下の例では、デフォルトの設定作業のしくみを示しています。
-
たとえば、アプリケーションの出典に
public
という名前のフォルダのlogo.png
というファイルが含まれている場合、プロキシサーバーは
とsubdomain
.elasticbeanstalk.com/public/logo.png
からそれをユーザーに提供します。subdomain
.elasticbeanstalk.com/logo.png -
たとえば、アプリケーションの出典に
public
のフォルダ内のassets
という名前のフォルダにlogo.png
というファイルが含まれている場合、プロキシサーバーは
でそれをユーザーに提供します。subdomain
.elasticbeanstalk.com/assets/logo.png
静的ファイルに追加のマッピングを設定することができます。詳細については、このトピックで後述する「Ruby 設定の名前空間」を参照してください。
注記
より前のプラットフォームバージョン用Ruby 2.7 AL2 バージョン 3.3.7のデフォルトの Elastic Beanstalk nginx プロキシサーバー設定は、ドメインルートからの静的ファイルの提供を support していません (
)。このプラットフォーム版は2021年10月21日にリリースされました。詳細については、「」を参照してください。新しいプラットフォームのバージョン-RubyのAWS Elastic Beanstalk リリースノート。subdomain
.elasticbeanstalk.com/
環境プロパティ
環境プロパティ セクションでは、アプリケーションを実行している Amazon EC2 インスタンスの環境設定を指定できます。環境プロパティは、キーバリューのペアでアプリケーションに渡されます。
Ruby プラットフォームでは、環境設定用に次のプロパティを定義します。
-
[BUNDLE_WITHOUT] – Gemfile
から依存関係をインストール するときに無視するグループの、コロン区切りのリストです。 -
BUNDLER_DEPLOYMENT_MODE –
true
(デフォルト) に設定すると、Bundler を使用してデプロイ・モードで依存関係がインストールされます。開発モードで bundle install
を実行するには、false
に設定します。注記
この環境プロパティは、Amazon Linux AMI Ruby プラットフォームブランチ (Amazon Linux 2 以前) では定義されていません。
-
[RAILS_SKIP_ASSET_COMPILATION] – デプロイの間に、
rake assets:precompile
の実行をスキップするには true
に設定します。 -
[RAILS_SKIP_MIGRATIONS] – デプロイの間に、
rake db:migrate
の実行をスキップするには true
に設定します。 -
[RACK_ENV] – Rack の環境ステージを指定します。例えば、
development
、production
、またはtest
です。
Elastic Beanstalk で実行される Ruby 環境内では、ENV
オブジェクトを使用して環境変数にアクセスできます。たとえば、次のコードを使用して可変数に API_ENDPOINT
という名前のプロパティを読み取ることができます。
endpoint = ENV['API_ENDPOINT']
詳細については、「環境プロパティとその他のソフトウェアの設定」を参照してください。
Ruby 設定の名前空間
設定ファイルを使用して、設定オプションを設定し、デプロイの間、他のインスタンス設定タスクをパフォーマンスできます。設定オプションは、プラットフォーム固有のものでも、Elastic Beanstalk サービス全体のすべてのプラットフォームに適用できるものでもかまいません。設定オプションは、名前空間として整理されています。
aws:elasticbeanstalk:environment:proxy:staticfiles
名前空間を使用して、静的ファイルを配信する環境プロキシを設定できます。アプリケーションディレクトリへの仮想パスのマッピングを定義します。
Ruby プラットフォームでは、プラットフォーム固有の名前空間を定義しません。代わりに、一般的な Rails および Rack オプションの環境プロパティを定義します。
次の設定ファイルは、staticimages
という名前のディレクトリをパス /images
にマップして、プラットフォーム定義の各環境プロパティを設定し、LOGGING
という名前の追加の環境プロパティを設定する静的ファイルオプションを指定します。
例 .ebextensions/ruby-settings.config
option_settings:
aws:elasticbeanstalk:environment:proxy:staticfiles:
/images: staticimages
aws:elasticbeanstalk:application:environment:
BUNDLE_WITHOUT: test
BUNDLER_DEPLOYMENT_MODE: true
RACK_ENV: development
RAILS_SKIP_ASSET_COMPILATION: true
RAILS_SKIP_MIGRATIONS: true
LOGGING: debug
注記
BUNDLER_DEPLOYMENT_MODE
環境プロパティと aws:elasticbeanstalk:environment:proxy:staticfiles
名前空間は、Amazon Linux AMI Ruby プラットフォームブランチ (Amazon Linux 2 以前) では定義されていません。
Elastic Beanstalk には、環境をカスタマイズするための多数の設定オプションが用意されています。設定ファイルに加えて、コンソール、保存された設定、EB CLI、または を使用して、設定オプションを指定することもできます AWS CLI詳細については「設定オプション」を参照してください。