Elastic Beanstalk 環境の容量設定 - AWS Elastic Beanstalk

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Elastic Beanstalk 環境の容量設定

このトピックでは、Elastic Beanstalk 環境の Auto Scaling 容量を設定するさまざまなアプローチについて説明します。Elastic Beanstalk コンソール、EB CLI、、 AWS CLIまたは 名前空間オプションを使用できます。

重要

EnableSpot オプション設定により、Elastic Beanstalk が起動テンプレートを使用して環境を作成したり、起動設定から起動テンプレートに既存の環境を更新したりできます。これを行うには、起動テンプレートを管理するために必要なアクセス許可が必要です。これらのアクセス許可は、 マネージドポリシーに含まれています。管理ポリシーの代わりにカスタムポリシーを使用すると、環境のスポットインスタンスを有効にすると、環境の作成または更新が失敗することがあります。詳細およびその他の考慮事項については、「」を参照してくださいElastic Beanstalk 環境の起動テンプレート

コンソールを使用した設定

Elastic Beanstalk コンソールの環境の設定ページでキャパシティを編集することで、Auto Scaling グループのキャパシティ管理を設定できます。

Elastic Beanstalk コンソールで Auto Scaling グループの容量を設定するには
  1. Elastic Beanstalk コンソールを開き、リージョンリストで を選択します AWS リージョン。

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

    注記

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

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

  4. [キャパシティー] 設定カテゴリで、[編集] を選択します。

  5. [Auto Scaling グループ] セクションで、次のように設定します。

    • [環境タイプ] – [負荷分散] を選択します。

    • [最小インスタンス数] – グループに一度に含まれる EC2 インスタンスの最小数。グループは最小数から開始し、スケールアップのトリガー条件が満たされるとインスタンスが追加されます。

    • [最大インスタンス数] – グループに一度に含まれる EC2 インスタンスの最大数。

      注記

      ローリング更新を使用する場合、ローリング更新の最小インスタンス数が [サービス内のインスタンスの最小数] の設定よりも多いことを確認します。

    • フリート組成 — デフォルトはオンデマンドインスタンスです。スポットインスタンス要件を有効にするには、[Combined purchase options and instance (購入オプションとインスタンスの組み合わせ)] を選択します。

      重要

      EnableSpot オプション設定により、Elastic Beanstalk が起動テンプレートを使用して環境を作成したり、起動設定から起動テンプレートに既存の環境を更新したりできます。これを行うには、起動テンプレートを管理するために必要なアクセス許可が必要です。これらのアクセス許可は、 マネージドポリシーに含まれています。管理ポリシーの代わりにカスタムポリシーを使用すると、環境のスポットインスタンスを有効にすると、環境の作成または更新が失敗することがあります。詳細およびその他の考慮事項については、「」を参照してくださいElastic Beanstalk 環境の起動テンプレート

      スポットインスタンス要件を有効にすることを選択すると、次のオプションが有効になります:

      • スポット配分戦略 – 使用可能な容量、料金、インスタンスタイプの選択に基づいて、環境でスポットインスタンスを管理およびプロビジョニングするために使用される方法を決定します。キャパシティ最適化 (デフォルト)、料金キャパシティ最適化キャパシティ最適化の優先順位、または最低料金から選択します。各配分戦略の説明と詳細については、「」を参照してくださいスポットインスタンス配分戦略

      • 上限スポット価格 – スポットインスタンスの上限価格オプションに関する推奨事項については、「Amazon EC2 ユーザーガイド」の「スポットインスタンスの料金履歴」を参照してください。

      • オンデマンドベース - 環境のスケールアウト時にスポットインスタンスを考慮する前に、Auto Scaling グループがプロビジョニングするオンデマンドインスタンスの最小数。

      • ベースを超えるオンデマンド - Auto Scaling グループがオンデマンドベースのインスタンスを超えてプロビジョニングする追加容量の一部としてのオンデマンドインスタンスの割合。

        注記

        オンデマンドベースおよびベースを超えるオンデマンドは、前述の最小および最大インスタンスオプションと関係しています。これらのオプションと例の詳細については、「Elastic Beanstalk 環境のスポットインスタンスのサポート」を参照してください。

      • キャパシティの再調整 – このオプションは、Auto Scaling グループに少なくとも 1 つのスポットインスタンスがある場合にのみ関係します。この機能を有効にすると、EC2 は Auto Scaling グループ内のスポットインスタンスが中断される前に自動的に置き換えを試み、アプリケーションのスポットインスタンスの中断を最小限に抑えます。詳細については、Amazon EC2 Auto Scaling ユーザーガイド」の「キャパシティの再調整」を参照してください。

    • アーキテクチャ – EC2 インスタンスのプロセッサアーキテクチャ。プロセッサアーキテクチャは、次のフィールドで使用できる EC2 インスタンスタイプを決定します。

    • インスタンスタイプ – アプリケーションを実行するために起動された Amazon EC2 インスタンスのタイプ。詳細については、「インスタンスのタイプ」を参照してください。

    • AMI ID – Elastic Beanstalk が環境で Amazon EC2 インスタンスを起動するために使用するマシンイメージ。詳細については、「AMI ID」を参照してください。

    • [アベイラビリティーゾーン] – アベイラビリティーゾーンの数を選択し、環境のインスタンスを分散させます。デフォルトでは、Auto Scaling グループは、使用可能なゾーン間で均等にインスタンスを起動します。少ないゾーンにインスタンスを集中させるには、使用するゾーンの数を選択します。実稼働環境では、2 つ以上のゾーンを使用して、一方のアベイラビリティーゾーンが使用できなくなってもアプリケーションが利用できるようにします。

    • [配置] (オプション) – 使用するアベイラビリティーゾーンを選択します。インスタンスを特定のゾーンのリソースに接続する必要がある場合、またはゾーン固有のリザーブドインスタンスを購入済みの場合は、この設定を使用します。カスタム VPC で環境を起動する場合は、このオプションを設定できません。カスタム VPC では、環境に割り当てるサブネットのアベイラビリティーゾーンを選択します。

    • [スケーリングクールダウン] – スケーリング後、トリガーの評価を継続する前に、インスタンスが起動または終了するまでの時間 (秒)。詳細については、「スケーリングクールダウン」を参照してください。

  6. ページの最下部で [適用] を選択し変更を保存します。

名前空間オプションを使用した設定

Elastic Beanstalk には、aws:autoscaling:asg および aws:ec2:instances という 2 つの名前空間で、Auto Scaling 設定の設定オプションが用意されています。

aws:autoscaling:asg 名前空間

aws:autoscaling:asg aws:autoscaling:asg 名前空間は、全体的なスケールと可用性のオプションを提供します。

次の設定ファイルのの例では、2~4 個のインスタンス、特定のアベイラビリティーゾーン、および 12 分間 (720 秒間) のクールダウン期間を使用するように Auto Scaling グループを設定します。これにより、スポットインスタンスの容量の再調整が有効になります。EnableCapacityRebalancing このオプションは、次の設定ファイルの例に示すように、 aws:ec2:instances名前空間trueで が EnableSpotに設定されている場合にのみ有効になります。

option_settings: aws:autoscaling:asg: Availability Zones: Any Cooldown: '720' Custom Availability Zones: 'us-west-2a,us-west-2b' MaxSize: '4' MinSize: '2' EnableCapacityRebalancing: true

aws:ec2:instances 名前空間

注記

環境設定を更新し、InstanceTypes オプションから 1 つ以上のインスタンスタイプを削除すると、Elastic Beanstalk は、削除されたインスタンスタイプで実行されているすべての Amazon EC2 インスタンスを終了します。次に、環境の Auto Scaling グループは、現在指定されているインスタンスタイプを使用して、必要に応じて新しいインスタンスを起動し、必要な容量を完了します。

aws:ec2:instances 名前空間は、スポットインスタンスの管理など、環境のインスタンスに関連するオプションを提供します。aws:autoscaling:launchconfigurationaws:autoscaling:asg を補完します。

次の設定ファイルの例では、環境のスポットインスタンス・リクエストを有効にするように Auto Scaling グループを設定します。使用できる 3 つのインスタンスタイプを指定します。ベースライン容量として少なくとも 1 つのオンデマンドインスタンスが使用され、任意の追加容量として、持続する 33% のオンデマンドインスタンスが使用されます。

この設定では、スポット配分戦略を に設定しますcapacity-optimized-prioritized。この特定の配分戦略では、 InstanceTypesオプションで指定されたインスタンスタイプの順序に基づいて、プールからのインスタンスの起動に優先順位を付けます。が指定されSpotAllocationStrategyていない場合、デフォルトで になりますcapacity-optimized

option_settings: aws:ec2:instances: EnableSpot: true InstanceTypes: 't2.micro,t3.micro,t3.small' SpotAllocationStrategy: capacity-optimized-prioritized SpotFleetOnDemandBase: '1' SpotFleetOnDemandAboveBasePercentage: '33'

スポットインスタンスタイプを選択するには、スポットインスタンスアドバイザーを使用します。

重要

EnableSpot オプション設定により、Elastic Beanstalk が起動テンプレートを使用して環境を作成したり、起動設定から起動テンプレートに既存の環境を更新したりできます。これを行うには、起動テンプレートを管理するために必要なアクセス許可が必要です。これらのアクセス許可は、 マネージドポリシーに含まれています。管理ポリシーの代わりにカスタムポリシーを使用すると、環境のスポットインスタンスを有効にすると、環境の作成または更新が失敗することがあります。詳細およびその他の考慮事項については、「」を参照してくださいElastic Beanstalk 環境の起動テンプレート

を使用した設定 AWS CLI

このセクションでは、 AWS CLI create-environment コマンドを使用して、これらのセクションで説明されている Auto Scaling オプションとキャパシティオプションで環境を設定する方法の例を示します。前の名前空間設定オプションセクションで説明したようにaws:ec2:instancesaws:autoscaling:asgと の名前空間設定もこの例で設定されています。 名前空間オプションを使用した設定

AWS コマンドラインインターフェイスには、Elastic Beanstalk 環境を作成および設定するためのコマンドが用意されています。--option-settings オプションを使用すると、Elastic Beanstalk でサポートされている名前空間オプションを渡すことができます。つまり、前述の名前空間設定オプションを該当する AWS CLI コマンドに渡して、Elastic Beanstalk 環境を設定できます。

注記

update-environment コマンドを使用して--option-settings、名前空間オプションを追加または更新することもできます。環境から名前空間オプションを削除する必要がある場合は、 で update-environment コマンドを使用します--options-to-remove

次の の例では、新しい環境を作成します。渡されるオプションの詳細については、前のトピックの名前空間設定オプションを参照してください。

aws:autoscaling:launchconfiguration 名前空間IamInstanceProfileにリストされている fist オプションは、Elastic Beanstalk インスタンスプロファイルです。これは、新しい環境を作成するときに必要です。

例 — Auto Scaling オプションを使用した環境の作成 (名前空間オプションインライン)
aws elasticbeanstalk create-environment \ --region us-east-1 \ --application-name my-app \ --environment-name my-env \ --solution-stack-name "64bit Amazon Linux 2023 v4.3.0 running Python 3.12" \ --option-settings \ Namespace=aws:autoscaling:launchconfiguration,OptionName=IamInstanceProfile,Value=aws-elasticbeanstalk-ec2-role Namespace=aws:autoscaling:asg,OptionName=Availability Zones,Value=Any \ Namespace=aws:autoscaling:asg,OptionName=Cooldown,Value=720 \ Namespace=aws:autoscaling:asg,OptionName=Custom Availability Zones,Value=us-west-2a,us-west-2b \ Namespace=aws:autoscaling:asg,OptionName=MaxSize,Value=4 \ Namespace=aws:autoscaling:asg,OptionName=MinSize,Value=2 \ Namespace=aws:autoscaling:asg,OptionName=EnableCapacityRebalancing,Value=true \ Namespace=aws:ec2:instances,OptionName=EnableSpot,Value=true \ Namespace=aws:ec2:instances,OptionName=InstanceTypes,Value=t2.micro,t3.micro,t3.small \ Namespace=aws:ec2:instances,OptionName=SpotAllocationStrategy,Value=capacity-optimized-prioritized \ Namespace=aws:ec2:instances,OptionName=SpotFleetOnDemandBase,Value=1 \ Namespace=aws:ec2:instances,OptionName=SpotFleetOnDemandAboveBasePercentage,Value=33

重要

EnableSpot オプション設定により、Elastic Beanstalk が起動テンプレートを使用して環境を作成したり、起動設定から起動テンプレートに既存の環境を更新したりできます。これを行うには、起動テンプレートを管理するために必要なアクセス許可が必要です。これらのアクセス許可は、 マネージドポリシーに含まれています。管理ポリシーの代わりにカスタムポリシーを使用すると、環境のスポットインスタンスを有効にすると、環境の作成または更新が失敗することがあります。詳細およびその他の考慮事項については、「」を参照してくださいElastic Beanstalk 環境の起動テンプレート

別の方法として、options.jsonファイルを使用して、インラインで名前空間オプションを含めるのではなく、名前空間オプションを指定します。

例 —Auto Scaling オプションを使用した環境の作成 ( options.json ファイルの名前空間オプション)
aws elasticbeanstalk create-environment \ --region us-east-1 \ --application-name my-app \ --environment-name my-env \ --solution-stack-name "64bit Amazon Linux 2023 v4.3.0 running Python 3.12" --option-settings file://options.json
### example options.json ### [ { "Namespace": "aws:autoscaling:launchconfiguration", "OptionName": "IamInstanceProfile", "Value": "aws-elasticbeanstalk-ec2-role" }, { "Namespace": "aws:autoscaling:asg", "OptionName": "Availability Zones", "Value": "Any" }, { "Namespace": "aws:autoscaling:asg", "OptionName": "Cooldown", "Value": "720" }, { "Namespace": "aws:autoscaling:asg", "OptionName": "Custom Availability Zones", "Value": "us-west-2a,us-west-2b" }, { "Namespace": "aws:autoscaling:asg", "OptionName": "MaxSize", "Value": "4" }, { "Namespace": "aws:autoscaling:asg", "OptionName": "MinSize", "Value": "2" }, { "Namespace": "aws:autoscaling:asg", "OptionName": "EnableCapacityRebalancing", "Value": "true" }, { "Namespace": "aws:ec2:instances", "OptionName": "EnableSpot", "Value": "true" }, { "Namespace": "aws:ec2:instances", "OptionName": "InstanceTypes", "Value": "t2.micro,t3.micro,t3.small" }, { "Namespace": "aws:ec2:instances", "OptionName": "SpotAllocationStrategy", "Value": "capacity-optimized-prioritized" }, { "Namespace": "aws:ec2:instances", "OptionName": "SpotFleetOnDemandBase", "Value": "1" }, { "Namespace": "aws:ec2:instances", "OptionName": "SpotFleetOnDemandAboveBasePercentage", "Value": "33" } ]

EB CLI を使用した設定

eb create コマンドを使用して環境を作成する場合、環境の Auto Scaling グループに関連するいくつかのオプションを指定できます。これは、環境の容量を制御するのに役立つオプションの一部です。

--single

1 つの Amazon EC2 インスタンスが含まれ、ロードバランサーがない環境を作成します。このオプションを使用しない場合、作成された環境にロードバランサーが追加されます。

--enable-spot

環境のスポットインスタンスリクエストを有効にします。

重要

enable-spot オプション設定により、Elastic Beanstalk が起動テンプレートを使用して環境を作成したり、起動設定から起動テンプレートに既存の環境を更新したりできます。これを行うには、起動テンプレートを管理するために必要なアクセス許可が必要です。これらのアクセス許可は、 マネージドポリシーに含まれています。管理ポリシーの代わりにカスタムポリシーを使用すると、環境のスポットインスタンスを有効にすると、環境の作成または更新が失敗することがあります。詳細およびその他の考慮事項については、「」を参照してくださいElastic Beanstalk 環境の起動テンプレート

eb create コマンドの以下のオプションは、--enable-spot でのみ使用できます。

--instance-types

環境で使用する Amazon EC2 インスタンスタイプを一覧表示します。

--spot-max-price

お客様がスポットインスタンスに対して支払ってもよいと考えるユニット時間あたりの上限価格 (米ドル)。スポットインスタンスの上限価格オプションに関する推奨事項については、「Amazon EC2 ユーザーガイド」の「スポットインスタンスの料金履歴」を参照してください。

--on-demand-base-capacity

環境のスケールアップ時にスポットインスタンスを考慮する前に、Auto Scaling グループがプロビジョニングするオンデマンドインスタンスの最小数。

--on-demand-above-base-capacity

--on-demand-base-capacity オプションで指定されたインスタンス数を超えて Auto Scaling グループがプロビジョニングする追加容量の一部としてのオンデマンドインスタンスの割合。

次の例では、環境を作成し、新しい環境のスポットインスタンスリクエストを有効にするように Auto Scaling グループを設定します。この例では、使用可能な 3 つのインスタンスタイプを使用できます。

$ eb create --enable-spot --instance-types "t2.micro,t3.micro,t3.small"
重要

--instance-type (「s」なし) という、同様の名前が付いた別のオプションがあります。EB CLI は、オンデマンドインスタンスの処理時のみ、このオプションを認識します。--instance-type (「s」なし) を --enable-spot オプションと共に使用しないでください。そうした場合、EB CLI によって無視されます。代わりに、--instance-types (「s」あり) を --enable-spot オプションと共に使用してください。