

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

# Elastic Beanstalk 環境用の容量設定
<a name="environments-cfg-autoscaling-configuration-approaches"></a>

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

**重要**  
`EnableSpot` オプション設定により、Elastic Beanstalk は起動設定から起動テンプレートに既存の環境を移行することができます。これを行うには、起動テンプレートを管理するために必要なアクセス許可が必要です。これらのアクセス許可は、マネージドポリシーに含まれています。マネージドポリシーの代わりにカスタムポリシーを使用した場合、環境設定を更新すると、環境の作成または更新が失敗する可能性があります。詳細情報と重要な考慮事項については、「[Elastic Beanstalk 環境を起動テンプレートに移行する](environments-cfg-autoscaling-launch-templates.md)」を参照してください。

## コンソールを使用した設定
<a name="environments-cfg-autoscaling-console"></a>

[Elastic Beanstalk コンソール](environments-console.md)で、環境の **[設定]** ページにある **[容量]** を編集することで、Auto Scaling グループの容量管理を設定できます。

**Elastic Beanstalk コンソールで Auto Scaling グループの容量を設定するには**

1. [Elastic Beanstalk コンソール](https://console.aws.amazon.com/elasticbeanstalk)を開き、**リージョン**リストで を選択します AWS リージョン。

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

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

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

1. [**Auto Scaling グループ**] セクションで、次のように設定します。
   + [**環境タイプ**] – [**負荷分散**] を選択します。
   + [**最小インスタンス数**] – グループに一度に含まれる EC2 インスタンスの最小数。グループは最小数から開始し、スケールアップのトリガー条件が満たされるとインスタンスが追加されます。
   + [**最大インスタンス数**] – グループに一度に含まれる EC2 インスタンスの最大数。
**注記**  
ローリング更新を使用する場合、ローリング更新の最小インスタンス数が [[**サービス内のインスタンスの最小数**] の設定](using-features.rollingupdates.md#rollingupdates-configure)よりも多いことを確認します。
   + **フリート組成** — デフォルトは**オンデマンドインスタンス**です。*スポットインスタンス*要件を有効にするには、[**Combined purchase options and instance** (購入オプションとインスタンスの組み合わせ)] を選択します。
**重要**  
`EnableSpot` オプション設定により、Elastic Beanstalk は起動設定から起動テンプレートに既存の環境を移行することができます。これを行うには、起動テンプレートを管理するために必要なアクセス許可が必要です。これらのアクセス許可は、マネージドポリシーに含まれています。マネージドポリシーの代わりにカスタムポリシーを使用した場合、環境設定を更新すると、環境の作成または更新が失敗する可能性があります。詳細情報と重要な考慮事項については、「[Elastic Beanstalk 環境を起動テンプレートに移行する](environments-cfg-autoscaling-launch-templates.md)」を参照してください。

     *スポットインスタンス*要件を有効にすることを選択すると、次のオプションが有効になります:
     + **スポット割り当て戦略** – 使用可能なキャパシティ、料金、インスタンスタイプの選択に基づいて、環境でスポットインスタンスを管理およびプロビジョニングするために使用される方法を決定します。*キャパシティ最適化* (デフォルト)、*料金キャパシティ最適化*、*キャパシティ最適化優先*、または*最低料金*から選択します。各割り当て戦略の説明と詳細については、「[スポットインスタンス割り当て戦略](environments-cfg-autoscaling-spot-allocation-strategy.md)」を参照してください。
     + **上限スポット価格** – スポットインスタンスの上限価格オプションに関する推奨事項については、「*Amazon EC2 ユーザーガイド*」の「[スポットインスタンスの料金履歴](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-spot-instances-history.html)」を参照してください。
     + **オンデマンドベース** - 環境のスケールアウト時にスポットインスタンスを考慮する前に、Auto Scaling グループがプロビジョニングするオンデマンドインスタンスの最小数。
     + **ベースを超えるオンデマンド** - Auto Scaling グループがオンデマンドベースのインスタンスを超えてプロビジョニングする追加容量の一部としてのオンデマンドインスタンスの割合。
**注記**  
**オンデマンドベース**および**ベースを超えるオンデマンド**は、前述の**最小**および**最大***インスタンス*オプションと関係しています。これらのオプションと例の詳細については、「[Elastic Beanstalk 環境のスポットインスタンスのサポート](environments-cfg-autoscaling-spot.md)」を参照してください。
     + **容量の再調整** — このオプションは、Auto Scaling グループに少なくとも 1 つのスポットインスタンスがある場合にのみ関係します。この機能を有効にすると、EC2 は Auto Scaling グループのスポットインスタンスを中断する前に自動的に置き換えるよう試み、アプリケーションへのスポットインスタンスの中断を最小限に抑えます。詳細については、「*Amazon EC2 Auto Scaling ユーザーガイド*」の「[容量の再調整](https://docs.aws.amazon.com/autoscaling/ec2/userguide/capacity-rebalance.html)」を参照してください
   + **アーキテクチャ** – EC2 インスタンスのプロセッサアーキテクチャ。プロセッサアーキテクチャは、次のフィールドで使用可能になる EC2 インスタンスタイプを決定します。
   + **インスタンスタイプ** – アプリケーションを実行するために起動した Amazon EC2 インスタンスのタイプ。詳細については、「[インスタンスのタイプ](using-features.managing.ec2.console.md#using-features.managing.ec2.instancetypes)」を参照してください。
   + **AMI ID** – Elastic Beanstalk が環境で Amazon EC2 インスタンスを起動するために使用するマシンイメージ。詳細については、「[AMI ID](using-features.managing.ec2.console.md#using-features.managing.ec2.customami)」を参照してください。
   + [**アベイラビリティーゾーン**] – アベイラビリティーゾーンの数を選択し、環境のインスタンスを分散させます。デフォルトでは、Auto Scaling グループは、使用可能なゾーン間で均等にインスタンスを起動します。少ないゾーンにインスタンスを集中させるには、使用するゾーンの数を選択します。実稼働環境では、2 つ以上のゾーンを使用して、一方のアベイラビリティーゾーンが使用できなくなってもアプリケーションが利用できるようにします。
   + [**配置**] (オプション) – 使用するアベイラビリティーゾーンを選択します。インスタンスを特定のゾーンのリソースに接続する必要がある場合、またはゾーン固有の[リザーブドインスタンス](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/concepts-on-demand-reserved-instances.html)を購入済みの場合は、この設定を使用します。カスタム VPC で環境を起動する場合は、このオプションを設定できません。カスタム VPC では、環境に割り当てるサブネットのアベイラビリティーゾーンを選択します。
   + [**スケーリングクールダウン**] – スケーリング後、トリガーの評価を継続する前に、インスタンスが起動または終了するまでの時間 (秒)。詳細については、「[スケーリングクールダウン](https://docs.aws.amazon.com/autoscaling/ec2/userguide/Cooldown.html)」を参照してください。

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

## 名前空間オプションを使用した設定
<a name="environments-cfg-autoscaling-namespace"></a>

Elastic Beanstalk には、[`aws:autoscaling:asg`](command-options-general.md#command-options-general-autoscalingasg) および [`aws:ec2:instances`](command-options-general.md#command-options-general-ec2instances) という 2 つの名前空間で、Auto Scaling 設定の[設定オプション](command-options.md)が用意されています。

### aws:autoscaling:asg 名前空間
<a name="environments-cfg-autoscaling-namespace.asg"></a>

`aws:autoscaling:asg` [aws:autoscaling:asg](command-options-general.md#command-options-general-autoscalingasg) 名前空間は、全体的なスケールと可用性のオプションを提供します。

次の[設定ファイルの](ebextensions.md)の例では、2～4 個のインスタンス、特定のアベイラビリティーゾーン、および 12 分間 (720 秒間) のクールダウン期間を使用するように Auto Scaling グループを設定します。スポットインスタンスの[容量の再調整](https://docs.aws.amazon.com/autoscaling/ec2/userguide/capacity-rebalance.html)を有効にします。この `EnableCapacityRebalancing` オプションは、この後に続く設定ファイルの例に示すように、[`aws:ec2:instances`](command-options-general.md#command-options-general-ec2instances) 名前空間で `EnableSpot` が `true` に設定されている場合にのみ有効です。

```
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 名前空間
<a name="environments-cfg-autoscaling-namespace.instances"></a>

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

[`aws:ec2:instances`](command-options-general.md#command-options-general-ec2instances) 名前空間は、スポットインスタンスの管理など、環境のインスタンスに関連するオプションを提供します。[`aws:autoscaling:launchconfiguration`](command-options-general.md#command-options-general-autoscalinglaunchconfiguration) と [`aws:autoscaling:asg`](command-options-general.md#command-options-general-autoscalingasg) を補完します。

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

設定では、[スポット割り当て戦略](environments-cfg-autoscaling-spot-allocation-strategy.md)を `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'
```

スポットインスタンスタイプを選択するには、[スポットインスタンスアドバイザー](https://aws.amazon.com/ec2/spot/instance-advisor/)を使用します。

**重要**  
`EnableSpot` オプション設定により、Elastic Beanstalk は起動設定から起動テンプレートに既存の環境を移行することができます。これを行うには、起動テンプレートを管理するために必要なアクセス許可が必要です。これらのアクセス許可は、マネージドポリシーに含まれています。マネージドポリシーの代わりにカスタムポリシーを使用した場合、環境設定を更新すると、環境の作成または更新が失敗する可能性があります。詳細情報と重要な考慮事項については、「[Elastic Beanstalk 環境を起動テンプレートに移行する](environments-cfg-autoscaling-launch-templates.md)」を参照してください。

## を使用した設定 AWS CLI
<a name="environments-cfg-autoscaling-aws-cli"></a>

このセクションでは、 AWS CLI [create-environment](https://docs.aws.amazon.com/cli/latest/reference/elasticbeanstalk/create-environment.html) コマンドを使用して、これらのセクションで説明されている Auto Scaling オプションとキャパシティオプションを使用して環境を設定する方法の例を示します。前の[名前空間設定オプション](#environments-cfg-autoscaling-namespace)セクションで説明したように、[`aws:ec2:instances`](command-options-general.md#command-options-general-ec2instances) と [`aws:autoscaling:asg`](command-options-general.md#command-options-general-autoscalingasg) の名前空間設定もこの例で設定されていることに注意してください。

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

**注記**  
`--option-settings` で [update-environment](https://docs.aws.amazon.com/cli/latest/reference/elasticbeanstalk/update-environment.html) コマンドを使用して、名前空間オプションを追加または更新することもできます。環境から名前空間オプションを削除する必要がある場合は、`--options-to-remove` で **update-environment** コマンドを使用します。

次の例では、新しい環境を作成します。渡されるオプションの詳細な内容については、前のトピックの[名前空間設定オプション](#environments-cfg-autoscaling-namespace)を参照してください。

リストされている fist オプション、[aws:autoscaling:launchconfiguration](command-options-general.md#command-options-general-autoscalinglaunchconfiguration) 名前空間の `IamInstanceProfile` は、Elastic Beanstalk [インスタンスプロファイル](concepts-roles-instance.md)です。これは、新しい環境を作成するときに必要です。

**Example — 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 環境を起動テンプレートに移行する](environments-cfg-autoscaling-launch-templates.md)」を参照してください。





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

**Example —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**  

```
### 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 を使用した設定
<a name="environments-cfg-autoscaling-ebcli"></a>

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

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

`--enable-spot`  
環境のスポットインスタンスリクエストを有効にします。  
`enable-spot` オプション設定により、Elastic Beanstalk は起動設定から起動テンプレートに既存の環境を移行することができます。これを行うには、起動テンプレートを管理するために必要なアクセス許可が必要です。これらのアクセス許可は、マネージドポリシーに含まれています。マネージドポリシーの代わりにカスタムポリシーを使用した場合、環境設定を更新すると、環境の作成または更新が失敗する可能性があります。詳細情報と重要な考慮事項については、「[Elastic Beanstalk 環境を起動テンプレートに移行する](environments-cfg-autoscaling-launch-templates.md)」を参照してください。
[**eb create**](eb3-create.md) コマンドの以下のオプションは、`--enable-spot` でのみ使用できます。    
`--instance-types`  
環境で使用する Amazon EC2 インスタンスタイプを一覧表示します。  
`--spot-max-price`  
お客様がスポットインスタンスに対して支払ってもよいと考えるユニット時間あたりの上限価格 (米ドル)。スポットインスタンスの上限価格オプションに関する推奨事項については、「*Amazon EC2 ユーザーガイド*」の「[スポットインスタンスの料金履歴](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-spot-instances-history.html)」を参照してください。  
`--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` オプションと共に使用してください。