Elastic Beanstalk PHP プラットフォームを使用する
Amazon Linux 2 プラットフォームバージョンは、(Amazon Linux 2 より前の) Amazon Linux AMI プラットフォームバージョンとは根本的に異なります。これらの異なるプラットフォーム世代は、いくつかの点で互換性がありません。Amazon Linux 2 プラットフォームバージョンに移行する場合は、「Elastic Beanstalk Linux アプリケーションを Amazon Linux 2 に移行する」の情報を必ずお読みください。
AWS Elastic Beanstalk は、さまざまなバージョンの PHP プログラミング言語用のプラットフォームを多数サポートしています。これらのプラットフォームは、単独でまたは Composer で実行できる PHP ウェブアプリケーションをサポートしています。詳細については、AWS Elastic Beanstalk プラットフォームのドキュメントの「PHP」を参照してください。
Elastic Beanstalk には、Elastic Beanstalk 環境内の EC2 インスタンスで実行されるソフトウェアのカスタマイズに使用できる設定オプションが用意されています。アプリケーションに必要な環境変数を設定し、Amazon S3 に対してログのローテーションを有効にしたら、アプリケーションのソースで静的ファイルが含まれるフォルダーを、プロキシサーバーによって提供されるパスにマッピングし、一般的な PHP 初期化設定を行うことができます。
実行中の環境の設定を変更するには、Elastic Beanstalk コンソールで設定オプションを使用できます。環境を終了したときにその設定が失われないようにするため、保存済み設定を使用して設定を保存し、それを後で他の環境に適用することができます。
ソースコードの設定を保存する場合、設定ファイルを含めることができます。設定ファイルの設定は、環境を作成するたびに、またはアプリケーションをデプロイするたびに適用されます。設定ファイルを使用して、デプロイの間にパッケージをインストールしたり、スクリプトを実行したり、他のインスタンスのカスタマイズオペレーションを実行することもできます。
Composer を使用すると、デプロイの間にパッケージをインストールするために、ソースバンドルに composer.json ファイルを含めることができます。
設定オプションとして提供されない高度な PHP 設定、および PHP の設定の場合、設定ファイルを使用して、Elastic Beanstalk により適用されるデフォルト設定を拡張および上書きできる INI ファイルの提供および追加拡張ができます。
Elastic Beanstalk コンソールで適用された設定は、設定ファイル内の同じ設定 (あれば) をオーバーライドします。これにより、設定ファイルでデフォルト設定を定義し、コンソールでそのデフォルト設定を環境固有の設定で上書きできます。設定の優先順位の詳細と設定の他の変更方法については、「設定オプション」を参照してください。
Elastic Beanstalk Linux ベースのプラットフォームを拡張するさまざまな方法については、「Elastic Beanstalk Linux プラットフォームの拡張」を参照してください。
PHP 環境の設定
Elastic Beanstalk コンソールでは、Amazon S3 のログローテーションを有効にしたり、アプリケーションが環境から読み取ることができる変数を設定したり、PHP 設定を変更することができます。
Elastic Beanstalk コンソールで PHP 環境を設定するには
-
Elastic Beanstalk コンソール
を開き、[リージョン] リストで AWS リージョンを選択します。 -
ナビゲーションペインで、[環境] を選択し、リストから環境の名前を選択します。
注記 環境が多数ある場合は、検索バーを使用して環境リストをフィルタリングします。
-
ナビゲーションペインで、[設定] を選択します。
-
[ソフトウェア] 設定カテゴリで、[編集] を選択します。
PHP 設定
-
Proxy server (プロキシサーバー) – 環境インスタンスで使用するプロキシサーバーです。デフォルトでは、nginx が使用されます。
-
Document root (ドキュメントルート) – サイトのデフォルトページを含むフォルダー。ウェルカムページが、ソースバンドルのルートにない場合は、ルートパスに関連して、それを含むフォルダを指定します。たとえば、ウェルカムページが、
/public
というフォルダにある場合は、public
にします。 -
Memory limit (メモリ制限) – スクリプトが割り当てる最大メモリ容量。たとえば、
512M
と指定します。 -
Zlib output compression (Zlib 出力の圧縮) –
On
に設定して、レスポンスを圧縮します。 -
Allow URL fopen (URL fopen を許可) –
Off
に設定して、スクリプトがリモートの場所からファイルをダウンロードすることを防ぎます。 -
Display errors (表示エラー) –
On
に設定して、デバッグの内部エラーメッセージを表示します。 -
Max execution time (最大実行時間) – 環境によって終了されるまでの、スクリプトを実行できる最大時間 (秒単位)。
ログオプション
[Log Options (ログオプション)] セクションには、2 つの設定があります。
-
インスタンスプロファイル – アプリケーションに関連付けられた Amazon S3 バケットへのアクセス許可が付与されているインスタンスプロファイルを指定します。
-
Enable log file rotation to Amazon S3 (Amazon S3 へのログファイルのローテーションの有効化) – アプリケーションの Amazon EC2 インスタンスのログファイルを、アプリケーションに関連付けられている Amazon S3 バケットにコピーするかどうかを指定します。
静的ファイル
パフォーマンスを向上させるには、[Static files (性的ファイル)] セクションを使用してウェブアプリケーション内のディレクトリセットの静的ファイル (HTML、イメージなど) を処理するようにプロキシサーバーを設定できます。ディレクトリごとに、仮想パスをディレクトリマッピングに設定します。プロキシサーバーは、指定されたパスのファイルに対するリクエストを受け取ると、アプリケーションにリクエストをルーティングする代わりにファイルを直接処理します。
Elastic Beanstalk コンソールを使用した静的ファイルの設定の詳細については、「静的ファイルの提供」を参照してください。
環境プロパティ
環境プロパティ セクションでは、アプリケーションを実行している Amazon EC2 インスタンスの環境設定を指定できます。これらの設定は、キーと値のペアでアプリケーションに渡されます。
アプリケーションコードは、$_SERVER
または get_cfg_var
関数を使用して環境プロパティにアクセスできます。
$endpoint = $_SERVER['API_ENDPOINT'];
詳細については、「環境プロパティとその他のソフトウェアの設定」を参照してください。
aws:elasticbeanstalk:container:php:phpini 名前空間
設定ファイルを使用して、設定オプションを設定し、デプロイの間、他のインスタンス設定タスクを実行できます。設定オプションは、Elastic Beanstalk サービスまたは使用するプラットフォームで定義し、名前空間として編成できます。
aws:elasticbeanstalk:environment:proxy
名前空間を使用して、環境のプロキシサーバーを選択できます。
aws:elasticbeanstalk:environment:proxy:staticfiles
名前空間を使用して、静的ファイルを配信する環境プロキシを設定できます。アプリケーションディレクトリへの仮想パスのマッピングを定義します。
PHP プラットフォームは、Elastic Beanstalk コンソールでは使用できないオプションなど、aws:elasticbeanstalk:container:php:phpini
名前空間のオプションを定義します。composer_options
を選択すると、composer.phar
install
で、Composer を使用して依存関係をインストールするときに使用するカスタムオプションを設定します。使用できるオプションの詳細については、http://getcomposer.org/doc/03-cli.md#install
次の設定ファイルの例では、staticimages
という名前のディレクトリをパス /images
にマップする静的ファイルオプションを指定し、aws:elasticbeanstalk:container:php:phpini
名前空間で使用できる各オプションの設定を示します。
例 .ebextensions/php-settings.config
option_settings:
aws:elasticbeanstalk:environment:proxy:
ProxyServer: apache
aws:elasticbeanstalk:environment:proxy:staticfiles:
/images: staticimages
aws:elasticbeanstalk:container:php:phpini:
document_root: /public
memory_limit: 128M
zlib.output_compression: "Off"
allow_url_fopen: "On"
display_errors: "Off"
max_execution_time: 60
composer_options: vendor/package
aws:elasticbeanstalk:environment:proxy:staticfiles
名前空間は、Amazon Linux AMI PHP プラットフォームブランチ (Amazon Linux 2 以前) では定義されていません。
Elastic Beanstalk には、環境をカスタマイズするための多数の設定オプションが用意されています。設定ファイルに加えて、コンソール、保存された設定、EB CLI、または AWS CLI を使用して、設定オプションを指定することもできます。詳細については、「設定オプション」を参照してください。