AWS Elastic Beanstalk
開発者ガイド

AWS Elastic Beanstalk 環境の Amazon EC2 インスタンス

ウェブサーバー環境を作成すると、Elastic Beanstalk は、選択したプラットフォームでウェブアプリケーションを実行するように設定された 1 つ以上の Amazon Elastic Compute Cloud (Amazon EC2) 仮想マシンを作成します。

環境内にある Auto Scalingグループは、アプリケーションを実行する EC2 インスタンスを管理します。Auto Scaling グループの起動設定に対する変更には、すべてのインスタンスの置換が必要で、ローリング更新または変更不可能な更新がトリガーされます(どちらがトリガーされるかは設定により異なります)。環境の Auto Scaling グループの設定の詳細については、環境の Auto Scaling グループの設定を参照してください。

環境内にある EC2 インスタンスを設定する

Elastic Beanstalk 環境の EC2 インスタンス設定は、Elastic Beanstalk コンソール で変更できます。

Elastic Beanstalk コンソールで EC2 インスタンスを設定するには

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

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

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

  4. [インスタンス] 設定カテゴリで、[変更] を選択します。

以下の設定を使用できます。

インスタンスタイプ

[インスタンスタイプ] 設定は、アプリケーションの実行時に起動する EC2 インスタンスのタイプを決定します。インスタンスは、負荷がかかった状態でもアプリケーションを実行できるものを選択します(ただし、長時間にわたりアイドル状態になるようなインスタンスは避けてください)。開発目的のため、t2 インスタンスファミリーは、短期間のバーストが可能な中程度の強度を備えています。

大規模な高可用性アプリケーションについては、インスタンスの 1 つが停止状態になっても多大な影響を受けない大容量のインスタンスプールを使用します。まず、平常時に中程度の負荷下で 5つのインスタンスを実行できるインスタンスから試してみることをお勧めします。いずれかのインスタンスが失敗した場合は、残りのインスタンスがその他のトラフィックを吸収します。また、ピーク時間帯のトラフィック上昇に対応するため、環境を拡張する時間としてキャパシティーバッファが設けられています。

EC2 インスタンスファミリーとタイプの詳細については、『Amazon Elastic Compute Cloud ユーザーガイド』の「インスタンスタイプ」を参照してください。

AMI ID

Amazon マシンイメージ (AMI) は、Amazon Linux または Windows Server のマシンイメージであり、環境内の EC2 インスタンスを起動するために AWS Elastic Beanstalk によって使用されます。Elastic Beanstalk は、アプリケーションの実行に必要なツールとリソースを含むマシンイメージを提供します。

Elastic Beanstalk は、選択されるリージョン、プラットフォーム、インスタンスタイプに基づいて、環境のデフォルト AMI を選択します。カスタム AMI を作成した場合は、デフォルトの AMI ID と置き換えます。

間隔を監視する

デフォルトでは、環境内のインスタンスは、ベーシックヘルスメトリクスを 5 分間隔で CloudWatch に公開します (追加料金は発生しません)。

より詳細なレポートを実行するには、[Monitoring interval] を [1 minute] に設定して、環境内のリソースがベーシックヘルスレポートのメトリクスを CloudWatch に公開する頻度を高めます。この場合、Amazon CloudWatch の利用料金は、1 分間隔のメトリクスに適用されます。詳細については、Amazon CloudWatch を参照してください。

ルートボリューム(起動デバイス)

環境内の各インスタンスは、ルートボリュームを使用して設定されます。ルートボリュームは、オペレーティングシステムやライブラリ、スクリプト、アプリケーションのソースコードを格納するためにインスタンスにアタッチされる Amazon EBS ブロックデバイスです。デフォルトでは、すべてのプラットフォームでストレージ用の汎用 SSD ブロックデバイスが使用されます。

[ルートボリュームタイプ] を変更して、マグネティックストレージやプロビジョンド IOPS SSD ボリュームタイプを使用すれば、必要に応じてボリュームサイズを増大することが可能です。プロビジョンド IOPS ボリュームでは、プロビジョニングする IOPS の数を選択する必要があります。必要なパフォーマンスと価格の要件を満たすボリュームタイプを選択します。

詳細については、「Amazon EBS ボリュームタイプ」および「Amazon EBS 製品の詳細」を参照してください。

セキュリティグループ

インスタンスにアタッチされたセキュリティグループによって、インスタンスへの進入 (受信) が許可されるトラフィックと、インスタンスからの退出 (送信) が許可されるトラフィックが決まります。Elastic Beanstalk は、HTTP (80) および HTTPS (443) の標準ポートのロードバランサーからのトラフィックを許可するセキュリティグループを作成します。

追加のセキュリティグループを指定し、他のポート上にあるトラフィックやその他のソースからのトラフィックを許可することも可能です。たとえば、SSH アクセス用セキュリティグループを作成し、アクセス制限された IP アドレス範囲からのトラフィックや、セキュリティ強化目的で自分だけがアクセス権限を持っている拠点ホストからのトラフィックをポート 22 で着信するよう設定しても構いません。

注記

環境 A のインスタンスと環境 B のインスタンス間のトラフィックを許可するには、Elastic Beanstalk が環境 B にアタッチしたセキュリティグループにルールを追加し、Elastic Beanstalk が環境 A にアタッチしたセキュリティグループを指定できます。これにより、環境 A のインスタンスへの出入りが許可されます。ただし、これを行うことで 2 つのセキュリティグループ間に依存性が生じます。環境 B のセキュリティグループは環境のセキュリティグループに依存するため、後で環境 A を終了しようとすると、Elastic Beanstalk は環境のセキュリティグループを削除できなくなります。

より安全な方法として、別のセキュリティグループを作成し、環境 A にアタッチして、環境 B のセキュリティグループのルールでそのグループを指定します。

Amazon EC2 セキュリティグループの詳細については、Amazon Elastic Compute Cloud ユーザーガイドの「Amazon EC2 セキュリティグループ」を参照してください。

The aws:autoscaling:launchconfiguration Namespace

aws:autoscaling:launchconfiguration 名前空間の設定オプションを使用して、コンソールで利用できない追加のオプションを含めて、Auto Scaling グループを設定できます。

次の設定ファイルは、このトピックで説明されている基本オプション、セキュリティで説明されている EC2KeyName オプションと IamInstanceProfile オプション、およびコンソールでは利用できない追加オプション BlockDeviceMappings を設定します。

option_settings: aws:autoscaling:launchconfiguration: InstanceType: m1.small SecurityGroups: my-securitygroup EC2KeyName: my-keypair MonitoringInterval: "1 minute" IamInstanceProfile: "aws-elasticbeanstalk-ec2-role" BlockDeviceMappings: "/dev/sdj=:100,/dev/sdh=snap-51eef269,/dev/sdb=ephemeral0"

BlockDeviceMappings では、インスタンス用の追加のブロックデバイスを設定できます。詳細については、『Amazon Elastic Cloud Computer ユーザーガイド』の「ブロックデバイスマッピング」を参照してください。

EB CLI および Elastic Beanstalk コンソール は、上記のオプションの推奨値を適用します。設定ファイルを使用して同じファイルを設定する場合は、これらの設定を削除する必要があります。詳細については、「推奨値」を参照してください。