

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

# 複数のインスタンスタイプと購入オプションを使用する Auto Scaling グループ
<a name="ec2-auto-scaling-mixed-instances-groups"></a>

1 つの Auto Scaling グループ内で、オンデマンドインスタンスとスポットインスタンスのフリートを起動してオートスケールできます。スポットインスタンスの使用で割引を受けるだけでなく、リザーブドインスタンスまたは Savings Plans を使用して、通常のオンデマンドインスタンスの料金に対する割引の適用を受けることができます。これらの要素は、EC2 インスタンスのコスト削減を最適化し、アプリケーションに必要なスケールとパフォーマンスを得るのに役立ちます。

スポットインスタンスは、EC2 オンデマンドの料金と比較して、大幅割引で提供される予備の容量です。スポットインスタンス はアプリケーションを実行する時間に柔軟性がある場合や、アプリケーションを中断できる場合に、費用効率の高い選択肢です。これらは、フォールトトレラントで柔軟性があるさまざまなアプリケーションに使用できます。これには、ステートレスウェブサーバー、API エンドポイント、ビッグデータアプリケーションおよび分析アプリケーション、コンテナ化されたワークロード、CI/CD パイプライン、高パフォーマンスおよび高スループットコンピューティング (HPC/HTC)、レンダリングワークロード、その他柔軟性の高いワークロードなどがあります。

詳細については、「*Amazon EC2 ユーザーガイド*」の「[インスタンス購入オプション](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-purchasing-options.html)」を参照してください。

**Topics**
+ [混合インスタンスグループを作成するための設定の概要](mixed-instances-groups-set-up-overview.md)
+ [複数のインスタンスタイプの配分戦略](allocation-strategies.md)
+ [属性ベースのインスタンスタイプの選択を使用して混合インスタンスグループを作成する](create-mixed-instances-group-attribute-based-instance-type-selection.md)
+ [インスタンスタイプを手動で選択して混合インスタンスグループを作成する](create-mixed-instances-group-manual-instance-type-selection.md)
+ [インスタンスの重みを使用するように Auto Scaling グループを設定する](ec2-auto-scaling-mixed-instances-groups-instance-weighting.md)
+ [複数の起動テンプレートを使用する](ec2-auto-scaling-mixed-instances-groups-launch-template-overrides.md)

# 混合インスタンスグループを作成するための設定の概要
<a name="mixed-instances-groups-set-up-overview"></a>

このトピックでは、Auto Scaling の混合インスタンスグループを作成するための概要とベストプラクティスについて説明します。

**Topics**
+ [概要:](#mixed-instances-groups-overview)
+ [インスタンスタイプの柔軟性](#mixed-instances-group-instance-flexibility)
+ [アベイラビリティーゾーンの柔軟性](#mixed-instances-group-az-flexibility)
+ [最大スポット料金](#mixed-instances-group-spot-max-price)
+ [プロアクティブなキャパシティの再調整](#use-capacity-rebalancing)
+ [スケーリングの動作](#mixed-instances-group-scaling-behavior)
+ [リージョン別のインスタンスタイプの可用性](#setup-overview-regional-availability-of-instance-types)
+ [関連リソース](#setup-overview-related-resources)
+ [制限事項](#setup-overview-limitations)

## 概要:
<a name="mixed-instances-groups-overview"></a>

混合インスタンスグループを作成するには、次の 2 つのオプションがあります。
+ [属性ベースのインスタンスタイプの選択](create-mixed-instances-group-attribute-based-instance-type-selection.md) — コンピューティング要件を定義して、特定のインスタンス属性に基づいてインスタンスタイプを自動的に選択します。
+ [インスタンスタイプの手動選択](create-mixed-instances-group-manual-instance-type-selection.md) — ワークロードに適したインスタンスタイプを手動で選択します。

------
#### [ Manual selection ]

次のステップでは、インスタンスタイプを手動で選択して混合インスタンスグループを作成する方法を説明します。

1. EC2 インスタンスを起動するためのパラメータを含む起動テンプレートを選択します。起動テンプレートのパラメータはオプションですが、amilong; (AMI) ID が起動テンプレートにない場合、Amazon EC2 Auto Scaling はインスタンスを起動できません。

1. 起動テンプレートをオーバーライドするオプションを選択します。

1. ワークロードに合ったインスタンスタイプを手動で選択します。

1. 起動するオンデマンドインスタンスとスポットインスタンスの割合を指定します。

1. Amazon EC2 Auto Scaling が可能なインスタンスタイプからオンデマンドとスポットのキャパシティーを満たす方法を決定する割り当て戦略を選択します。

1. インスタンスを起動するアベイラビリティーゾーンと VPC サブネットを選択します。

1. グループの初期サイズ (希望するキャパシティ) と、グループの最小サイズおよび最大サイズを指定します。

オーバーライドは、起動テンプレートで宣言されたインスタンスタイプをオーバーライドし、Auto Scaling グループ独自のリソース定義に埋め込まれている複数のインスタンスタイプを使用するために必要です。利用可能なインスタンスタイプの詳細については、「*Amazon EC2 ユーザーガイド*」の「[インスタンスタイプ](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html)」を参照してください。

インスタンスタイプごとに次のオプションパラメータを設定することもできます。
+ `LaunchTemplateSpecification` — 必要に応じて、別の起動テンプレートをインスタンスタイプに割り当てることができます。このオプションは現在、コンソールからは利用できません。詳細については、「[複数の起動テンプレートを使用する](ec2-auto-scaling-mixed-instances-groups-launch-template-overrides.md)」を参照してください。
+ `WeightedCapacity` — グループ内の残りのインスタンスとの関係で、どのくらいのインスタンスが希望する容量にカウントされるかを決定します。1 つのインスタンスタイプに `WeightedCapacity` の値を指定する場合は、すべてのインスタンスタイプに `WeightedCapacity` の値を指定する必要があります。デフォルトでは、各インスタンスは希望するキャパシティに対して 1 個としてカウントされます。詳細については、「[インスタンスの重みを使用するように Auto Scaling グループを設定する](ec2-auto-scaling-mixed-instances-groups-instance-weighting.md)」を参照してください。

------
#### [ Attribute-based selection ]

Amazon EC2 Auto Scaling が特定のインスタンス属性に基づいてインスタンスタイプを自動的に選択できるようにするには、次のステップに従って、コンピューティング要件を指定することによって混合インスタンスグループを作成します。

1. EC2 インスタンスを起動するためのパラメータを含む起動テンプレートを選択します。起動テンプレートのパラメータはオプションですが、amilong; (AMI) ID が起動テンプレートにない場合、Amazon EC2 Auto Scaling はインスタンスを起動できません。

1. 起動テンプレートをオーバーライドするオプションを選択します。

1. vCPU およびメモリ要件などのコンピューティング要件に一致するインスタンス属性を指定します。

1. 起動するオンデマンドインスタンスとスポットインスタンスの割合を指定します。

1. Amazon EC2 Auto Scaling が可能なインスタンスタイプからオンデマンドとスポットのキャパシティーを満たす方法を決定する割り当て戦略を選択します。

1. インスタンスを起動するアベイラビリティーゾーンと VPC サブネットを選択します。

1. グループの初期サイズ (希望するキャパシティ) と、グループの最小サイズおよび最大サイズを指定します。

オーバーライドは、起動テンプレートで宣言されたインスタンスタイプをオーバーライドし、コンピューティング要件を記述するインスタンス属性のセットを使用するために必要です。サポートされる属性の詳細については、「*Amazon EC2 Auto Scaling API リファレンス*」の「[InstanceRequirements](https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_InstanceRequirements.html)」を参照してください。あるいは、既にインスタンス属性が定義されている起動テンプレートを使用することもできます。

必要に応じて、オーバーライド構造内で `LaunchTemplateSpecification` パラメータを設定して、一連のインスタンス要件に別の起動テンプレートを割り当てることもできます。このオプションは現在、コンソールからは利用できません。詳細については、「*Amazon EC2 Auto Scaling API リファレンス*」の「[LaunchTemplateOverrides](https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_LaunchTemplateOverrides.html)」を参照してください。

デフォルトでは、Auto Scaling グループの希望するキャパシティとしてインスタンスの数を設定します。

あるいは、希望するキャパシティの値を vCPU の数またはメモリ量に設定することもできます。これを実行するには、`CreateAutoScalingGroup` API オペレーションの `DesiredCapacityType` プロパティを使用するか、または AWS マネジメントコンソールの **[希望する容量タイプ]** ドロップダウンフィールドを使用します。これは、[インスタンスの重み](ec2-auto-scaling-mixed-instances-groups-instance-weighting.md)に代わる便利な方法です。

------

## インスタンスタイプの柔軟性
<a name="mixed-instances-group-instance-flexibility"></a>

可用性を高めるには、複数のインスタンスタイプにアプリケーションをデプロイします。キャパシティ要件を満たすために複数のインスタンスタイプを使用するのがベストプラクティスです。そうすることで、選択したアベイラビリティーゾーンに十分なインスタンスのキャパシティがない場合、Amazon EC2 Auto Scaling は別のインスタンスタイプを起動できます。

スポットインスタンスで十分なインスタンスのキャパシティがない場合、Amazon EC2 Auto Scaling は他のスポットインスタンスプールからの起動を試みようとし続けます。(使用するプールは、インスタンスタイプと配分戦略の選択によって決まります)。Amazon EC2 Auto Scaling では、オンデマンドインスタンスの代わりにスポットインスタンスを起動することで、スポットインスタンスのコスト削減効果を活用できます。

ワークロードごとに少なくとも 10 個のインスタンスを使用して柔軟性を持たせることをお勧めします。インスタンスタイプを選択する際には、最も人気のある新しいインスタンスタイプに限定しないでください。旧世代のインスタンスタイプを選択すると、オンデマンドの顧客からの需要が少ないため、スポット中断が少なくなる傾向があります。

## アベイラビリティーゾーンの柔軟性
<a name="mixed-instances-group-az-flexibility"></a>

Auto Scaling グループが複数のアベイラビリティーゾーンにまたがるようにすることを強くお勧めします。複数のアベイラビリティーゾーンを使用すると、ゾーン間で自動的にフェイルオーバーして回復力を高めるアプリケーションを設計できます。

追加のメリットとして、単一のアベイラビリティーゾーン内のグループと比較して、より深い Amazon EC2 キャパシティプールにアクセスできます。キャパシティは各アベイラビリティーゾーンのインスタンスタイプごとに個別に変動するため、多くの場合、より多くのコンピューティングキャパシティを得ることができ、インスタンスタイプとアベイラビリティーゾーンの両方を柔軟に選択できます。

複数のアベイラビリティーゾーンの使用の詳細については、「[例: 複数のアベイラビリティーゾーン全体にインスタンスを分散させる](auto-scaling-benefits.md#arch-AutoScalingMultiAZ)」を参照してください。

## 最大スポット料金
<a name="mixed-instances-group-spot-max-price"></a>

 AWS CLI または SDK を使用して Auto Scaling グループを作成するときは、 `SpotMaxPrice`パラメータを指定できます。`SpotMaxPrice` パラメータは、お客様がスポットインスタンス時間について支払ってもよいと考える最大料金を決定します。

オーバーライド (またはグループレベルで `"DesiredCapacityType": "vcpu"` もしくは `"DesiredCapacityType": "memory-mib"`) で `WeightedCapacity` パラメータを指定すると、最大料金はインスタンス全体の最大料金ではなく、最大単価を表します。

最大料金を指定しないことを強くお勧めします。低すぎる上限価格が設定されるなどの理由で、スポットインスタンスを取得できない場合には、アプリケーションが実行されないことがあります。上限料金を指定しない場合、デフォルトの上限料金はオンデマンド価格となります｡ 起動するスポットインスタンスのスポット価格のみを支払います。スポットインスタンスによって提供される大幅な割引は、そのまま受けることができます。これらの割引を実現できるのは、[スポット料金モデル](https://aws.amazon.com/blogs/compute/new-amazon-ec2-spot-pricing/)を使用して適用されるスポット料金が安定しているためです。詳細については、「*Amazon EC2 ユーザーガイド*」の「[料金と削減額](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-spot-instances.html#spot-pricing)」を参照してください。

## プロアクティブなキャパシティの再調整
<a name="use-capacity-rebalancing"></a>

ユースケースで可能な場合は、キャパシティの再調整をお勧めします。キャパシティの再調整は、中断のリスクがあるスポットインスタンスをプロアクティブに置き換えることで、ワークロードの可用性を維持するのに役立ちます。

キャパシティの再調整が有効になっている場合、Amazon EC2 Auto Scaling は、EC2 インスタンスの再調整に関するレコメンデーションを受け取ったスポットインスタンスをプロアクティブに置き換えようとします。これは、中断のリスクが低い新しいスポットインスタンスにワークロードを再調整する機会を提供します。

詳細については、「[リスクがあるスポットインスタンスを置き換えるための Auto Scaling でのキャパシティの再調整](ec2-auto-scaling-capacity-rebalancing.md)」を参照してください。

## スケーリングの動作
<a name="mixed-instances-group-scaling-behavior"></a>

混合インスタンスグループを作成すると、デフォルトでオンデマンドインスタンスが使用されます。スポットインスタンスを使用するには、オンデマンドインスタンスとして起動されるグループの割合を変更する必要があります。オンデマンドインスタンスの割合には、0 から 100 までの任意の数を指定できます。

オプションで、開始時のオンデマンドインスタンスのベース数を指定することもできます。その場合、Amazon EC2 Auto Scaling は、グループがスケールアウトする際にオンデマンドインスタンスのベースキャパシティが起動された後までは、スポットインスタンスの起動を待機します。ベースキャパシティーを超える場合、オンデマンドインスタンスの割合を使用して、起動するオンデマンドインスタンスとスポットインスタンスの数が決まります。

Amazon EC2 Auto Scaling は、その割合を同等のインスタンス数に変換します。結果が小数になる場合、オンデマンドインスタンスを優先して次の整数に切り上げられます。

次の表は、サイズが増減した場合における Auto Scaling グループの動作について示しています。


**例: スケーリング動作**  

| 購入オプション | 各購入オプションのグループのサイズと実行中のインスタンスの数 | 
| --- |--- |
|  | **10** | **20** | **30** | **40** | 
| --- |--- |--- |--- |--- |
| **例 1**: 10 を基準、50/50% オンデマンド/スポット |  |  |  |  | 
| On-Demand Instances (base amount) | 10 | 10 | 10 | 10 | 
| On-Demand Instances | 0 | 5 | 10 | 15 | 
| Spot Instances | 0 | 5 | 10 | 15 | 
| **例 2**: 0 を基準、0/100% オンデマンド/スポット |  |  |  |  | 
| On-Demand Instances (base amount) | 0 | 0 | 0 | 0 | 
| On-Demand Instances | 0 | 0 | 0 | 0 | 
| Spot Instances | 10 | 20 | 30 | 40 | 
| **例 3**: 0 を基準、60/40% オンデマンド/スポット |  |  |  |  | 
| On-Demand Instances (base amount) | 0 | 0 | 0 | 0 | 
| On-Demand Instances | 6 | 12 | 18 | 24 | 
| Spot Instances | 4 | 8 | 12 | 16 | 
| **例 4**: 0 を基準、100/0% オンデマンド/スポット |  |  |  |  | 
| On-Demand Instances (base amount) | 0 | 0 | 0 | 0 | 
| On-Demand Instances | 10 | 20 | 30 | 40 | 
| Spot Instances | 0 | 0 | 0 | 0 | 
| **例 5**: 12 を基準、0/100% オンデマンド/スポット |  |  |  |  | 
| On-Demand Instances (base amount) | 10 | 12 | 12 | 12 | 
| On-Demand Instances | 0 | 0 | 0 | 0 | 
| Spot Instances | 0 | 8 | 18 | 28 | 

グループのサイズが*大きくなる*と、Amazon EC2 Auto Scaling は、指定されたアベイラビリティーゾーン全体でキャパシティのバランスを均等にすることを試みます。次に、指定された配分戦略に従ってインスタンスタイプを起動します。

グループのサイズが*小さくなる*と、Amazon EC2 Auto Scaling は、まず 2 つのタイプ (スポットまたはオンデマンド) のどちらを終了する必要があるかを特定します。その後、指定されたアベイラビリティーゾーン全体でバランスの取れた方法でインスタンスを終了することを試みます。また、優先的に、割り当て戦略に近い方法でインスタンスを終了します。終了ポリシーの詳細については、「[Amazon EC2 Auto Scaling の終了ポリシーを設定する](ec2-auto-scaling-termination-policies.md)」を参照してください。

## リージョン別のインスタンスタイプの可用性
<a name="setup-overview-regional-availability-of-instance-types"></a>

EC2 インスタンスタイプの可用性は、 によって異なります AWS リージョン。例えば、最新世代のインスタンスタイプは、特定のリージョンではまだ利用できない可能性があります。リージョンによってインスタンスの可用性が異なるため、オーバーライドする複数のインスタンスタイプをリージョンで利用できない場合、プログラムでリクエストを行う際に問題が発生する可能性があります。リージョンで利用できない複数のインスタンスタイプを使用すると、リクエストが完全に失敗する可能性があります。この問題を解決するには、異なるインスタンスタイプでリクエストを再試行し、各インスタンスタイプがリージョンで利用可能であることを確認してください。各ロケーションで利用可能なインスタンスタイプを検索するには、[describe-instance-type-offerings](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/describe-instance-type-offerings.html) コマンドを使用します。詳細については、「*Amazon EC2 ユーザーガイド*」の「[Amazon EC2 インスタンスタイプの検索](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-discovery.html)」を参照してください。

## 関連リソース
<a name="setup-overview-related-resources"></a>

スポットインスタンスのベストプラクティスの詳細については、「*Amazon EC2 ユーザーガイド*」の「[EC2 スポットのベストプラクティス](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-best-practices.html)」を参照してください。

## 制限事項
<a name="setup-overview-limitations"></a>

[混合インスタンスポリシー](https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_MixedInstancesPolicy.html)を使用して Auto Scaling グループにオーバーライドを追加した後、`UpdateAutoScalingGroup` API コールでオーバーライドを更新できますが、削除することはできません。オーバーライドを完全に削除するには、まず Auto Scaling グループを切り替え、混合インスタンスポリシーではなく起動テンプレートまたは起動設定を使用する必要があります。その後、オーバーライドなしで混合インスタンスポリシーを再度追加できます。

# 複数のインスタンスタイプの配分戦略
<a name="allocation-strategies"></a>

複数のインスタンスタイプを使用する場合、Amazon EC2 Auto Scaling が可能なインスタンスタイプからオンデマンドおよびスポットキャパシティを満たす方法を管理します。これを実行するには、割り当て戦略を指定します。

混合インスタンスグループのベストプラクティスを確認するには、「[混合インスタンスグループを作成するための設定の概要](mixed-instances-groups-set-up-overview.md)」を参照してください。

**Topics**
+ [スポットインスタンス](#spot-allocation-strategy)
+ [オンデマンドインスタンス](#on-demand-allocation-strategy)
+ [配分戦略と重みの仕組み](#lowest-price-allocation-strategy)

## スポットインスタンス
<a name="spot-allocation-strategy"></a>

Amazon EC2 Auto Scaling では、スポットインスタンス用に、次の配分戦略を提供しています。

`price-capacity-optimized` (推奨)  
価格とキャパシティで最適化された配分戦略では、価格とキャパシティの両方を考慮して、中断される可能性が最も低く、価格ができるだけ低いスポットインスタンスプールを選択します。  
使用を開始する際には、この戦略をお勧めします。詳細については、 AWS ブログの[EC2 スポットインスタンスのprice-capacity-optimized配分戦略の紹介](https://aws.amazon.com/blogs/compute/introducing-price-capacity-optimized-allocation-strategy-for-ec2-spot-instances/)」を参照してください。

`capacity-optimized`  
Amazon EC2 Auto Scaling は、起動するインスタンスの数に最適なキャパシティを持つプールからスポットインスタンスをリクエストします。  
スポットインスタンスでは、料金は需要と供給の長期的な傾向に基づいて時間の経過とともに緩やかに変動します。ただし、キャパシティはリアルタイムで変動します。`capacity-optimized`戦略では、リアルタイムのキャパシティーデータを調べ、可用性の最も高いプールを予測することで、そのプールから スポットインスタンス を自動的に起動します。これにより、作業の再開とチェックポイントに伴う中断コストが高くなる可能性があるワークロードの中断を最小限に抑えることができます。最初に特定のインスタンスタイプを起動する可能性を高めるには、`capacity-optimized-prioritized` を使用します。

`capacity-optimized-prioritized`  
起動テンプレートのオーバーライドのリスト内のインスタンスタイプの順序を、優先順位の高いものから順番に (リストの最初から最後まで) 設定することもできます。Amazon EC2 Auto Scaling は、ベストエフォートベースでインスタンスタイプの優先順位を尊重しますが、最初に容量を最適化します。これは、中断の可能性を最小限に抑える必要があるワークロードに適したオプションですが、適切なインスタンスタイプを設定することも重要です。オンデマンド配分戦略を `prioritized` に設定した場合、オンデマンドキャパシティを満たす際にも同じ優先順位が適用されます。

`lowest-price` (非推奨)  
スポットインスタンスの中断リスクが非常に高いため、`lowest-price` 戦略はお勧めしません。
Amazon EC2 Auto Scaling は、**[最低料金のプール]** の設定で指定したスポットプールの N 個のプール全体で、アベイラビリティーゾーン内の最低料金のプールを使用してスポットインスタンスをリクエストします。例えば、4 つのインスタンスタイプと 4 つのアベイラビリティーゾーンを指定した場合、Auto Scaling グループは最大 16 個のスポットプールにアクセスできます。(各アベイラビリティーゾーンに 4 個ずつ)。配分戦略で 2 つのスポットプール (N=2) を指定した場合、Auto Scaling グループは、アベイラビリティゾーンあたり 2 つの最低価格のプールを引き出し、スポットキャパシティを満たすことができます。  
`lowest-price` 戦略は、 AWS CLIを使用しているときにのみ利用できます。  
Amazon EC2 Auto Scaling は、指定された N 個のプールからスポットインスタンスを取得しようとします。ただし、希望するキャパシティを満たす前にプールにスポットキャパシティの残量がなくなった場合、Amazon EC2 Auto Scaling は次に料金の低いプールのキャパシティを利用して引き続きリクエストを満たします。希望するキャパシティを満たすために、指定した N 個を超えるプールからスポットインスタンスが割り当てられることがあります。同様に、ほとんどのプールにスポットキャパシティーがない場合には、指定した N 個より少ないプールから希望するキャパシティのすべてが割り当てられることがあります。

**注記**  
[AMD SEV-SNP](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/sev-snp.html) を有効にして 起動するようにスポットインスタンスを設定すると、選択したインスタンスタイプの[オンデマンド時間料金](https://aws.amazon.com/ec2/pricing/on-demand/)の 10%  に相当する追加の時間単位使用料が請求されます。配分戦略で料金を入力として使用する場合、Amazon EC2 Auto Scaling にはこの追加料金は含まれず、スポット料金のみが使用されます。

## オンデマンドインスタンス
<a name="on-demand-allocation-strategy"></a>

Amazon EC2 Auto Scaling では、オンデマンドインスタンスに使用できる、以下の配分戦略を提供しています。

`lowest-price`  
Amazon EC2 Auto Scaling は、現在のオンデマンド価格に基づき、各アベイラビリティーゾーンで最も最低価格のインスタンスタイプを自動的にデプロイします。  
希望するキャパシティを満たすために、各アベイラビリティーゾーンで複数のタイプのオンデマンドインスタンスを受け取る場合があります。これは、リクエストするキャパシティの大きさによって異なります。

`prioritized`  
オンデマンドキャパシティを満たすとき、Amazon EC2 Auto Scaling は、起動テンプレートのオーバーライドのリスト内のインスタンスタイプの順序に基づき、最初に使用するインスタンスタイプを決定します。例えば、3 つの起動テンプレートの優先度を `c5.large`、`c4.large`、`c3.large` と指定するとします。オンデマンドインスタンスが起動すると、Auto Scaling グループは、`c5.large`、`c4.large`、`c3.large` の順にオンデマンドキャパシティを満たします。  
オンデマンドインスタンスの優先順位を管理する場合は、次の点を考慮してください。  
+ Savings Plans またはリザーブドインスタンスを利用して使用料を前払いすることで、オンデマンドインスタンスの大幅な割引を受けることができます。詳細については、「[Amazon EC2 料金](https://aws.amazon.com/ec2/pricing/)」ページを参照してください。
+ リザーブドインスタンスでは、Amazon EC2 Auto Scaling が一致するインスタンスタイプを起動すると、通常のオンデマンドインスタンス コストの割引料金が適用されます。したがって、`c4.large` の未使用のリザーブドインスタンスがある場合、インスタンスタイプの優先順位を設定して、リザーブドインスタンスの最も高い優先順位を `c4.large` インスタンスタイプに付与できます。`c4.large` インスタンスが起動すると、リザーブドインスタンスの料金が発生します。
+ Savings Plans では、Amazon EC2 Instance Savings Plans または Compute Savings Plans を使用する場合、通常のオンデマンドインスタンス コストの割引料金が適用されます。Savings Plans では、インスタンスタイプの優先順位をより柔軟に設定することができます。Savings Plans の対象となるインスタンスタイプであれば、任意の順序で優先順位を設定できます。また、インスタンスタイプの全体の順序を変えることも可能で、その場合でも Savings Plans の割引料金が適用されます。Savings Plans の詳細については、[Savings Plans ユーザーガイド](https://docs.aws.amazon.com/savingsplans/latest/userguide/)を参照してください。

## 配分戦略と重みの仕組み
<a name="lowest-price-allocation-strategy"></a>

オーバーライド (またはグループレベルでは `"DesiredCapacityType": "vcpu"` もしくは `"DesiredCapacityType": "memory-mib"`) で `WeightedCapacity` パラメータを指定すると、配分戦略は他の Auto Scaling グループの場合とまったく同じように機能します。

vCPU の量が異なる複数のインスタンスタイプを含む Auto Scaling グループがあるとします。スポットとオンデマンドの配分戦略として `lowest-price` を使うとします。各インスタンスタイプの vCPU 数に基づいた重みの割り当てを選択する場合、Amazon EC2 Auto Scaling は、フルフィルメントの時点で割り当てられた重みの値 (vCPU など) あたりの料金が最も低いインスタンスタイプを起動します。スポットインスタンスの場合、これは vCPU あたりの最低スポット料金であることを意味します。オンデマンドインスタンスの場合、これは vCPU あたりの最低オンデマンド料金であることを意味します。

 詳細については、「[インスタンスの重みを使用するように Auto Scaling グループを設定する](ec2-auto-scaling-mixed-instances-groups-instance-weighting.md)」を参照してください。

# 属性ベースのインスタンスタイプの選択を使用して混合インスタンスグループを作成する
<a name="create-mixed-instances-group-attribute-based-instance-type-selection"></a>

混合インスタンスグループのインスタンスタイプを手動で選択する代わりに、コンピューティング要件を記述するインスタンス属性のセットを指定できます。Amazon EC2 Auto Scaling がインスタンスを起動するとき、Auto Scaling グループで使用されるインスタンスタイプは、必要なインスタンス属性と一致している必要があります。これは*属性ベースのインスタンスタイプの選択*と呼ばれます。

このアプローチは、コンテナやビッグデータ、CI/CD など、柔軟にインスタンスタイプを使用するワークロードとフレームワークに最適です。

属性ベースのインスタンスタイプを選択すると、次の利点があります。
+ **スポットインスタンスでのオプションの柔軟性** — Amazon EC2 Auto Scaling は、幅広いインスタンスタイプからスポットインスタンスを選択して起動できます。これは、インスタンスタイプに対して柔軟であるという、スポットのベストプラクティスを満たしています。これにより、Amazon EC2 スポットサービスが必要なコンピューティング性能を見つけ、割り当てられる機会に恵まれます。
+ **適切なインスタンスタイプを簡単に使用** - 利用可能なインスタンスタイプの数が多いため、ワークロードに適したインスタンスタイプを見つけるには時間がかかることがあります。インスタンス属性を指定すると、インスタンスタイプにはワークロードに必要な属性が自動的に設定されます。
+ **新しいインスタンスタイプの自動的な使用** — Auto Scaling グループでは、リリースされた時点で、新しい世代のインスタンスタイプを使用できます。要件に一致し、かつ Auto Scaling グループのために選択した割り当て戦略にマッチする場合には、新しい世代のインスタンスタイプが自動的に使用されます。

**Topics**
+ [属性ベースのインスタンスタイプ選択の仕組み](#how-attribute-based-instance-type-selection-works)
+ [料金保護](#understand-price-protection)
+ [パフォーマンス保護](#understand-performance-protection)
+ [前提条件](#attribute-based-instance-type-selection-prerequisites)
+ [属性ベースのインスタンスタイプの選択を使用して混合インスタンスグループを作成する (コンソール)](#attribute-based-instance-type-selection-console)
+ [属性ベースのインスタンスタイプの選択を使用して混合インスタンスグループを作成する (AWS CLI)](#attribute-based-instance-type-selection-aws-cli)
+ [設定例](#attribute-based-instance-type-selection-example-configurations)
+ [インスタンスタイプをプレビューする](#attribute-based-instance-type-selection-preview)
+ [関連リソース](#attribute-based-instance-type-selection-related-resources)

## 属性ベースのインスタンスタイプ選択の仕組み
<a name="how-attribute-based-instance-type-selection-works"></a>

属性ベースのインスタンスタイプの選択では、特定のインスタンスタイプのリストの代わりに、以下のようなインスタンスに必要なインスタンス属性のリストが提供されます。
+ **vCPU 数** – インスタンスあたりの vCPU の最小数と最大数。
+ **メモリ** – インスタンスあたりのメモリの最小および最大 GiB。
+ **ローカルストレージ** – EBS ボリュームとインスタンスストアボリュームのどちらをローカルストレージに使用するか。
+ **バースト可能なパフォーマンス** – T4g、T3a、T3、および T2 タイプを含む T インスタンスファミリーを使用するかどうか。

インスタンス要件を定義するには、多くのオプションを使用できます。各オプションの説明およびデフォルト値については、「*Amazon EC2 Auto Scaling API リファレンス*」の「[InstanceRequirements](https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_InstanceRequirements.html)」を参照してください。

Auto Scaling グループがインスタンスを起動する必要がある場合、指定した属性に一致し、そのアベイラビリティーゾーンで使用できるインスタンスタイプが検索されます。その後、配分戦略によって、起動する一致するインスタンスタイプが決定されます。属性ベースのインスタンスタイプの選択ではデフォルトで、Auto Scaling グループが予算のしきい値を超えるインスタンスタイプを起動できないようにする料金の保護機能が有効になっています。

デフォルトでは、Auto Scaling グループの希望する容量を設定する際に、インスタンスの数を測定単位として使用します。つまり、各インスタンスが 1 つの単位としてカウントされます。

あるいは、希望するキャパシティの値を vCPU の数またはメモリ量に設定することもできます。そのためには、 の **Desired capacity type**ドロップダウンフィールド、 AWS マネジメントコンソール または `CreateAutoScalingGroup`または `UpdateAutoScalingGroup` API オペレーションの `DesiredCapacityType`プロパティを使用します。その後 Amazon EC2 Auto Scaling により、希望する vCPU またはメモリ容量を満たすのに必要な数のインスタンスが起動されます。例えば、希望する容量タイプとして vCPU を使用し、それぞれ 2 つの vCPU を持つインスタンスを使用する場合、10 個の vCPU 容量で 5 つのインスタンスが起動されます。これは、[インスタンスの重み](ec2-auto-scaling-mixed-instances-groups-instance-weighting.md)に代わる便利な方法です。

## 料金保護
<a name="understand-price-protection"></a>

料金の保護を使用すると、Auto Scaling グループによって起動される EC2 インスタンスに対して支払う最大料金を指定できます。料金の保護は、指定した属性に適合した場合でも、コストが高すぎると思われるインタンスタイプについては Auto Scaling グループで使用できないようにする機能です。

料金の保護はデフォルトで有効になっており、オンデマンドインスタンスとスポットインスタンスにおける料金のしきい値は異なります。Amazon EC2 Auto Scaling が新しいインスタンスを起動する必要がある場合、関連するしきい値を超える料金のインスタンスタイプは起動されません。

**Topics**
+ [オンデマンド料金の保護](#on-demand-price-price-protection)
+ [スポット料金の保護](#spot-price-price-protection)
+ [料金の保護をカスタマイズする](#customize-price-price-protection)

### オンデマンド料金の保護
<a name="on-demand-price-price-protection"></a>

オンデマンドインスタンスの場合、指定のオンデマンド料金よりも高い割合で支払うことができる最大のオンデマンド料金を定義します。指定のオンデマンド料金は、指定された属性を持つ現行世代の C、M、または R インスタンスタイプ中で最も安いです。

オンデマンド料金の保護の値が明確に定義されていない場合、指定のオンデマンド料金よりも 20% 高いデフォルトのオンデマンド料金が最大料金として使用されます。

### スポット料金の保護
<a name="spot-price-price-protection"></a>

Amazon EC2 Auto Scaling ではデフォルトで、最適なスポットインスタンス料金の保護が自動的に適用され、幅広いインスタンスタイプから一貫して選択されます。料金保護を手動で設定することもできます。ただし、Amazon EC2 Auto Scaling に任せることで、スポット容量が満たされる可能性を高めることができます。

料金保護は、次のいずれかのオプションを使用して手動で指定できます。料金保護を手動で設定する場合は、最初のオプションを使用することをお勧めします。
+ **指定の*オンデマンド料金*の割合** — 指定のオンデマンド料金は、指定された属性を持つ現行世代の C、M、または R インスタンスタイプ中で最も安いです。
+ **指定の*スポット料金*よりも高い割合** — 指定のスポット料金は、指定された属性を持つ現行世代の C、M、または R インスタンスタイプの中で最も安いです。スポット料金および料金の保護のしきい値は変動する可能性があるため、このオプションの使用は推奨されません。

### 料金の保護をカスタマイズする
<a name="customize-price-price-protection"></a>

Amazon EC2 Auto Scaling コンソール、または AWS CLI または SDKs を使用して、料金保護のしきい値をカスタマイズできます。
+ コンソールで、**[追加のインスタンス属性]** の **[オンデマンド料金の保護]** および **[スポット料金の保護]** 設定を使用します。
+ [InstanceRequirements](https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_InstanceRequirements.html) 構造で、オンデマンドインスタンス料金の保護のしきい値を指定するには、`OnDemandMaxPricePercentageOverLowestPrice` プロパティを使用します。スポットインスタンス料金の保護のしきい値を指定するには、`MaxSpotPriceAsPercentageOfOptimalOnDemandPrice` または `SpotMaxPricePercentageOverLowestPrice` プロパティのいずれかを使用します。

**[希望する容量タイプ]** (`DesiredCapacityType`) を **vCPU** または**メモリ GiB** に設定した場合、料金の保護は、インスタンスごとの料金ではなく、vCPU あたりまたはメモリあたりの料金に基づいて適用されます。

料金保護をオフにすることもできます。料金保護のしきい値を指定しない場合は、`999999` などの高いパーセンテージ値を指定します。

**注記**  
現行世代の C、M、または R インスタンスタイプが指定の属性と一致しない場合でも、料金の保護は適用されます。一致するものが見つからなかった場合、指定の料金は現行世代のインスタンスタイプの中で最も安価なものになります。それもない場合は、属性に一致する前世代のインスタンスタイプの中で最も安価なものになります。

## パフォーマンス保護
<a name="understand-performance-protection"></a>

*パフォーマンス保護*は、Auto Scaling グループが指定されたパフォーマンスベースラインと同等以上のインスタンスタイプを使用できるようにする機能です。パフォーマンス保護を使用するには、ベースラインリファレンスとしてインスタンスファミリーを指定します。指定されたインスタンスファミリーの機能は、許容される最低レベルのパフォーマンスを確立します。Auto Scaling がインスタンスタイプを選択すると、指定した属性およびパフォーマンスベースラインが考慮されます。パフォーマンスベースラインを下回るインスタンスタイプは、他の指定された属性と一致しても、自動的に選択から除外されます。選択したすべてのインスタンスタイプが、指定されたインスタンスファミリーによって確立されたベースラインと同等以上のパフォーマンスを提供できるようにします。Auto Scaling はこのベースラインを使用してインスタンスタイプの選択をガイドしますが、選択したインスタンスタイプがすべてのアプリケーションのベースラインを常に上回る保証はありません。

現在、この機能はベースラインパフォーマンス係数として CPU パフォーマンスのみをサポートしています。指定されたインスタンスファミリーの CPU パフォーマンスがパフォーマンスベースラインとして使用され、選択したインスタンスタイプがこのベースラインと同等以上であるようにします。同じ CPU プロセッサを持つインスタンスファミリーは、ネットワークまたはディスクのパフォーマンスが異なっても、同じフィルタリング結果になります。例えば、ベースラインリファレンスとして `c6in` または `c6i` を指定すると、両方のインスタンスファミリーが同じ CPU プロセッサを使用するため、パフォーマンスベースのフィルタリング結果が同じになります。

**サポートされていないインスタンスファミリー**  
次のインスタンスファミリーはパフォーマンス保護でサポートされていません。
+ `c1`
+ `g3` \$1 `g3s`
+ `hpc7g`
+ `m1` \$1 `m2`
+ `mac1` \$1 `mac2` \$1 `mac2-m1ultra` \$1 `mac2-m2` \$1 `mac2-m2pro`
+ `p3dn` \$1 `p4d` \$1 `p5`
+ `t1`
+ `u-12tb1` \$1 `u-18tb1` \$1 `u-24tb1` \$1 `u-3tb1` \$1 `u-6tb1` \$1 `u-9tb1` \$1 `u7i-12tb` \$1 `u7in-16tb` \$1 `u7in-24tb` \$1 `u7in-32tb`

サポートされているインスタンスファミリーを指定してパフォーマンス保護を有効にした場合、返されるインスタンスタイプは上記のサポートされていないインスタンスファミリーを除外します。

**例: CPU パフォーマンスベースラインの設定**  
次の例では、インスタンス要件は、`c6i` インスタンスファミリーと同等のパフォーマンスの CPU コアを持つインスタンスタイプで起動することです。性能が下回る CPU プロセッサーが指定した他のインスタンス要件 (vCPU 数など) を満たしても、その CPU プロセッサーを持つインスタンスタイプを除外します。例えば、指定したインスタンス属性に 4 つの vCPUs および 16 GB のメモリが含まれている場合、これらの属性を持っても `c6i` より CPU パフォーマンスが低いインスタンスタイプは選択から除外されます。

```
"BaselinePerformanceFactors": {
        "Cpu": {
            "References": [
                {
                    "InstanceFamily": "c6i"
                }
            ]
        }
```

**考慮事項**  
パフォーマンス保護を使用する場合は、次の点を考慮します。
+ インスタンスタイプまたはインスタンス属性のいずれかを指定できますが、両方を同時に指定することはできません。
+ リクエスト設定では、最大 4 つの `InstanceRequirements` 構造を指定できます。

## 前提条件
<a name="attribute-based-instance-type-selection-prerequisites"></a>
+ 起動テンプレートを作成する。詳細については、「[Auto Scaling グループの起動テンプレートを作成する](create-launch-template.md)」を参照してください。
+ 起動テンプレートがまだスポットインスタンスをリクエストしていないことを確認します。

## 属性ベースのインスタンスタイプの選択を使用して混合インスタンスグループを作成する (コンソール)
<a name="attribute-based-instance-type-selection-console"></a>

属性ベースのインスタンスタイプの選択を使用して混合インスタンスグループを作成するには、次の手順を実行します。ステップを効率的に進めるために、いくつかのオプションのセクションは省略されています。

ほとんどの汎用的なワークロードでは、必要な vCPU とメモリの数を指定すれば十分です。高度なユースケースでは、ストレージのタイプ、ネットワークインターフェイス、CPU の製造元、アクセラレーターのタイプなどの属性を指定できます。

混合インスタンスグループのベストプラクティスを確認するには、「[混合インスタンスグループを作成するための設定の概要](mixed-instances-groups-set-up-overview.md)」を参照してください。

**混合インスタンスグループを作成するには**

1. [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) でAmazon EC2 コンソールを開き、ナビゲーションペインで **[Auto Scaling グループ]** を選択します。

1. 画面の上部のナビゲーションバーで、起動テンプレートを作成したときに使用したのと同じ AWS リージョン を選択します。

1. [**Auto Scaling グループの作成**] を選択します。

1. [**起動テンプレートまたは起動設定を選択する**] ページで [**Auto Scaling グループ名**] にAuto Scaling グループの名前を入力します。

1. 起動テンプレートを選択するには、以下の手順を実行します。

   1. [**起動テンプレート**] で、既存の起動テンプレートを選択します。

   1. [**起動テンプレートのバージョン**] で、スケールアウト時に Auto Scaling グループで使用する起動テンプレートのバージョン (デフォルト、最新、または特定のバージョン) を選択します。

   1. 起動テンプレートが、使用する予定のすべてのオプションをサポートしていることを確認し、[**次へ**] を選択します。

1. **[インスタンス起動オプションを選択]** ページで、次を実行します。

   1. **[Instance type requirements]** (インスタンスタイプの要件) で、**[Override launch template]** (起動テンプレートを上書きする) を選択します。
**注記**  
vCPU やメモリなどのインスタンス属性のセットが既に含まれている起動テンプレートを選択した場合は、インスタンス属性が表示されます。これらの属性は Auto Scaling グループのプロパティに追加され、Amazon EC2 Auto Scaling コンソールからいつでも更新できます。

   1. **[Specify instance attributes]** (インスタンスの属性を指定する) で、まず vCPU とメモリの要件を入力します。
      + **[vCPUs]** に、希望する vCPU の最小数と最大数を入力してください。制限なしを指定するには、**[No minimum]** (最小値なし)、**[No maximum]** (最大値なし)、または両方を選択してください。
      + **[Memory (GiB)]** (メモリ (GiB)) に、希望する最小値と最大値を入力してください。制限なしを指定するには、**[No minimum]** (最小値なし)、**[No maximum]** (最大値なし)、または両方を選択してください。

   1. (オプション) **[Additional instance attributes]** (その他のインスタンス属性) では、オプションで 1 つ以上の属性を指定して、コンピューティング要件をより詳細に表現できます。追加の属性は、リクエストにさらに制約を追加します。

   1. **[一致するインスタンスタイプをプレビュー]** を展開して、指定した属性を持つインスタンスタイプを表示します。

   1. **[インスタンスの購入オプション]** の **[インスタンスの分散]** で、オンデマンドインスタンスとスポットインスタンスとして起動するグループの割合をそれぞれ指定します。アプリケーションが、ステートレスでフォールトトレラントであり、中断されるインスタンスを扱える場合は、より高い割合のスポットインスタンスを指定できます。

   1. (オプション) スポットインスタンスの割合を指定するときは、**[オンデマンドベースキャパシティを含める]** を選択してから、オンデマンドインスタンスによって満たされる必要がある Auto Scaling グループの最小初期キャパシティを指定します。ベースキャパシティーを超える場合は、**[Instances distribution]** (インスタンスの分散) 設定を使用して、起動するオンデマンドインスタンスとスポットインスタンスの数を決定します。

   1. **[Allocation strategies]** (配分戦略) の**[Lowest price]** (最低価格) は、**[On-Demand allocation strategy]** (オンデマンドの配分戦略) によって自動的に選択され、変更できません。

   1. **[Spot allocation strategy]** (スポット配分戦略) で、配分戦略を選択します。デフォルトでは、**[Price capacity optimized]** (価格のキャパシティの最適化) が選択されています。

   1. **[容量の再分散]** で、容量の再分散を有効にするか無効にするかを選択します。キャパシティの再調整を使用すると、スポットインスタンスがスポットの中断によって終了に近づいたときに自動的に応答します。詳細については、「[リスクがあるスポットインスタンスを置き換えるための Auto Scaling でのキャパシティの再調整](ec2-auto-scaling-capacity-rebalancing.md)」を参照してください。

   1. **[Network]** (ネットワーク) の下にある **[VPC]** で、VPC を選択します。Auto Scaling グループは、起動テンプレートで指定したセキュリティグループと、同じ VPC 内に作成する必要があります。

   1. **[Availability Zones and subnets]** (アベイラビリティーゾーンとサブネット) で、指定した VPC 内のサブネットを 1 つ以上選択します。複数のアベイラビリティーゾーンのサブネットを使用することで、高可用性を得られます。詳細については、「[VPC サブネットを選択する場合の考慮事項](asg-in-vpc.md#as-vpc-considerations)」を参照してください。

   1. **[次へ]**、**[次へ]** を選択します。

1. **[Configure group size and scaling policies]** (グループサイズとスケーリングポリシーを設定する) ステップでは、以下の手順を実行します。

   1. 希望する容量をインスタンス以外のユニットで測定するには、**[グループサイズ]** および **[希望する容量タイプ]** で適切なオプションを選択します。**[Units]** (ユニット)、**[vCPUs]**、および **[Memory GiB]** (メモリ GiB) がサポートされています。デフォルトで、Amazon EC2 Auto Scaling は **[Units]** (ユニット) を指定します。これはインスタンスの数になります。

   1. **[希望する容量]** で、Auto Scaling グループの初期サイズを設定します。

   1. **[スケーリング]** セクションの **[スケーリング制限]** で、**[希望する容量]** の新しい値が **[最小の希望する容量]** と **[最大の希望する容量]** より大きい場合、**[最大の希望する容量]** は自動的に希望する新しい容量の値に引き上げられます。これらの制限は、必要に応じて変更できます。詳細については、「[Auto Scaling グループのスケーリング制限を設定する](asg-capacity-limits.md)」を参照してください。

1. [**Skip to review**] を選択します。

1. [**Review (レビュー)**]ページで、[**Create Auto Scaling group (Auto Scaling グループを作成)**] を選択します。

## 属性ベースのインスタンスタイプの選択を使用して混合インスタンスグループを作成する (AWS CLI)
<a name="attribute-based-instance-type-selection-aws-cli"></a>

**コマンドラインを使用して混合インスタンスグループを作成するには**  
以下のいずれかのコマンドを使用します。
+ [create-auto-scaling-group](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/create-auto-scaling-group.html) (AWS CLI)
+ [New-ASAutoScalingGroup](https://docs.aws.amazon.com/powershell/latest/reference/items/New-ASAutoScalingGroup.html) (AWS Tools for Windows PowerShell)

## 設定例
<a name="attribute-based-instance-type-selection-example-configurations"></a>

 AWS CLIを使用して、属性ベースのインスタンスタイプを選択した Auto Scaling グループを作成するには、次の [create-auto-scaling-group](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/create-auto-scaling-group.html) コマンドを使用します。

次のインスタンス属性が指定されています。
+ `VCpuCount` — インスタンスタイプには、4 個以上、最大 8 個の vCPU が必要です。
+ `MemoryMiB` – インスタンスタイプには最低 16,384 MiB のメモリが必要です。
+ `CpuManufacturers` — インスタンスタイプには、インテル製の CPU が必要です。

### JSON
<a name="attribute-based-instance-type-selection-aws-cli-json"></a>

```
aws autoscaling create-auto-scaling-group --cli-input-json file://~/config.json
```

次は、`config.json` ファイルの例です。

```
{
    "AutoScalingGroupName": "my-asg",
    "DesiredCapacityType": "units",
    "MixedInstancesPolicy": {
        "LaunchTemplate": {
            "LaunchTemplateSpecification": {
                "LaunchTemplateName": "my-launch-template",
                "Version": "$Default"
            },
            "Overrides": [{
                "InstanceRequirements": {
                    "VCpuCount": {"Min": 4, "Max": 8},
                    "MemoryMiB": {"Min": 16384},
                    "CpuManufacturers": ["intel"]
                }
            }]
        },
        "InstancesDistribution": {
            "OnDemandPercentageAboveBaseCapacity": 50,
            "SpotAllocationStrategy": "price-capacity-optimized"
        }
    },
    "MinSize": 0,
    "MaxSize": 100,
    "DesiredCapacity": 4,
    "DesiredCapacityType": "units",
    "VPCZoneIdentifier": "subnet-5ea0c127,subnet-6194ea3b,subnet-c934b782"
}
```

vCPU の数またはメモリーの総量として、希望するキャパシティー値を設定するには、ファイルで `"DesiredCapacityType": "vcpu"` または `"DesiredCapacityType": "memory-mib"` を指定します。希望するキャパシティータイプのデフォルトは `units` で、これはインスタンスの数を、希望するキャパシティー値として設定します。

### YAML
<a name="attribute-based-instance-type-selection-aws-cli-yaml"></a>

または、次の [create-auto-scaling-group](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/create-auto-scaling-group.html) コマンドを使用して、Auto Scaling グループを作成します。これは、Auto Scaling グループの唯一のパラメータとして YAML ファイルを参照します。

```
aws autoscaling create-auto-scaling-group --cli-input-yaml file://~/config.yaml
```

次は、`config.yaml` ファイルの例です。

```
---
AutoScalingGroupName: my-asg
DesiredCapacityType: units
MixedInstancesPolicy:
  LaunchTemplate:
    LaunchTemplateSpecification:
      LaunchTemplateName: my-launch-template
      Version: $Default
    Overrides:
    - InstanceRequirements:
         VCpuCount:
           Min: 2
           Max: 4
         MemoryMiB:
           Min: 2048
         CpuManufacturers:
         - intel
  InstancesDistribution:
    OnDemandPercentageAboveBaseCapacity: 50
    SpotAllocationStrategy: price-capacity-optimized
MinSize: 0
MaxSize: 100
DesiredCapacity: 4
DesiredCapacityType: units
VPCZoneIdentifier: subnet-5ea0c127,subnet-6194ea3b,subnet-c934b782
```

vCPU の数またはメモリーの総量として、希望するキャパシティー値を設定するには、ファイルで `DesiredCapacityType: vcpu` または `DesiredCapacityType: memory-mib` を指定します。希望するキャパシティータイプのデフォルトは `units` で、これはインスタンスの数を、希望するキャパシティー値として設定します。

属性ベースのインスタンスタイプの選択で複数の起動テンプレートを使用する方法の例については、「[複数の起動テンプレートを使用する](ec2-auto-scaling-mixed-instances-groups-launch-template-overrides.md)」を参照してください。

## インスタンスタイプをプレビューする
<a name="attribute-based-instance-type-selection-preview"></a>

インスタンスを起動することなくコンピューティング要件に一致するインスタンスタイプをプレビューでき、必要に応じて要件を調整できます。Amazon EC2 Auto Scaling コンソールで Auto Scaling グループを作成すると、**[Choose instance launch options]** (インスタンス起動オプションを選択) ページの **[Preview matching instance types]** (一致するインスタンスタイプのプレビュー) セクションに、インスタンスタイプのプレビューが表示されます。

または、 AWS CLI または SDK を使用して Amazon EC2 [GetInstanceTypesFromInstanceRequirements](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetInstanceTypesFromInstanceRequirements.html) API コールを行うことで、インスタンスタイプをプレビューすることもできます。Auto Scaling グループの作成または更新のリクエストの中で、正しい形式で `InstanceRequirements` パラメーターを渡します。詳細については、「*Amazon EC2 ユーザーガイド*」の「[指定された属性でインスタンスタイプをプレビューする](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-fleet-attribute-based-instance-type-selection.html#ec2fleet-get-instance-types-from-instance-requirements)」を参照してください。

## 関連リソース
<a name="attribute-based-instance-type-selection-related-resources"></a>

属性ベースのインスタンスタイプの選択の詳細については、 AWS ブログの[EC2 Auto Scaling と EC2 フリートの属性ベースのインスタンスタイプの選択](https://aws.amazon.com/blogs/aws/new-attribute-based-instance-type-selection-for-ec2-auto-scaling-and-ec2-fleet/)」を参照してください。

 CloudFormationを使用して Auto Scaling グループを作成する際に、属性ベースのインスタンスタイプの選択を宣言できます。詳細については、「CloudFormation ユーザーガイド」の「[Auto Scaling テンプレートスニペット](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/quickref-autoscaling.html#scenario-mixed-instances-group-template-examples)」セクションのサンプルスニペットを参照してください。

# インスタンスタイプを手動で選択して混合インスタンスグループを作成する
<a name="create-mixed-instances-group-manual-instance-type-selection"></a>

このトピックでは、インスタンスタイプを手動で選択して、単一の Auto Scaling グループで複数のインスタンスタイプを起動する方法を示します。

インスタンスタイプを選択する基準としてインスタンス属性を使用する場合は、「[属性ベースのインスタンスタイプの選択を使用して混合インスタンスグループを作成する](create-mixed-instances-group-attribute-based-instance-type-selection.md)」を参照してください。

**Topics**
+ [前提条件](#manual-instance-type-selection-prerequisites)
+ [混合インスタンスグループを作成する (コンソール)](#manual-instance-type-selection-console)
+ [混合インスタンスグループを作成する (AWS CLI)](#manual-instance-type-selection-aws-cli)
+ [設定例](#manual-instance-type-selection-example-configurations)

## 前提条件
<a name="manual-instance-type-selection-prerequisites"></a>
+ 起動テンプレートを作成する。詳細については、「[Auto Scaling グループの起動テンプレートを作成する](create-launch-template.md)」を参照してください。
+ 起動テンプレートがまだスポットインスタンスをリクエストしていないことを確認します。

## 混合インスタンスグループを作成する (コンソール)
<a name="manual-instance-type-selection-console"></a>

次の手順を実行して、グループが起動できるインスタンスタイプを手動で選択し、混合インスタンスグループを作成します。ステップを効率的に進めるために、いくつかのオプションのセクションは省略されています。

混合インスタンスグループのベストプラクティスを確認するには、「[混合インスタンスグループを作成するための設定の概要](mixed-instances-groups-set-up-overview.md)」を参照してください。

**混合インスタンスグループを作成するには**

1. [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) でAmazon EC2 コンソールを開き、ナビゲーションペインで **[Auto Scaling グループ]** を選択します。

1. 画面の上部のナビゲーションバーで、起動テンプレートを作成したときに使用したのと同じ AWS リージョン を選択します。

1. [**Auto Scaling グループの作成**] を選択します。

1. [**起動テンプレートまたは起動設定を選択する**] ページで [**Auto Scaling グループ名**] にAuto Scaling グループの名前を入力します。

1. 起動テンプレートを選択するには、以下の手順を実行します。

   1. [**起動テンプレート**] で、既存の起動テンプレートを選択します。

   1. [**起動テンプレートのバージョン**] で、スケールアウト時に Auto Scaling グループで使用する起動テンプレートのバージョン (デフォルト、最新、または特定のバージョン) を選択します。

   1. 起動テンプレートが、使用する予定のすべてのオプションをサポートしていることを確認し、**[Next]** (次へ) を選択します。

1. **[インスタンス起動オプションを選択]** ページで、次を実行します。

   1. **[Instance type requirements]** (インスタンスタイプの要件) で、**[Override launch template]** (起動テンプレートを上書きする) を選択してから、**[Manually add instance types]** (インスタンスタイプを手動で追加する) を選択します。

   1. インスタンスタイプを選択します。まずはレコメンデーションを使用できます。デフォルトでは、**[Family and generation flexible]** (ファミリーと世代が柔軟) が選択されています。
      + インスタンスタイプの順序を変更するには、矢印を使用します。優先順位付けをサポートする配分戦略を選択した場合、インスタンスタイプの順序によって起動の優先順位が設定されます。
      + インスタンスタイプを削除するには、**[X]** を選択します。
      + (オプション) **[重み]** 列のボックスで、各インスタンスタイプに相対的な重みを割り当てます。これを行うには、そのタイプのインスタンスがグループの希望するキャパシティにカウントされるユニット数を入力します。これが便利なのは、インスタンスタイプ別に異なる vCPU、メモリ、ストレージ、またはネットワーク帯域幅の機能を設定する場合です。詳細については、「[インスタンスの重みを使用するように Auto Scaling グループを設定する](ec2-auto-scaling-mixed-instances-groups-instance-weighting.md)」を参照してください。

        **[サイズが柔軟]** のレコメンデーションを使用することを選択した場合は、このセクションに含まれるすべてのインスタンスタイプに自動的に重みの値が設定されることに留意してください。重みを指定したくない場合は、すべてのインスタンスタイプについて **[Weight]** (重み) 列のボックスをクリアしてください。

   1. **[Instance purchase options]** (インスタンスの購入オプション) の **[Instances distribution]** (インスタンスの分散) で、オンデマンドインスタンスとスポットインスタンスとして起動されるグループの割合をそれぞれ指定します。アプリケーションが、ステートレスでフォールトトレラントであり、中断されるインスタンスを扱える場合は、より高い割合のスポットインスタンスを指定できます。

   1. (オプション) スポットインスタンスの割合を指定するときは、**[オンデマンドベースキャパシティを含める]** を選択してから、オンデマンドインスタンスによって満たされる必要がある Auto Scaling グループの最小初期キャパシティを指定します。ベースキャパシティーを超える場合は、**[Instances distribution]** (インスタンスの分散) 設定を使用して、起動するオンデマンドインスタンスとスポットインスタンスの数を決定します。

   1. **[Allocation strategies]** (配分戦略) の **[On-Demand allocation strategy]** (オンデマンドの配分戦略) で、配分戦略を選択します。インスタンスタイプを手動で選択すると、デフォルトで **[Prioritized]** (高い優先順位で設定済み) が選択されます。

   1. **[Spot allocation strategy]** (スポット配分戦略) で、配分戦略を選択します。デフォルトでは、**[Price capacity optimized]** (価格のキャパシティの最適化) が選択されています。

      **[キャパシティ最適化]** を選択した場合は、必要に応じて **[インスタンスタイプの優先順位を設定]** ボックスをオンにして、インスタンスタイプのリスト順に基づいて最初に起動するインスタンスタイプを Amazon EC2 Auto Scaling が選択できるようにします。

   1. **[容量の再分散]** で、容量の再分散を有効にするか無効にするかを選択します。キャパシティの再調整を使用すると、スポットインスタンスがスポットの中断によって終了に近づいたときに自動的に応答します。詳細については、「[リスクがあるスポットインスタンスを置き換えるための Auto Scaling でのキャパシティの再調整](ec2-auto-scaling-capacity-rebalancing.md)」を参照してください。

   1. **[Network]** (ネットワーク) の下にある **[VPC]** で、VPC を選択します。Auto Scaling グループは、起動テンプレートで指定したセキュリティグループと、同じ VPC 内に作成する必要があります。

   1. **[Availability Zones and subnets]** (アベイラビリティーゾーンとサブネット) で、指定した VPC 内のサブネットを 1 つ以上選択します。複数のアベイラビリティーゾーンのサブネットを使用することで、高可用性を得られます。詳細については、「[VPC サブネットを選択する場合の考慮事項](asg-in-vpc.md#as-vpc-considerations)」を参照してください。

   1. **[次へ]**、**[次へ]** を選択します。

1. **[Configure group size and scaling policies]** (グループサイズとスケーリングポリシーを設定する) ステップでは、以下の手順を実行します。

   1. **[グループサイズ]** の **[希望する容量]** に、起動するインスタンスの初期数を入力します。

      デフォルトでは、希望する容量はインスタンスの数として表されます。インスタンスタイプに重みを割り当てた場合は、この値を、重みの割り当てに使用したのと同じ測定単位 (vCPU の数など) に変換する必要があります。

   1. **[スケーリング]** セクションの **[スケーリング制限]** で、**[希望する容量]** の新しい値が **[最小の希望する容量]** と **[最大の希望する容量]** より大きい場合、**[最大の希望する容量]** は自動的に希望する新しい容量の値に引き上げられます。これらの制限は、必要に応じて変更できます。詳細については、「[Auto Scaling グループのスケーリング制限を設定する](asg-capacity-limits.md)」を参照してください。

1. [**Skip to review**] を選択します。

1. [**Review (レビュー)**]ページで、[**Create Auto Scaling group (Auto Scaling グループを作成)**] を選択します。

## 混合インスタンスグループを作成する (AWS CLI)
<a name="manual-instance-type-selection-aws-cli"></a>

**コマンドラインを使用して混合インスタンスグループを作成するには**  
以下のいずれかのコマンドを使用します。
+ [create-auto-scaling-group](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/create-auto-scaling-group.html) (AWS CLI)
+ [New-ASAutoScalingGroup](https://docs.aws.amazon.com/powershell/latest/reference/items/New-ASAutoScalingGroup.html) (AWS Tools for Windows PowerShell)

## 設定例
<a name="manual-instance-type-selection-example-configurations"></a>

次の設定例は、さまざまなスポット割り当て戦略を使用して混合インスタンスグループを作成する方法を示しています。

**注記**  
これらの例は、JSON または YAML でフォーマットされた設定ファイルの使用方法を示しています。 AWS CLI バージョン 1 を使用する場合は、JSON 形式の設定ファイルを指定する必要があります。 AWS CLI バージョン 2 を使用する場合は、YAML または JSON のいずれかでフォーマットされた設定ファイルを指定できます。

**Topics**
+ [例 1: `capacity-optimized` 割り当て戦略を使用して スポットインスタンス を起動する](#capacity-optimized-aws-cli)
+ [例 2: `capacity-optimized-prioritized` 割り当て戦略を使用して スポットインスタンス を起動する](#capacity-optimized-prioritized-aws-cli)
+ [例 3: 2つのプール間での `lowest-price` 配分戦略を使用してスポットインスタンスを起動する](#lowest-price-aws-cli)
+ [例 4: 配分戦略を使用して スポットインスタンス を起動する`price-capacity-optimized`](#price-capacity-optimized-aws-cli)

### 例 1: `capacity-optimized` 割り当て戦略を使用して スポットインスタンス を起動する
<a name="capacity-optimized-aws-cli"></a>

次の [[create-auto-scaling-group](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/create-auto-scaling-group.html)] コマンドは、以下を指定する Auto Scaling グループを作成します。
+ オンデマンドインスタンスとして起動するグループの割合 (`0`) と開始時のオンデマンドインスタンスのベース数 (`1`)
+ 優先度に従って起動するインスタンスタイプ (`c5.large`、`c5a.large`、`m5.large`、`m5a.large`、`c4.large`、`m4.large`、`c3.large`、`m3.large`)。
+ インスタンスを起動するサブネット (`subnet-5ea0c127`、`subnet-6194ea3b`、`subnet-c934b782`)。それぞれが異なるアベイラビリティーゾーンに対応します。
+ 起動テンプレート (`my-launch-template`) とそのバージョン (`$Default`)。

Amazon EC2 Auto Scaling がオンデマンドキャパシティーを満たそうとするとき、まず `c5.large` インスタンスタイプを起動します。スポットインスタンスは、スポットインスタンスのキャパシティーに基づいて、各アベイラビリティーゾーンの最適なスポットプールから取得されます。

#### JSON
<a name="capacity-optimized-aws-cli-json"></a>

```
aws autoscaling create-auto-scaling-group --cli-input-json file://~/config.json
```

`config.json` ファイルには次のコンテンツが含まれます。

```
{
    "AutoScalingGroupName": "my-asg",
    "MixedInstancesPolicy": {
        "LaunchTemplate": {
            "LaunchTemplateSpecification": {
                "LaunchTemplateName": "my-launch-template",
                "Version": "$Default"
            },
            "Overrides": [
                {
                    "InstanceType": "c5.large"
                },
                {
                    "InstanceType": "c5a.large"
                },
                {
                    "InstanceType": "m5.large"
                },
                {
                    "InstanceType": "m5a.large"
                },
                {
                    "InstanceType": "c4.large"
                },
                {
                    "InstanceType": "m4.large"
                },
                {
                    "InstanceType": "c3.large"
                },
                {
                    "InstanceType": "m3.large"
                }
            ]
        },
        "InstancesDistribution": {
            "OnDemandBaseCapacity": 1,
            "OnDemandPercentageAboveBaseCapacity": 0,
            "SpotAllocationStrategy": "capacity-optimized"
        }
    },
    "MinSize": 1,
    "MaxSize": 5,
    "DesiredCapacity": 3,
    "VPCZoneIdentifier": "subnet-5ea0c127,subnet-6194ea3b,subnet-c934b782"
}
```

#### YAML
<a name="capacity-optimized-aws-cli-yaml"></a>

または、次の [create-auto-scaling-group](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/create-auto-scaling-group.html) コマンドを使用して、Auto Scaling グループを作成します。これは、Auto Scaling グループの唯一のパラメータとして YAML ファイルを参照します。

```
aws autoscaling create-auto-scaling-group --cli-input-yaml file://~/config.yaml
```

`config.yaml` ファイルには次のコンテンツが含まれます。

```
---
AutoScalingGroupName: my-asg
MixedInstancesPolicy:
  LaunchTemplate:
    LaunchTemplateSpecification:
      LaunchTemplateName: my-launch-template
      Version: $Default
    Overrides:
    - InstanceType: c5.large
    - InstanceType: c5a.large
    - InstanceType: m5.large
    - InstanceType: m5a.large
    - InstanceType: c4.large
    - InstanceType: m4.large
    - InstanceType: c3.large
    - InstanceType: m3.large
  InstancesDistribution:
    OnDemandBaseCapacity: 1
    OnDemandPercentageAboveBaseCapacity: 0
    SpotAllocationStrategy: capacity-optimized
MinSize: 1
MaxSize: 5
DesiredCapacity: 3
VPCZoneIdentifier: subnet-5ea0c127,subnet-6194ea3b,subnet-c934b782
```

### 例 2: `capacity-optimized-prioritized` 割り当て戦略を使用して スポットインスタンス を起動する
<a name="capacity-optimized-prioritized-aws-cli"></a>

次の [[create-auto-scaling-group](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/create-auto-scaling-group.html)] コマンドは、以下を指定する Auto Scaling グループを作成します。
+ オンデマンドインスタンスとして起動するグループの割合 (`0`) と開始時のオンデマンドインスタンスのベース数 (`1`)
+ 優先度に従って起動するインスタンスタイプ (`c5.large`、`c5a.large`、`m5.large`、`m5a.large`、`c4.large`、`m4.large`、`c3.large`、`m3.large`)。
+ インスタンスを起動するサブネット (`subnet-5ea0c127`、`subnet-6194ea3b`、`subnet-c934b782`)。それぞれが異なるアベイラビリティーゾーンに対応します。
+ 起動テンプレート (`my-launch-template`) とそのバージョン (`$Latest`)。

Amazon EC2 Auto Scaling がオンデマンドキャパシティーを満たそうとするとき、まず `c5.large` インスタンスタイプを起動します。Amazon EC2 Auto Scaling がスポットキャパシティーを満たそうとするとき、ベストエフォートベースでインスタンスタイプの優先順位を尊重します。ただし、最初にキャパシティを最適化します。

#### JSON
<a name="capacity-optimized-prioritized-aws-cli-json"></a>

```
aws autoscaling create-auto-scaling-group --cli-input-json file://~/config.json
```

`config.json` ファイルには次のコンテンツが含まれます。

```
{
    "AutoScalingGroupName": "my-asg",
    "MixedInstancesPolicy": {
        "LaunchTemplate": {
            "LaunchTemplateSpecification": {
                "LaunchTemplateName": "my-launch-template",
                "Version": "$Latest"
            },
            "Overrides": [
                {
                    "InstanceType": "c5.large"
                },
                {
                    "InstanceType": "c5a.large"
                },
                {
                    "InstanceType": "m5.large"
                },
                {
                    "InstanceType": "m5a.large"
                },
                {
                    "InstanceType": "c4.large"
                },
                {
                    "InstanceType": "m4.large"
                },
                {
                    "InstanceType": "c3.large"
                },
                {
                    "InstanceType": "m3.large"
                }
            ]
        },
        "InstancesDistribution": {
            "OnDemandBaseCapacity": 1,
            "OnDemandPercentageAboveBaseCapacity": 0,
            "SpotAllocationStrategy": "capacity-optimized-prioritized"
        }
    },
    "MinSize": 1,
    "MaxSize": 5,
    "DesiredCapacity": 3,
    "VPCZoneIdentifier": "subnet-5ea0c127,subnet-6194ea3b,subnet-c934b782"
}
```

#### YAML
<a name="capacity-optimized-prioritized-aws-cli-yaml"></a>

または、次の [create-auto-scaling-group](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/create-auto-scaling-group.html) コマンドを使用して、Auto Scaling グループを作成します。これは、Auto Scaling グループの唯一のパラメータとして YAML ファイルを参照します。

```
aws autoscaling create-auto-scaling-group --cli-input-yaml file://~/config.yaml
```

`config.yaml` ファイルには次のコンテンツが含まれます。

```
---
AutoScalingGroupName: my-asg
MixedInstancesPolicy:
  LaunchTemplate:
    LaunchTemplateSpecification:
      LaunchTemplateName: my-launch-template
      Version: $Default
    Overrides:
    - InstanceType: c5.large
    - InstanceType: c5a.large
    - InstanceType: m5.large
    - InstanceType: m5a.large
    - InstanceType: c4.large
    - InstanceType: m4.large
    - InstanceType: c3.large
    - InstanceType: m3.large
  InstancesDistribution:
    OnDemandBaseCapacity: 1
    OnDemandPercentageAboveBaseCapacity: 0
    SpotAllocationStrategy: capacity-optimized-prioritized
MinSize: 1
MaxSize: 5
DesiredCapacity: 3
VPCZoneIdentifier: subnet-5ea0c127,subnet-6194ea3b,subnet-c934b782
```

### 例 3: 2つのプール間での `lowest-price` 配分戦略を使用してスポットインスタンスを起動する
<a name="lowest-price-aws-cli"></a>

次の [[create-auto-scaling-group](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/create-auto-scaling-group.html)] コマンドは、以下を指定する Auto Scaling グループを作成します。
+ オンデマンドインスタンスとして起動するグループの割合 (`50`)。(これは、開始時のオンデマンドインスタンスのベース数を指定するものではありません)。
+ 優先度に従って起動するインスタンスタイプ (`c5.large`、`c5a.large`、`m5.large`、`m5a.large`、`c4.large`、`m4.large`、`c3.large`、`m3.large`) 
+ インスタンスを起動するサブネット (`subnet-5ea0c127`、`subnet-6194ea3b`、`subnet-c934b782`)。それぞれが異なるアベイラビリティーゾーンに対応します。
+ 起動テンプレート (`my-launch-template`) とそのバージョン (`$Latest`)。

Amazon EC2 Auto Scaling がオンデマンドキャパシティーを満たそうとするとき、まず `c5.large` インスタンスタイプを起動します。スポットキャパシティーについては、Amazon EC2 Auto Scaling は、各アベイラビリティーゾーンで 2 つの最低価格のプールのスポットインスタンスを均等に起動しようとします。

#### JSON
<a name="lowest-price-aws-cli-json"></a>

```
aws autoscaling create-auto-scaling-group --cli-input-json file://~/config.json
```

`config.json` ファイルには次のコンテンツが含まれます。

```
{
    "AutoScalingGroupName": "my-asg",
    "MixedInstancesPolicy": {
        "LaunchTemplate": {
            "LaunchTemplateSpecification": {
                "LaunchTemplateName": "my-launch-template",
                "Version": "$Latest"
            },
            "Overrides": [
                {
                    "InstanceType": "c5.large"
                },
                {
                    "InstanceType": "c5a.large"
                },
                {
                    "InstanceType": "m5.large"
                },
                {
                    "InstanceType": "m5a.large"
                },
                {
                    "InstanceType": "c4.large"
                },
                {
                    "InstanceType": "m4.large"
                },
                {
                    "InstanceType": "c3.large"
                },
                {
                    "InstanceType": "m3.large"
                }
            ]
        },
        "InstancesDistribution": {
            "OnDemandPercentageAboveBaseCapacity": 50,
            "SpotAllocationStrategy": "lowest-price",
            "SpotInstancePools": 2
        }
    },
    "MinSize": 1,
    "MaxSize": 5,
    "DesiredCapacity": 3,
    "VPCZoneIdentifier": "subnet-5ea0c127,subnet-6194ea3b,subnet-c934b782"
}
```

#### YAML
<a name="lowest-price-aws-cli-yaml"></a>

または、次の [create-auto-scaling-group](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/create-auto-scaling-group.html) コマンドを使用して、Auto Scaling グループを作成します。これは、Auto Scaling グループの唯一のパラメータとして YAML ファイルを参照します。

```
aws autoscaling create-auto-scaling-group --cli-input-yaml file://~/config.yaml
```

`config.yaml` ファイルには次のコンテンツが含まれます。

```
---
AutoScalingGroupName: my-asg
MixedInstancesPolicy:
  LaunchTemplate:
    LaunchTemplateSpecification:
      LaunchTemplateName: my-launch-template
      Version: $Default
    Overrides:
    - InstanceType: c5.large
    - InstanceType: c5a.large
    - InstanceType: m5.large
    - InstanceType: m5a.large
    - InstanceType: c4.large
    - InstanceType: m4.large
    - InstanceType: c3.large
    - InstanceType: m3.large
  InstancesDistribution:
    OnDemandPercentageAboveBaseCapacity: 50
    SpotAllocationStrategy: lowest-price
    SpotInstancePools: 2
MinSize: 1
MaxSize: 5
DesiredCapacity: 3
VPCZoneIdentifier: subnet-5ea0c127,subnet-6194ea3b,subnet-c934b782
```

### 例 4: 配分戦略を使用して スポットインスタンス を起動する`price-capacity-optimized`
<a name="price-capacity-optimized-aws-cli"></a>

次の [[create-auto-scaling-group](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/create-auto-scaling-group.html)] コマンドは、以下を指定する Auto Scaling グループを作成します。
+ オンデマンドインスタンスとして起動するグループの割合 (`30`)。(これは、開始時のオンデマンドインスタンスのベース数を指定するものではありません)。
+ 優先度に従って起動するインスタンスタイプ (`c5.large`、`c5a.large`、`m5.large`、`m5a.large`、`c4.large`、`m4.large`、`c3.large`、`m3.large`) 
+ インスタンスを起動するサブネット (`subnet-5ea0c127`、`subnet-6194ea3b`、`subnet-c934b782`)。それぞれが異なるアベイラビリティーゾーンに対応します。
+ 起動テンプレート (`my-launch-template`) とそのバージョン (`$Latest`)。

Amazon EC2 Auto Scaling がオンデマンドキャパシティーを満たそうとするとき、まず `c5.large` インスタンスタイプを起動します。スポットキャパシティについては、Amazon EC2 Auto Scaling は、可能な限り低料金かつ起動するインスタンス数に最適なキャパシティを持つスポットインスタンスを、スポットインスタンスプールから起動しようとします。

#### JSON
<a name="price-capacity-optimized-aws-cli-json"></a>

```
aws autoscaling create-auto-scaling-group --cli-input-json file://~/config.json
```

`config.json` ファイルには次のコンテンツが含まれます。

```
{
    "AutoScalingGroupName": "my-asg",
    "MixedInstancesPolicy": {
        "LaunchTemplate": {
            "LaunchTemplateSpecification": {
                "LaunchTemplateName": "my-launch-template",
                "Version": "$Latest"
            },
            "Overrides": [
                {
                    "InstanceType": "c5.large"
                },
                {
                    "InstanceType": "c5a.large"
                },
                {
                    "InstanceType": "m5.large"
                },
                {
                    "InstanceType": "m5a.large"
                },
                {
                    "InstanceType": "c4.large"
                },
                {
                    "InstanceType": "m4.large"
                },
                {
                    "InstanceType": "c3.large"
                },
                {
                    "InstanceType": "m3.large"
                }
            ]
        },
        "InstancesDistribution": {
            "OnDemandPercentageAboveBaseCapacity": 30,
            "SpotAllocationStrategy": "price-capacity-optimized"
        }
    },
    "MinSize": 1,
    "MaxSize": 5,
    "DesiredCapacity": 3,
    "VPCZoneIdentifier": "subnet-5ea0c127,subnet-6194ea3b,subnet-c934b782"
}
```

#### YAML
<a name="price-capacity-optimized-aws-cli-yaml"></a>

または、次の [create-auto-scaling-group](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/create-auto-scaling-group.html) コマンドを使用して、Auto Scaling グループを作成します。これは、Auto Scaling グループの唯一のパラメータとして YAML ファイルを参照します。

```
aws autoscaling create-auto-scaling-group --cli-input-yaml file://~/config.yaml
```

`config.yaml` ファイルには次のコンテンツが含まれます。

```
---
AutoScalingGroupName: my-asg
MixedInstancesPolicy:
  LaunchTemplate:
    LaunchTemplateSpecification:
      LaunchTemplateName: my-launch-template
      Version: $Default
    Overrides:
    - InstanceType: c5.large
    - InstanceType: c5a.large
    - InstanceType: m5.large
    - InstanceType: m5a.large
    - InstanceType: c4.large
    - InstanceType: m4.large
    - InstanceType: c3.large
    - InstanceType: m3.large
  InstancesDistribution:
    OnDemandPercentageAboveBaseCapacity: 30
    SpotAllocationStrategy: price-capacity-optimized
MinSize: 1
MaxSize: 5
DesiredCapacity: 3
VPCZoneIdentifier: subnet-5ea0c127,subnet-6194ea3b,subnet-c934b782
```

# インスタンスの重みを使用するように Auto Scaling グループを設定する
<a name="ec2-auto-scaling-mixed-instances-groups-instance-weighting"></a>

複数のインスタンスタイプを使用する場合、各インスタンスタイプに関連付けるユニット数を指定し、同じ測定単位を持つグループの容量を指定できます。この容量の仕様オプションは重みと呼ばれます。

たとえば、少なくとも 8 個の vCPU と 15 GiB の RAM で最高のパフォーマンスを発揮する、コンピューティング集約型のアプリケーションを実行するとします。基本単位として `c5.2xlarge` を使用する場合、以下の EC2 インスタンスタイプのいずれかがアプリケーションのニーズを満たします。


**インスタンスタイプの例**  

| インスタンスタイプ | vCPU | メモリ (GiB) | 
| --- | --- | --- | 
| c5.2xlarge  |  8  | 16 | 
| c5.4xlarge | 16 | 32 | 
| c5.12xlarge | 48 | 96 | 
| c5.18xlarge  | 72 | 144 | 
| c5.24xlarge | 96 | 192 | 

デフォルトでは、すべてのインスタンスタイプは、サイズにかかわらず同じ重みを持ちます。つまり、Amazon EC2 Auto Scaling が起動するインスタンスタイプの規模の大小にかかわらず、各インスタンスは Auto Scaling グループの希望するキャパシティに対して同じようにカウントされます。

ただし重みでは、各インスタンスタイプに関連付けるユニットを数値で指定します。例えば、インスタンスのサイズが異なる場合、`c5.2xlarge` インスタンスには 2 の重みを付け、`c5.4xlarge` (2 倍大きい) インスタンスには 4 の重みを付けます。その後、Amazon EC2 Auto Scaling がグループをスケールするときに、これらの重みは、各インスタンスが希望するキャパシティとしてカウントするユニット数に変換されます。

重みは、Amazon EC2 Auto Scaling が起動するインスタンスタイプを変更しません。代わりに、割り当て戦略がそれを行います。詳細については、「[複数のインスタンスタイプの配分戦略](allocation-strategies.md)」を参照してください。

**重要**  
vCPU の数または各インスタンスタイプのメモリ量を使用して希望するキャパシティを満たすように Auto Scaling グループを設定するには、属性ベースのインスタンスタイプの選択を使用することをお勧めします。`DesiredCapacityType` パラメータを設定すると、このパラメータに設定した値に基づいて、各インスタンスタイプに関連付けるユニット数が自動的に指定されます。詳細については、「[属性ベースのインスタンスタイプの選択を使用して混合インスタンスグループを作成する](create-mixed-instances-group-attribute-based-instance-type-selection.md)」を参照してください。

**Topics**
+ [考慮事項](#weights-considerations)
+ [インスタンスの重みの動作](#instance-weighting-behaviors)
+ [重みを使用するように Auto Scaling グループを設定する](configue-auto-scaling-group-to-use-weights.md)
+ [ユニット時間あたりのスポット料金の例](weights-spot-price-per-unit-hour-example.md)

## 考慮事項
<a name="weights-considerations"></a>

このセクションでは、重みを効果的に実装するための重要な考慮事項について説明します。
+ アプリケーションのパフォーマンスニーズに合ったインスタンスタイプをいくつか選択します。Auto Scaling グループの希望する容量に対して、機能に基づきカウントされる各インスタンスタイプの重みを決定します。これらの重みは、現在および今後のインスタンスに適用されます。
+ 重みの範囲を大きくすることは避けてください。たとえば、インスタンスタイプの重みに 1 を指定し、次に大きいインスタンスタイプの重みに 200 を指定しないでください。最小の重みと最大の重みの差も極端であってはなりません。重みの違いが大きいと、コストパフォーマンスの最適化に悪影響を及ぼす可能性があります。
+ グループの希望する容量をインスタンスではなくユニットで指定します。例えば、vCPU ベースの重みを使用する場合は、希望するコア数に加えて最小値と最大値も設定する必要があります。
+ 重みと希望するキャパシティを設定して、希望するキャパシティが最も大きい重みの少なくとも 2〜3 倍になるようにします。

既存のグループを更新する際には、次の点に注意してください。
+ 既存のグループに重みを追加する際は、現在使用中のすべてのインスタンスタイプの重みを含めます。
+ 重みを追加または変更すると、Amazon EC2 Auto Scaling では新しい重みの値に基づいて希望する容量に達するようにインスタンスを起動または終了します。
+ インスタンスタイプを削除した場合、そのタイプのインスタンスを実行すると、定義されなくなった場合でも最新の重みが維持されます。

## インスタンスの重みの動作
<a name="instance-weighting-behaviors"></a>

インスタンスの重みを使用すると、Amazon EC2 Auto Scaling は次のように動作します。
+ 現在のキャパシティーは、希望するキャパシティーと同じかそれ以上になります。起動されたインスタンスが残りの希望する容量ユニットを超える場合、現在の容量が希望する容量を超える可能性があります。例えば、2 つのインスタンスタイプ `c5.2xlarge` と `c5.12xlarge` を指定し、`c5.2xlarge` にインスタンスの重み 2 を割り当て、`c5.12xlarge` にインスタンスの重み 12 を割り当てるとします。希望するキャパシティを満たすためのキャパシティが 5 ユニット分残っており、Amazon EC2 Auto Scaling が `c5.12xlarge` をプロビジョニングする場合、希望するキャパシティは 7 ユニット分超過します。
+ インスタンスを起動する際、Amazon EC2 Auto Scaling は、アベイラビリティーゾーン間で容量を分散し、希望する容量を超えて配分戦略を優先します。
+ Amazon EC2 Auto Scaling では、優先される配分戦略を使用してアベイラビリティーゾーン間のバランスを維持するため、最大容量の制限を超えることがあります。Amazon EC2 Auto Scaling によって適用されるハード制限は、希望する容量に最大の重みを加えたものになります。

# 重みを使用するように Auto Scaling グループを設定する
<a name="configue-auto-scaling-group-to-use-weights"></a>

次の AWS CLI の例に示すように、重みを使用するように Auto Scaling グループを設定できます。コンソールを使用する手順については、「[インスタンスタイプを手動で選択して混合インスタンスグループを作成する](create-mixed-instances-group-manual-instance-type-selection.md)」を参照してください。

**重みを使用するように新しい Auto Scaling グループを設定するには (AWS CLI)**  
[create-auto-scaling-group](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/create-auto-scaling-group.html) コマンドを使用します。例えば、次のコマンドは新しい Auto Scaling グループを作成し、次を指定して重みを割り当てます。
+ オンデマンドインスタンスとして起動するグループの割合 (`0`) 
+ 各アベイラビリティーゾーンのスポットインスタンスの配分戦略 (`capacity-optimized`)
+ 優先度に従って起動するインスタンスタイプ (`m4.16xlarge`、`m5.24xlarge`)
+ インスタンスタイプ間の相対的なサイズの違い (vCPU) に対応するインスタンスの重み (`16`、`24`)
+ インスタンスを起動するサブネット (`subnet-5ea0c127`、`subnet-6194ea3b`、`subnet-c934b782`)。それぞれ異なるアベイラビリティーゾーンに対応
+ 起動テンプレート (`my-launch-template`) とそのバージョン (`$Latest`)

```
aws autoscaling create-auto-scaling-group --cli-input-json file://~/config.json
```

`config.json` ファイルには次のコンテンツが含まれます。

```
{
    "AutoScalingGroupName": "my-asg",
    "MixedInstancesPolicy": {
        "LaunchTemplate": {
            "LaunchTemplateSpecification": {
                "LaunchTemplateName": "my-launch-template",
                "Version": "$Latest"
            },
            "Overrides": [
                {
                    "InstanceType": "m4.16xlarge",
                    "WeightedCapacity": "16"
                },
                {
                    "InstanceType": "m5.24xlarge",
                    "WeightedCapacity": "24"
                }
            ]
        },
        "InstancesDistribution": {
            "OnDemandPercentageAboveBaseCapacity": 0,
            "SpotAllocationStrategy": "capacity-optimized"
        }
    },
    "MinSize": 160,
    "MaxSize": 720,
    "DesiredCapacity": 480,
    "VPCZoneIdentifier": "subnet-5ea0c127,subnet-6194ea3b,subnet-c934b782",
    "Tags": []
}
```

**重みを使用するように既存の Auto Scaling グループを設定するには (AWS CLI)**  
[update-auto-scaling-group](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/update-auto-scaling-group.html) コマンドを使用します。例えば、ここで示すコマンドは、次を指定して既存の Auto Scaling グループのインスタンスタイプに重みを割り当てます。
+ 優先度に従って起動するインスタンスタイプ (`c5.18xlarge`、`c5.24xlarge`、`c5.2xlarge`、`c5.4xlarge`)
+ インスタンスタイプ間の相対的なサイズの違い (vCPU) に対応するインスタンスの重み (`18`、`24`、`2`、`4`)
+ 増やす新しい希望するキャパシティー (最大重みよりも大きい)

```
aws autoscaling update-auto-scaling-group --cli-input-json file://~/config.json
```

`config.json` ファイルには次のコンテンツが含まれます。

```
{
    "AutoScalingGroupName": "my-existing-asg",
    "MixedInstancesPolicy": {
        "LaunchTemplate": {
            "Overrides": [
                {
                    "InstanceType": "c5.18xlarge",
                    "WeightedCapacity": "18"
                },
                {
                    "InstanceType": "c5.24xlarge",
                    "WeightedCapacity": "24"
                },
                {
                    "InstanceType": "c5.2xlarge",
                    "WeightedCapacity": "2"
                },
                {
                    "InstanceType": "c5.4xlarge",
                    "WeightedCapacity": "4"
                }
            ]
        }
    },
    "MinSize": 0,
    "MaxSize": 100,
    "DesiredCapacity": 100
}
```

**コマンドラインを使用して重みを検証するには**  
以下のいずれかのコマンドを使用します。
+ [describe-auto-scaling-groups](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/describe-auto-scaling-groups.html) (AWS CLI)
+ [Get-ASAutoScalingGroup](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-ASAutoScalingGroup.html) (AWS Tools for Windows PowerShell)

# ユニット時間あたりのスポット料金の例
<a name="weights-spot-price-per-unit-hour-example"></a>

次の表では、米国東部 (バージニア北部) の異なるアベイラビリティーゾーンでのスポットインスタンスの時間単位の使用料金と、同じリージョンでのオンデマンドインスタンスの使用料金を比較しています。ここで示している料金は例であり、現在の料金ではありません。これらは*インスタンス時間単位*のコストです。


**例: インスタンス時間単位のスポット料金**  

| インスタンスタイプ | us-east-1a | us-east-1b | us-east-1c | オンデマンド料金 | 
| --- | --- | --- | --- | --- | 
| c5.2xlarge  | 0.180 USD | 0.191 USD | 0.170 USD | 0.34 USD  | 
| c5.4xlarge | 0.341 USD | 0.361 USD | 0.318 USD | 0.68 USD | 
| c5.12xlarge  | 0.779 USD | 0.777 USD  | 0.777 USD  | 2.04 USD | 
| c5.18xlarge  | 1.207 USD | 1.475 USD | 1.357 USD | 3.06 USD | 
| c5.24xlarge | 1.555 USD | 1.555 USD | 1.555 USD | 4.08 USD | 

インスタンスの重みにより、*ユニット*時間あたりの使用料金に基づいてコストを評価できます。時間単位の使用料金はインスタンスタイプの料金をその単位となる時間数で割って決定できます。オンデマンドインスタンスの場合、時間単位の使用料金は、1 つのインスタンスタイプをデプロイするときと、異なるサイズの同じインスタンスタイプをデプロイするときで同じです。一方、時間単位のスポット料金はスポットプールによって異なります。

次の例は、ユニット時間あたりのスポット料金の計算がインスタンスの重みでどのように機能するかを示しています。計算が容易になるように、スポットインスタンスを `us-east-1a` でのみ起動するとします。ユニット時間あたりの料金を次の表に示します。


**例: ユニット時間あたりのスポット料金**  

| インスタンスタイプ | us-east-1a | インスタンスの重み | ユニット時間あたりの価格  | 
| --- | --- | --- | --- | 
| c5.2xlarge  | 0.180 USD | 2 | 0.090 USD | 
| c5.4xlarge | 0.341 USD | 4 | 0.085 USD | 
| c5.12xlarge  | 0.779 USD | 12 | 0.065 USD | 
| c5.18xlarge  | 1.207 USD | 18 | 0.067 USD | 
| c5.24xlarge | 1.555 USD | 24 | 0.065 USD | 

# 複数の起動テンプレートを使用する
<a name="ec2-auto-scaling-mixed-instances-groups-launch-template-overrides"></a>

複数のインスタンスタイプを使用するだけでなく、複数の起動テンプレートを使用することもできます。

例えば、コンピューティング集約型アプリケーション用に Auto Scaling グループを設定し、C5、C5a、C6g のインスタンスタイプを混在させたいとします。ただし、C6g インスタンスは 64 ビット Arm アーキテクチャに基づく AWS Graviton プロセッサを搭載し、C5 および C5a インスタンスは 64 ビット Intel x86 プロセッサで実行されます。C5 インスタンスと C5a インスタンスの AMI はどちらも、これらの各インスタンスで機能しますが、C6g インスタンスでは機能しません。この問題を解決するには、C6g インスタンス用に別の起動テンプレートを使用します。C5 インスタンスと C5a インスタンスには同じ起動テンプレートを引き続き使用できます。

このセクションでは、 を使用して AWS CLI 、複数の起動テンプレートの使用に関連するタスクを実行する手順について説明します。現在、この特徴は AWS CLI または SDK を使用している場合のみ利用可能で、コンソールからは利用できません。

**Topics**
+ [複数の起動テンプレートを使用するように Auto Scaling グループを設定する](#configue-auto-scaling-group-to-use-multiple-launch-templates)
+ [関連リソース](#multiple-launch-templates-related-resources)

## 複数の起動テンプレートを使用するように Auto Scaling グループを設定する
<a name="configue-auto-scaling-group-to-use-multiple-launch-templates"></a>

次の例に示すように、複数の起動テンプレートを使用するように Auto Scaling グループを設定できます。

**複数の起動テンプレートを使用するように新しい Auto Scaling グループを設定するには (AWS CLI)**  
[create-auto-scaling-group](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/create-auto-scaling-group.html) コマンドを使用します。例えば、次のコマンドは新しい Auto Scaling グループを作成します。これは、`c5.large`、`c5a.large`、および`c6g.large`のインスタンスタイプを指定し、`c6g.large`のインスタンスタイプに新しい起動テンプレートを定義することで、適切な AMI を使用して Arm インスタンスを起動することを保証します。Amazon EC2 Auto Scalingは、インスタンスタイプの順序を使用して、オンデマンドキャパシティーを満たすときに最初に使用するインスタンスタイプを決定します。

```
aws autoscaling create-auto-scaling-group --cli-input-json file://~/config.json
```

`config.json` ファイルには次のコンテンツが含まれます。

```
{
  "AutoScalingGroupName":"my-asg",
  "MixedInstancesPolicy":{
    "LaunchTemplate":{
      "LaunchTemplateSpecification":{
        "LaunchTemplateName":"my-launch-template-for-x86",
        "Version":"$Latest"
      },
      "Overrides":[
        {
          "InstanceType":"c6g.large",
          "LaunchTemplateSpecification": {
            "LaunchTemplateName": "my-launch-template-for-arm",
            "Version": "$Latest"
          }
        },
        {
          "InstanceType":"c5.large"
        },
        {
          "InstanceType":"c5a.large"
        }
      ]
    },
    "InstancesDistribution":{
      "OnDemandBaseCapacity": 1,
      "OnDemandPercentageAboveBaseCapacity": 50,
      "SpotAllocationStrategy": "capacity-optimized"
    }
  },
  "MinSize":1,
  "MaxSize":5,
  "DesiredCapacity":3,
  "VPCZoneIdentifier":"subnet-5ea0c127,subnet-6194ea3b,subnet-c934b782",
  "Tags":[ ]
}
```

**複数の起動テンプレートを使用するように既存の Auto Scaling グループを設定するには (AWS CLI)**  
[update-auto-scaling-group](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/update-auto-scaling-group.html) コマンドを使用します。例えば、次のコマンドは、`my-launch-template-for-arm` という名前の起動テンプレートを、*`my-asg`* という名前の Auto Scaling グループの `c6g.large` インスタンスタイプに割り当てます。

```
aws autoscaling update-auto-scaling-group --cli-input-json file://~/config.json
```

`config.json` ファイルには次のコンテンツが含まれます。

```
{
  "AutoScalingGroupName":"my-asg",
  "MixedInstancesPolicy":{
    "LaunchTemplate":{
      "Overrides":[
        {
          "InstanceType":"c6g.large",
          "LaunchTemplateSpecification": {
            "LaunchTemplateName": "my-launch-template-for-arm",
            "Version": "$Latest"
          }
        },
        {
          "InstanceType":"c5.large"
        },
        {
          "InstanceType":"c5a.large"
        }
      ]
    }
  }
}
```

**属性ベースのインスタンスタイプ選択で複数の起動テンプレートを使用するように新しい Auto Scaling グループを設定するには (AWS CLI)**  
[create-auto-scaling-group](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/create-auto-scaling-group.html) コマンドを使用します。たとえば、次のコマンドは、ARM AMI を使用する Graviton AWS インスタンス用の起動テンプレートと、x86 AMI を使用する AMD または Intel ベースのインスタンス用の追加の起動テンプレートを指定して、新しい Auto Scaling グループを作成します。次に、[属性ベースのインスタンス選択](create-mixed-instances-group-attribute-based-instance-type-selection.md)を 2 回使用して、各 CPU アーキテクチャの幅広いインスタンスタイプから選択します。[update-autoscaling-grou](https://docs.aws.amazon.com/cli/latest/reference/autoscaling/update-auto-scaling-group.html)p コマンドを使用して、既存の Auto Scaling グループに同様の設定を追加できます。

```
aws autoscaling create-auto-scaling-group --cli-input-json file://~/config.json
```

`config.json` ファイルには次のコンテンツが含まれます。

```
{
  "AutoScalingGroupName":"my-asg",
  "MixedInstancesPolicy":{
    "LaunchTemplate":{
      "LaunchTemplateSpecification":{
        "LaunchTemplateName":"my-launch-template-for-arm",
        "Version":"$Latest"
      },
      "Overrides":[
        {
          "InstanceRequirements": {
            "VCpuCount": {"Min": 2},
            "MemoryMiB": {"Min": 2048},
            "CpuManufacturers": ["amazon-web-services"]
          }
         },
         {
           "InstanceRequirements": {
            "VCpuCount": {"Min": 2},
            "MemoryMiB": {"Min": 2048},
            "CpuManufacturers": ["intel", "amd"]
          },
          "LaunchTemplateSpecification": {
            "LaunchTemplateName": "my-launch-template-for-x86",
            "Version": "$Latest"
          }
         }
      ]
    },
    "InstancesDistribution":{
      "OnDemandPercentageAboveBaseCapacity": 0, 
      "SpotAllocationStrategy": "price-capacity-optimized"
    }
  },
  "MinSize":1,
  "MaxSize":10,
  "DesiredCapacity":6,
  "VPCZoneIdentifier":"subnet-5ea0c127,subnet-6194ea3b,subnet-c934b782",
  "Tags":[ ]
}
```

**Auto Scaling グループの起動テンプレートを確認するには**  
以下のいずれかのコマンドを使用します。
+ [describe-auto-scaling-groups](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/describe-auto-scaling-groups.html) (AWS CLI)
+ [Get-ASAutoScalingGroup](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-ASAutoScalingGroup.html) (AWS Tools for Windows PowerShell)

## 関連リソース
<a name="multiple-launch-templates-related-resources"></a>

[AWS re:Post](https://repost.aws/articles/ARQeKDQX68TcqipYaaisl6bA/cloudformation-auto-scaling-group-sample-template-for-mixed-x86-intel-amd-and-aws-graviton-instances) のテンプレートで、属性ベースのインスタンスタイプの選択を使用して複数の起動 CloudFormation テンプレートを指定する例を示します。