メニュー
AWS Elastic Beanstalk
開発者ガイド (API Version 2010-12-01)

アーキテクチャの概要

Elastic Beanstalk 環境を起動したら、環境枠、プラットフォーム、および環境タイプを選択します。選択した環境枠によって、Elastic Beanstalk がリソースをプロビジョニングし、HTTP(S)リクエストを処理するウェブアプリケーション、またはバックグラウンドプロセスタスクを処理するウェブアプリケーションのどちらをサポートするかが決まります。ウェブアプリケーションがウェブリクエストを処理する環境枠は、ウェブサーバー枠と呼ばれます。ウェブアプリケーションがバックグラウンドジョブを実行する環境枠は、ワーカー枠と呼ばれます。ここでは、各種環境枠のコンポーネント、リソース、およびアーキテクチャについて説明します。

注記

1 つの環境では、それぞれ独自のリソースを必要とする 2 つの環境枠はサポートされません。これは各環境枠がそれぞれの一連のリソースを必要とし、つまりはワーカー環境枠とウェブサーバー環境枠がそれぞれ Auto Scaling グループを必要とするためです。しかし、Elastic Beanstalk では環境ごとにサポートする Auto Scaling グループは 1 つのみです。

ウェブサーバー環境枠

次の図は、ウェブサーバー環境枠の Elastic Beanstalk アーキテクチャの例と、このタイプの環境枠のコンポーネントがどのように連係するかを示しています。このセクションの残りの部分では、すべてのコンポーネントについてさらに詳しく説明します。

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

環境はアプリケーションの中心です。この図では、環境は青い実線で示されています。環境を作成するときは、アプリケーションを実行するのに必要なリソースを Elastic Beanstalk がプロビジョニングします。環境用に作成された AWS リソースには、1 つの Elastic Load Balancing(図では ELB)、Auto Scaling グループ、および 1 つ以上の 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.comAmazon Route 53 は、可用性と拡張性に優れたドメインネームシステム(DNS)ウェブサービスです。このサービスは、インフラストラクチャに対して安全で信頼できるルーティングを提供します。DNS プロバイダに登録したドメイン名は、CNAME にリクエストを転送します。ロードバランサーは、Auto Scaling グループに属する Amazon EC2 インスタンスの前に配置されています(この図では、Auto Scaling グループは黒色の点線で示されています)。Auto Scaling は、アプリケーションへの負荷の増大に対応できるように追加 Amazon EC2 インスタンスを自動的に開始します。アプリケーションへの負荷が軽減されると、Auto Scaling はインスタンスを停止しますが、少なくとも 1 つのインスタンスは実行されたままです。

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

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

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

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

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

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

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

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

ホストマネージャーは、メトリクス、エラーとイベント、およびサーバーインスタンスのステータスをレポートします。これらの情報を利用するには、AWS マネジメントコンソール、API、または CLI を使用します。

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

ワーカー環境枠

ワーカー環境枠で作成された AWS リソースには、Auto Scaling グループ、1 つ以上の Amazon EC2 インスタンス、および IAM ロールが含まれます。また、ワーカー環境枠で Amazon SQS キューがない場合、Elastic Beanstalk によってAmazon SQS キューが作成され、プロビジョニングされます。ワーカー環境枠を起動すると、選択したプログラミング言語に必要なサポートファイルとデーモンが、Elastic Beanstalk によって Auto Scaling グループの各 EC2 インスタンスにインストールされます。デーモンは Amazon SQS キューからリクエストを取得し、そのデータをワーカー環境枠で稼働しているウェブアプリケーションへ送信します。このメッセージはこのウェブアプリケーションで処理されます。ワーカー環境枠に複数のインスタンスがある場合、各インスタンスに独自のデーモンがありますが、すべて同じ Amazon SQS キューから読み取られます。

次の図は、複数の環境および AWS サービス全体のさまざまなコンポーネントとそのインタラクションを示しています。

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

Amazon CloudWatch はアラームおよびヘルスモニタリングに使用されます。詳細については、「基本ヘルスレポート」を参照してください。

ワーカー環境枠の仕組みの詳細については、ワーカー環境 を参照してください。