ウェブサーバー環境 - AWS Elastic Beanstalk

ウェブサーバー環境

次の図は、ウェブサーバー環境枠の Elastic Beanstalk アーキテクチャの例と、そのタイプの環境枠でのコンポーネントの連携を示しています。


      AWS Elastic Beanstalk アーキテクチャーの図

環境はアプリケーションの中心です。この図では、環境は最上位の実線内に示されています。環境を作成するときは、アプリケーションを実行するのに必要なリソースを Elastic Beanstalk がプロビジョニングします。環境用に作成される AWS リソースには、1 つの Elastic Load Balancing(図では ELB)、Auto Scaling グループ、および 1 つ以上の Amazon Elastic Compute Cloud (Amazon EC2) インスタンスがあります。

すべての環境に、ロードバランサーを指定する CNAME (URL) が含まれます。環境には、myapp.us-west-2.elasticbeanstalk.com などの URL があります。この URL は、Amazon Route 53 で CNAME レコードを通じて Elastic Load Balancing URL — abcdef-123456.us-west-2.elb.amazonaws.com など — のような別名の URL になります。Amazon Route 53 は、可用性と拡張性に優れたドメインネームシステム (DNS) ウェブサービスです。このサービスは、インフラストラクチャに対して安全で信頼できるルーティングを提供します。DNS プロバイダに登録したドメイン名は、CNAME にリクエストを転送します。

ロードバランサーは、Auto Scaling グループの一部である Amazon EC2 インスタンスの前に配置されます。Amazon EC2 Auto Scaling は、アプリケーションの負荷の増大に対応するために追加の Amazon EC2 インスタンスを自動的に開始します。アプリケーションの負荷が軽減されると、Amazon EC2 Auto Scaling はインスタンスを停止しますが、少なくとも 1 つのインスタンスは実行されたままになります。

Amazon EC2 インスタンスで実行するソフトウェアスタックは、コンテナタイプに応じて変わります。コンテナタイプによって、その環境に使用するインフラストラクチャのトポロジとソフトウェアスタックが定義されます。たとえば、Apache Tomcat コンテナを含む Elastic Beanstalk 環境は、Amazon Linux オペレーティングシステム、Apache ウェブサーバー、および Apache Tomcat ソフトウェアを使用します。サポートされているコンテナタイプのリストについては、「Elastic Beanstalk でサポートされているプラットフォーム」を参照してください。アプリケーションを実行する各 Amazon EC2 インスタンスでは、これらのコンテナタイプのいずれかを使用します。さらに、各 Amazon EC2 インスタンスでは、ホストマネージャー (HM) と呼ばれるソフトウェアコンポーネントも実行されます。ホストマネージャーは以下を行います。

  • アプリケーションのデプロイ

  • イベントとメトリクスの収集と取得(コンソール、API、またはコマンドラインを使用)。

  • インスタンスレベルのイベントの生成

  • アプリケーションログファイルで重大エラーがないかどうかを監視

  • アプリケーションサーバーの監視

  • インスタンスコンポーネントへの修正プログラムの適用

  • アプリケーションのログファイルのローテーションと Amazon S3 への公開

ホストマネージャーは、メトリクス、エラーとイベント、サーバーインスタンスのステータスをレポートします。これらの情報は、Elastic Beanstalk コンソール、API、CLI を通じて利用できます。

この図に示す Amazon EC2 インスタンスは 1 つのセキュリティグループに属しています。セキュリティグループは、インスタンスのファイアウォールのルールを定義します。デフォルトでは、Elastic Beanstalk によって 1 つのセキュリティグループが定義されます。この場合、全員がポート 80 (HTTP) を使用して接続できます。複数のセキュリティグループを定義することもできます。たとえば、データベースサーバーに対してセキュリティグループを定義できます。Amazon EC2 セキュリティグループと、このセキュリティグループを Elastic Beanstalk アプリケーション用に設定する方法の詳細については、「セキュリティグループ」を参照してください