AWS Elastic Beanstalk
開発者ガイド

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

AWS Elastic Beanstalk は、さまざまなバージョンの PHP プログラミング言語用のプラットフォームを多数サポートしています。これらのプラットフォームは、単独でまたは Composer で実行できる PHP ウェブアプリケーションをサポートしています。サポートされているプラットフォーム のトピックで詳細を確認してください。

Elastic Beanstalk には、Elastic Beanstalk 環境内の EC2 インスタンスで実行されるソフトウェアのカスタマイズに使用できる設定オプションが用意されています。必要に応じてアプリケーションの環境変数を設定し、Amazon S3 へのログローテーションを有効にし、一般的な PHP 初期化設定を設定します。

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

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

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

設定オプションとして提供されない高度な PHP 設定、および PHP の設定の場合、設定ファイルを使用して、Elastic Beanstalk により適用されるデフォルト設定を拡張および上書きできる INI ファイル の提供および追加拡張ができます。

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

PHP 環境の設定

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

Elastic Beanstalk コンソールで PHP 環境を設定するには

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

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

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

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

PHP 設定

  • Document root – サイトのデフォルトページを含むフォルダー。 ウェルカムページが、ソースバンドルのルートにない場合は、ルートパスに関連して、それを含むフォルダーを指定します。 たとえば、ウェルカムページが、/public というフォルダーにある場合は、public にします。

  • メモリ制限 – スクリプトが割り当てる最大メモリ容量。 たとえば、512M と指定します。

  • Zlib 出力の圧縮On に設定して、レスポンスを圧縮します。

  • Allow URL fopenOff に設定して、スクリプトがリモートの場所からファイルをダウンロードすることを防ぎます。

  • Display errorsOn に設定して、デバッグの内部エラーメッセージを表示します。

  • Max execution time – 環境によって終了されるまでの、スクリプトを実行できる最大時間 (秒単位)。

ログオプション

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

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

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

環境プロパティ

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

Elastic Beanstalk で実行する PHP 環境内部で、これらの値は /etc/php.d/environment.ini に書き込まれ、$_SERVER または get_cfg_var 関数を使用してアクセスできます。

$endpoint = $_SERVER['API_ENDPOINT'];

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

aws:elasticbeanstalk:container:php:phpini 名前空間

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

PHP プラットフォームは、AWS マネジメントコンソール では使用できないオプションなど、aws:elasticbeanstalk:container:php:phpini 名前空間のオプションを定義します。composer_options を選択すると、composer.phar install で、Composer を使用して依存関係をインストールするときに使用するカスタムオプションを設定します。 使用できるオプションの詳細については、http://getcomposer.org/doc/03-cli.md#install を参照してください。

以下の設定ファイルは、この名前空間で使用できる各オプションの設定の一例を示しています。

例 .ebextensions/php-settings.config

option_settings: 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

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