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

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

ウェブサーバー環境を作成すると、AWS Elastic Beanstalk は、インスタンスと呼ばれる 1 つ以上の Amazon Elastic Compute Cloud (Amazon EC2) 仮想マシンを作成します。

環境内のインスタンスは、選択したプラットフォームでウェブアプリケーションを実行するように設定されます。環境の作成中、実行中の環境での作成後、または環境にデプロイするソースコードの一部として、環境のインスタンスのさまざまなプロパティと動作を変更できます。詳細については、「設定オプション」を参照してください。

注記

環境内にある Auto Scaling グループは、アプリケーションを実行する Amazon EC2 インスタンスを管理します。このページで説明されている設定を変更すると、起動設定(Amazon EC2 起動テンプレートまたは Auto Scaling グループ起動設定リソース)が変更されます。この変更には、すべてのインスタンスの置換が必要で、ローリング更新またはイミュータブルな更新がトリガーされます(どちらがトリガーされるかは設定により異なります)。

環境の作成時に、インスタンスの実行に使用するホストコンピュータのハードウェアを決定するインスタンスタイプを選択します。Elastic Beanstalk は、Amazon EC2 が、通常は次のプラットフォーム更新によって、新しいインスタンスタイプを導入した直後にそれらをサポートします。

Elastic Beanstalk は、オンデマンドインスタンスリザーブドインスタンススポットインスタンスのいくつかの Amazon EC2 インスタンス購入オプションをサポートしています。オンデマンドインスタンスは、従量制料金のリソースであり、使用時に長期的な契約は必要ありません。リザーブドインスタンスは、お客様の環境で一致するオンデマンドインスタンスに自動的に適用される事前購入請求割引です。スポットインスタンスは、オンデマンド価格より低価で利用できる未使用の Amazon EC2 インスタンスです。1 つのオプションを設定することで、環境内のスポットインスタンスを有効にすることができます。追加のオプションを使用して、オンデマンドインスタンスとスポットインスタンスの混在を含め、スポットインスタンスの使用量を設定できます。詳細については、「Auto Scaling グループ」を参照してください。

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

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

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

  1. Elastic Beanstalk コンソールを開き、[リージョン] のリストで AWS リージョンを選択します。

  2. ナビゲーションペインで、[環境] を選択し、リストから環境の名前を選択します。

    注記

    環境が多数ある場合は、検索バーを使用して環境リストをフィルタリングします。

  3. ナビゲーションペインで、[設定] を選択します。

  4. [インスタンス] 設定カテゴリで、[編集] を選択します。このカテゴリの設定を変更し、[Apply (適用)] を選択します。設定の説明については、このページのセクション インスタンスカテゴリの設定 を参照してください。

  5. [キャパシティー] 設定カテゴリで、[編集] を選択します。このカテゴリの設定を変更し、[Continue (続行)] を選択します。設定の説明については、このページのセクション キャパシティーカテゴリの設定 を参照してください。

インスタンスカテゴリの設定

Amazon EC2 インスタンスに関連する次の設定は、[Instances (インスタンス)] 設定カテゴリで使用できます。


          Elastic Beanstalk インスタンス設定ウィンドウの Amazon EC2 インスタンス設定

間隔のモニタリング

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

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

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

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

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

詳細については、Linux インスタンス用 Amazon EC2 ユーザーガイドの「Amazon EBS ボリュームタイプ」および「Amazon EBS 製品の詳細」を参照してください。

インスタンスメタデータサービス

インスタンスメタデータサービス (IMDS) は、インスタンス上のコードによって、インスタンスメタデータに安全にアクセスするために使用されるインスタンス上のコンポーネントです。コードは、手法としてインスタンスメタデータサービスバージョン 1 (IMDSv1) またはインスタンスメタデータサービスバージョン 2 (IMDSv2) のいずれかを使用して、実行中のインスタンスからインスタンスメタデータにアクセスできます。IMDSv2 の方が安全性に優れています。IMDSv1 を無効にして、IMDSv2 を適用します。詳細については、「環境のインスタンスでのインスタンスメタデータサービスの設定」を参照してください。

注記

この設定ページの IMDS セクションは、IMDSv2 をサポートするプラットフォームバージョンに対してのみ表示されます。

セキュリティグループ

インスタンスにアタッチされたセキュリティグループによって、インスタンスへの進入 (受信) が許可されるトラフィックと、インスタンスからの退出 (送信) が許可されるトラフィックが決まります。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 Amazon EC2 セキュリティグループの詳細については、Linux インスタンス用 Amazon EC2 ユーザーガイドの「Amazon EC2 セキュリティグループ」を参照してください。

キャパシティーカテゴリの設定

Amazon EC2 インスタンスに関連する次の設定は、[Capacity (キャパシティー)] 設定カテゴリで使用できます。


          Elastic Beanstalk キャパシティー設定ウィンドウの Amazon EC2 インスタンス設定

インスタンスタイプ

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

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

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

環境でスポットインスタンスリクエストを有効にすると、この設定ページには 1 つの設定ではなく、[インスタンスタイプ] のリストが表示されます。スポットインスタンスの 1 つ以上のインスタンスタイプを選択できます。詳細については、「スポットインスタンスのサポート」を参照してください。

AMI ID

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

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

aws:autoscaling:launchconfiguration 名前空間

aws:autoscaling:launchconfiguration 名前空間の設定オプションを使用して、環境のインスタンスを設定できます(コンソールで使用できない追加のオプションを含む)。

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

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

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

注記

InstanceType オプションはサポートされなくなりました。aws:ec2:instances 名前空間のより新しく強力な InstanceTypes オプションに置き換わりました。新しいオプションにより、環境で 1 つ以上のインスタンスタイプのリストを指定することができます。このリストの最初の値は、ここで説明する aws:autoscaling:launchconfiguration 名前空間に含まれる InstanceType オプションの値に等しくなります。インスタンスタイプを指定する推奨の方法は、新しいオプションを使用することです。指定した場合、新しいオプションは古いオプションよりも優先されます。詳細については、「aws:ec2:instances 名前空間」を参照してください。

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