AWS Elastic Beanstalk
開発者ガイド

Tomcat 環境のプロキシサーバーの設定

Tomcat プラットフォームはリバースプロキシを使用して、インスタンスのポート 80 から、ポート 8080 でリッスンしている Tomcat ウェブコンテナにリクエストを中継します。Elastic Beanstalk は、拡張または独自の設定で完全に上書きできるデフォルトのプロキシ設定を提供します。

デフォルトでは、Tomcat プラットフォームはデフォルトでプロキシに Apache 2.4 を使用します。ソースコードに設定ファイルを含めることにより、Apache 2.2 または nginx を使用する選択ができます。次の例は、nginx を使用して Elastic Beanstalk を設定します。

例 .ebextensions/nginx-proxy.config

option_settings: aws:elasticbeanstalk:environment:proxy: ProxyServer: nginx

Apache 2.2 から Apache 2.4 への移行

Apache 2.2 向けに開発されたアプリケーションがある場合、Apache 2.4 への移行について理解するには、このセクションをお読みください。

Java と Tomcat プラットフォームでリリースされた更新 (2018 年 5 月 24 日) とともにリリースされた Tomcat プラットフォーム設定バージョン 3.0.0 から、Apache 2.4 は Tomcat プラットフォームのデフォルトのプロキシです。Apache 2.4 .conf ファイルは、Apache 2.2 のものと完全な下位互換性がありません。Elastic Beanstalk には、各 Apache バージョンで正しく動作するデフォルトの .conf ファイルが含まれています。「デフォルトの Apache 設定の拡張および上書き」で説明されているように、アプリケーションが Apache の設定をカスタマイズしない場合は、Apache 2.4 への移行は問題ありません。

アプリケーションが Apache の設定を拡張または上書きする場合は、Apache 2.4 に移行するためにいくつかの変更を加える必要があります。詳細は、Apache Software Foundation サイトの 2.2 から 2.4 へのアップグレードを参照してください。Apache 2.4 への移行が正常に完了するまで、一時的な対策として、次の設定ファイルをソースコードに含めることで、アプリケーションで Apache 2.2 を使用することができます。

例 .ebextensions/apache-legacy-proxy.config

option_settings: aws:elasticbeanstalk:environment:proxy: ProxyServer: apache/2.2

簡単な修正のために、Elastic Beanstalk コンソールでプロキシサーバーを選択することもできます。

Elastic Beanstalk コンソールで Tomcat 環境のプロキシを選択するには

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

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

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

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

  5. [プロキシサーバー] を選択し、[Apache 2.2 (deprecated)] を選択します。

  6. [Apply] を選択します。


        Elastic Beanstalk コンソール のソフトウェア設定カードで Tomcat 環境のプロキシを選択する

デフォルトの Apache 設定の拡張および上書き

追加の設定ファイルを使用して、Elastic Beanstalk のデフォルト Apache 設定を拡張することができます。または、Elastic Beanstalk のデフォルトの Apache 設定を完全に上書きすることができます。

Elastic Beanstalk のデフォルトの Apache 設定を拡張するには、アプリケーションソースバンドルの .ebextensions/httpd/conf.d というフォルダに .conf 設定ファイルを追加します。Elastic Beanstalk の Apache 設定では、このフォルダに .conf ファイルが自動的に含まれます。

~/workspace/my-app/ |-- .ebextensions | -- httpd | -- conf.d | -- myconf.conf | -- ssl.conf -- index.jsp

たとえば、次の Apache 2.4 設定では、ポート 5000 にリスナーを追加します。

例 .ebextensions/httpd/conf.d/port5000.conf

listen 5000 <VirtualHost *:5000> <Proxy *> Require all granted </Proxy> ProxyPass / http://localhost:8080/ retry=0 ProxyPassReverse / http://localhost:8080/ ProxyPreserveHost on ErrorLog /var/log/httpd/elasticbeanstalk-error_log </VirtualHost>

Elastic Beanstalk のデフォルトの Apache 設定を完全に上書きするには、ソースバンドルの設定を .ebextensions/httpd/conf/httpd.conf に含めます。

~/workspace/my-app/ |-- .ebextensions | `-- httpd | `-- conf | `-- httpd.conf `-- index.jsp

Elastic Beanstalk の Apache 設定を上書きするには、[httpd.conf] に次の行を追加し、拡張状態ヘルスレポートおよびモニタリング、レスポンスの圧縮、および静的ファイル用に Elastic Beanstalk の設定をプルします。

IncludeOptional conf.d/*.conf IncludeOptional conf.d/elasticbeanstalk/*.conf

お使いの環境で Apache 2.2 をプロキシとして使用している場合は、IncludeOptional ディレクティブを Include に置き換えます。2 つの Apache バージョンにおけるこれら 2 つのディレクティブの動作の詳細については、Include in Apache 2.4IncludeOptional in Apache 2.4、および Include in Apache 2.2 を参照してください。

注記

ポート 80 のデフォルトのリスナーを上書きするには、.ebextensions/httpd/conf.d/elasticbeanstalk/00_application.conf というファイルを含めて Elastic Beanstalk の設定を上書きします。

実例については、環境のインスタンスで /etc/httpd/conf/httpd.conf にある Elastic Beanstalk のデフォルト設定ファイルを参照してください。ソースバンドルの .ebextensions/httpd フォルダのすべてのファイルは、デプロイ中に /etc/httpd にコピーされます。

デフォルトの nginx 設定の拡張

Elastic Beanstalk のデフォルトの nginx 設定を拡張するには、アプリケーションソースバンドルの .ebextensions/nginx/conf.d/ というフォルダに .conf 設定ファイルを追加します。Elastic Beanstalk の nginx 設定では、このフォルダに .conf ファイルが自動的に含まれます。

~/workspace/my-app/ |-- .ebextensions | `-- nginx | `-- conf.d | |-- elasticbeanstalk | | `-- my-server-conf.conf | `-- my-http-conf.conf `-- index.jsp

conf.d フォルダの拡張子が .conf であるファイルが、デフォルト設定の http ブロックに含まれます。conf.d/elasticbeanstalk フォルダのファイルは、server ブロック内の http ブロックに含まれます。

Elastic Beanstalk のデフォルトの nginx 設定を完全に上書きするには、ソースバンドルの設定を .ebextensions/nginx/nginx.conf に含めます。

~/workspace/my-app/ |-- .ebextensions | `-- nginx | `-- nginx.conf `-- index.jsp

Elastic Beanstalk の nginx 設定を上書きするには、設定の server ブロックに次の行を追加し、ポート 80 のリスナー、レスポンスの圧縮、および静的ファイル用に Elastic Beanstalk の設定をプルします。

include conf.d/elasticbeanstalk/*.conf;

注記

ポート 80 のデフォルトのリスナーを上書きするには、.ebextensions/nginx/conf.d/elasticbeanstalk/00_application.conf というファイルを含めて Elastic Beanstalk の設定を上書きします。

また、設定の http ブロックに次の行を含めて、拡張状態ヘルスレポートおよびモニタリング およびログ用の Elastic Beanstalk の設定をプルします。

include conf.d/*.conf;

実例については、環境のインスタンスで /etc/nginx/nginx.conf にある Elastic Beanstalk のデフォルト設定ファイルを参照してください。ソースバンドルの .ebextensions/nginx フォルダのすべてのファイルは、デプロイ中に /etc/nginx にコピーされます。