翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Elastic Beanstalk Ruby プラットフォームを使用する
このトピックでは、Elastic Beanstalk で Ruby アプリケーションを設定、構築、実行する方法について説明します。
AWS Elastic Beanstalk は、Ruby プログラミング言語のさまざまなバージョンで多数のプラットフォームブランチをサポートしています。完全なリストについては、AWS Elastic Beanstalk プラットフォームドキュメントの「Ruby」を参照してください。
Ruby ウェブアプリケーションは、Puma アプリケーションサーバーのNGNIXプロキシサーバーの背後で実行できます。を使用する場合は 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 バケットへのアクセス許可が付与されているインスタンスプロファイルを指定します。
-
Amazon S3 へのログファイルのローテーションを有効にする – アプリケーションの Amazon EC2インスタンスのログファイルをアプリケーションに関連付けられた Amazon S3 バケットにコピーするかどうかを指定します。
静的ファイル
パフォーマンスを向上させるには、静的ファイル セクションを使用して、ウェブアプリケーション内の一連のディレクトリから静的ファイル ( 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 プロキシサーバー設定は、ドメインルート () からの静的ファイルの提供をサポートしていません
。このプラットフォーム版は2021年10月21日にリリースされました。詳細については、「」を参照してください。新しいプラットフォームのバージョン-RubyのAWS Elastic Beanstalk リリースノート。subdomain
.elasticbeanstalk.com/
環境プロパティ
環境プロパティセクションでは、アプリケーションを実行している Amazon EC2インスタンスで環境設定を指定できます。環境プロパティは、キーバリューのペアでアプリケーションに渡されます。
Ruby プラットフォームでは、環境設定用に次のプロパティを定義します。
-
BUNDLE_WITHOUT – Gemfile
から依存関係をインストールする ときに無視するグループのコロン区切りリスト。 -
BUNDLER_DEPLOYMENT_MODE – Bundler を使用してデプロイモードで
依存関係をインストールするには、 true
(デフォルト) に設定します。開発モードで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 – ラックの環境ステージを指定します。例えば、
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。詳細については、「設定オプション」を参照してください。