翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
属性ベースのインスタンスタイプの選択を使用して混合インスタンスグループを作成する
混合インスタンスグループのインスタンスタイプを手動で選択する代わりに、コンピューティング要件を記述するインスタンス属性のセットを指定できます。Amazon EC2 Auto Scaling がインスタンスを起動するとき、Auto Scaling グループで使用されるインスタンスタイプは、必要なインスタンス属性と一致している必要があります。これは属性ベースのインスタンスタイプの選択と呼ばれます。
このアプローチは、コンテナやビッグデータ、CI/CD など、柔軟にインスタンスタイプを使用するワークロードとフレームワークに最適です。
属性ベースのインスタンスタイプを選択すると、次の利点があります。
-
スポットインスタンスの最適な柔軟性 – Amazon EC2 Auto Scaling は、スポットインスタンスを起動するための幅広いインスタンスタイプから選択できます。これは、インスタンスタイプに対して柔軟であるという、スポットのベストプラクティスを満たしています。これにより、Amazon EC2 スポットサービスが必要なコンピューティング性能を見つけ、割り当てられる機会に恵まれます。
-
適切なインスタンスタイプを簡単に使用 - 利用可能なインスタンスタイプの数が多いため、ワークロードに適したインスタンスタイプを見つけるには時間がかかることがあります。インスタンス属性を指定すると、インスタンスタイプにはワークロードに必要な属性が自動的に設定されます。
-
新しいインスタンスタイプの自動使用 – Auto Scaling グループは、リリース時に新しい世代のインスタンスタイプを使用できます。 Auto Scaling 要件に一致し、かつ Auto Scaling グループのために選択した割り当て戦略にマッチする場合には、新しい世代のインスタンスタイプが自動的に使用されます。
トピック
属性ベースのインスタンスタイプ選択の仕組み
属性ベースのインスタンスタイプを選択すると、特定のインスタンスタイプのリストを提供する代わりに、インスタンスに必要なインスタンス属性のリストを指定します。例えば、次のようになります。
-
vCPU 数 – インスタンスあたりの vCPU の最小数と最大数。
-
メモリ — インスタンスあたりのメモリ GiBs の最小と最大。
-
ローカルストレージ – EBS ボリュームとインスタンスストアボリュームのどちらをローカルストレージに使用するか。
-
バースト可能なパフォーマンス – T4g、T3a、T3、および T2 タイプを含む T インスタンスファミリーを使用するかどうか。
インスタンスの要件を定義するには、多くのオプションを使用できます。各オプションの説明とデフォルト値については、InstanceRequirementsAmazon EC2 Auto Scaling API リファレンス」の「」を参照してください。
Auto Scaling グループは、インスタンスを起動する必要がある場合、指定した属性に一致し、そのアベイラビリティーゾーンで使用可能なインスタンスタイプを検索します。次に、割り当て戦略によって、どのインスタンスタイプを起動するかが決まります。デフォルトでは、属性ベースのインスタンスタイプの選択では、Auto Scaling グループが予算のしきい値を超えるインスタンスタイプを起動できないように料金保護機能が有効になっています。
デフォルトでは、Auto Scaling グループの希望する容量を設定するときに、測定単位としてインスタンス数を使用します。つまり、各インスタンスは 1 ユニットとしてカウントされます。
あるいは、希望するキャパシティの値を vCPU の数またはメモリ量に設定することもできます。これを行うには、 の「希望する容量タイプ」ドロップダウンフィールド、 AWS Management Console または CreateAutoScalingGroup
または UpdateAutoScalingGroup
API オペレーションの DesiredCapacityType
プロパティを使用します。Amazon EC2 Auto Scaling は、必要な vCPU またはメモリ容量を満たすために必要なインスタンスの数を起動します。例えば、vCPUs を目的の容量タイプとして使用し、それぞれ 2 つの vCPUs を持つインスタンスを使用する場合、10 個の vCPUs の希望する容量は 5 つのインスタンスを起動します。これは、インスタンスの重みに代わる便利な方法です。
料金保護
料金保護を使用すると、Auto Scaling グループによって起動された EC2 インスタンスに対して支払う上限料金を指定できます。料金保護は、Auto Scaling グループが、指定した属性に適合した場合でも、高すぎると思われるインスタンスタイプを使用できないようにする機能です。
料金保護はデフォルトで有効になっており、オンデマンドインスタンスとスポットインスタンスの料金しきい値は異なります。Amazon EC2 Auto Scaling が新しいインスタンスを起動する必要がある場合、関連するしきい値を超える料金のインスタンスタイプは起動されません。
オンデマンド料金保護
オンデマンドインスタンスでは、指定したオンデマンド料金よりも高いパーセンテージで支払うことができる最大オンデマンド料金を定義します。特定されたオンデマンド料金は、指定した属性を持つ最低価格の現行世代の C、M、または R インスタンスタイプの料金です。
オンデマンド料金保護値が明示的に定義されていない場合は、特定されたオンデマンド料金よりも 20% 高いデフォルトの最大オンデマンド料金が使用されます。
スポット料金保護
デフォルトでは、Amazon EC2 Auto Scaling は最適なスポットインスタンス料金保護を自動的に適用し、幅広いインスタンスタイプから一貫して選択します。料金保護を手動で設定することもできます。ただし、Amazon EC2 Auto Scaling に任せることで、スポット容量が満たされる可能性を高めることができます。
料金保護は、次のいずれかのオプションを使用して手動で指定できます。料金保護を手動で設定する場合は、最初のオプションを使用することをお勧めします。
-
特定されたオンデマンド料金の割合 – 特定されたオンデマンド料金は、指定した属性を持つ最低価格の現行世代の C、M、または R インスタンスタイプの料金です。
-
識別されたスポット料金よりも高いパーセンテージ — 識別されたスポット料金は、指定した属性を持つ最低価格の現行世代の C、M、または R インスタンスタイプの料金です。スポット料金は変動する可能性があるため、このオプションの使用はお勧めしません。したがって、料金保護のしきい値も変動する可能性があります。
料金保護をカスタマイズする
料金保護のしきい値は、Amazon EC2 Auto Scaling コンソール、または AWS CLI または SDKsを使用してカスタマイズできます。
-
コンソールで、追加のインスタンス属性 のオンデマンド料金保護とスポット料金保護設定を使用します。
-
InstanceRequirements 構造で、オンデマンドインスタンスの料金保護しきい値を指定するには、
OnDemandMaxPricePercentageOverLowestPrice
プロパティを使用します。スポットインスタンスの料金保護のしきい値を指定するには、MaxSpotPriceAsPercentageOfOptimalOnDemandPrice
またはSpotMaxPricePercentageOverLowestPrice
プロパティを使用します。
希望する容量タイプ (DesiredCapacityType
) を vCPUs または Memory GiB に設定すると、インスタンスあたりの料金ではなく、vCPU あたりの料金またはメモリあたりの料金に基づいて料金保護が適用されます。
料金保護をオフにすることもできます。料金保護のしきい値を指定しない場合は、999999
などの高いパーセンテージ値を指定します。
注記
指定した属性に一致する現行世代の C、M、または R インスタンスタイプがない場合でも、料金保護は適用されます。一致するものが見つからなかった場合、識別される料金は、最低価格の現行世代のインスタンスタイプであるか、または属性に一致する最低価格の旧世代のインスタンスタイプで失敗します。
前提条件
-
起動テンプレートを作成する。詳細については、「Auto Scaling グループの起動テンプレートを作成する」を参照してください。
-
起動テンプレートがまだスポットインスタンスをリクエストしていないことを確認します。
属性ベースのインスタンスタイプ選択を使用して混合インスタンスグループを作成する (コンソール)
属性ベースのインスタンスタイプの選択を使用して混合インスタンスグループを作成するには、次の手順を実行します。ステップを効率的に進めるために、いくつかのオプションのセクションは省略されています。
ほとんどの汎用的なワークロードでは、必要な vCPU とメモリの数を指定すれば十分です。高度なユースケースでは、ストレージのタイプ、ネットワークインターフェイス、CPU の製造元、アクセラレーターのタイプなどの属性を指定できます。
混合インスタンスグループのベストプラクティスを確認するには、「」を参照してください設定の概要。
混合インスタンスグループを作成するには
https://console.aws.amazon.com/ec2/
でAmazon EC2 コンソールを開き、ナビゲーションペインで [Auto Scaling グループ] を選択します。 -
画面の上部のナビゲーションバーで、起動テンプレートを作成したときに使用したのと同じ AWS リージョン を選択します。
-
[Auto Scaling グループの作成] を選択します。
-
[起動テンプレートまたは起動設定を選択する] ページで [Auto Scaling グループ名] にAuto Scaling グループの名前を入力します。
-
起動テンプレートを選択するには、以下の手順を実行します。
-
[起動テンプレート] で、既存の起動テンプレートを選択します。
-
[起動テンプレートのバージョン] で、スケールアウト時に Auto Scaling グループで使用する起動テンプレートのバージョン (デフォルト、最新、または特定のバージョン) を選択します。
-
起動テンプレートが、使用する予定のすべてのオプションをサポートしていることを確認し、[次へ] を選択します。
-
-
[インスタンス起動オプションを選択] ページで、次を実行します。
-
[Instance type requirements] (インスタンスタイプの要件) で、[Override launch template] (起動テンプレートを上書きする) を選択します。
注記
vCPU やメモリなどのインスタンス属性のセットが既に含まれている起動テンプレートを選択した場合は、インスタンス属性が表示されます。これらの属性は Auto Scaling グループのプロパティに追加され、Amazon EC2 Auto Scaling コンソールからいつでも更新できます。
-
[Specify instance attributes] (インスタンスの属性を指定する) で、まず vCPU とメモリの要件を入力します。
-
[vCPUs] に、希望する vCPU の最小数と最大数を入力します。制限なしを指定するには、[No minimum] (最小値なし)、[No maximum] (最大値なし)、または両方を選択します。
-
[Memory (GiB)] (メモリ (GiB)) に、希望するメモリの最小値と最大値を入力します。制限なしを指定するには、[No minimum] (最小値なし)、[No maximum] (最大値なし)、または両方を選択します。
-
-
(オプション) [Additional instance attributes] (その他のインスタンス属性) では、オプションで 1 つ以上の属性を指定して、コンピューティング要件をより詳細に表現できます。追加の属性は、リクエストにさらに制約を追加します。
-
プレビューマッチングインスタンスタイプを展開して、指定した属性を持つインスタンスタイプを表示します。
-
[インスタンスの購入オプション] の [インスタンスの分散] で、オンデマンドインスタンスとスポットインスタンスとして起動するグループの割合をそれぞれ指定します。アプリケーションが、ステートレスでフォールトトレラントであり、中断されるインスタンスを扱える場合は、より高い割合のスポットインスタンスを指定できます。
-
(オプション) スポットインスタンスの割合を指定するときは、[オンデマンドベースキャパシティを含める] を選択してから、オンデマンドインスタンスによって満たされる必要がある Auto Scaling グループの最小初期キャパシティを指定します。ベースキャパシティーを超える場合は、[Instances distribution] (インスタンスの分散) 設定を使用して、起動するオンデマンドインスタンスとスポットインスタンスの数を決定します。
-
[Allocation strategies] (配分戦略) の[Lowest price] (最低価格) は、[On-Demand allocation strategy] (オンデマンドの配分戦略) によって自動的に選択され、変更できません。
-
[Spot allocation strategy] (スポット配分戦略) で、配分戦略を選択します。デフォルトでは、[Price capacity optimized] (価格のキャパシティの最適化) が選択されています。[Lowest price] (最低価格) はデフォルトでは非表示になっており、[Show all strategies] (すべての戦略を表示) を選択した場合にのみ表示されます。[最低料金] を選択した場合は、[最低料金のプール] に、分散する最低料金のプールの数を入力します。
-
[容量の再分散] で、容量の再分散を有効にするか無効にするかを選択します。キャパシティの再調整を使用すると、スポットインスタンスがスポットの中断によって終了に近づいたときに自動的に応答します。詳細については、「キャパシティの再調整を使用して Amazon EC2 スポットの中断に対処する」を参照してください。
-
[Network] (ネットワーク) の下にある [VPC] で、VPC を選択します。Auto Scaling グループは、起動テンプレートで指定したセキュリティグループと、同じ VPC 内に作成する必要があります。
-
[Availability Zones and subnets] (アベイラビリティーゾーンとサブネット) で、指定した VPC 内のサブネットを 1 つ以上選択します。複数のアベイラビリティーゾーンのサブネットを使用することで、高可用性を得られます。詳細については、「VPC サブネットを選択する場合の考慮事項」を参照してください。
-
[次へ]、[次へ] を選択します。
-
-
[Configure group size and scaling policies] (グループサイズとスケーリングポリシーを設定する) ステップでは、以下の手順を実行します。
-
インスタンス以外の単位で希望する容量を測定するには、グループサイズ 、希望する容量タイプ に適切なオプションを選択します。[Units] (ユニット)、[vCPUs]、および [Memory GiB] (メモリ GiB) がサポートされています。デフォルトで、Amazon EC2 Auto Scaling は [Units] (ユニット) を指定します。これはインスタンスの数になります。
-
希望する容量 の場合、Auto Scaling グループの初期サイズ。
-
スケーリングセクションのスケーリング制限 で、希望する容量の新しい値が希望する最小容量と希望する最大容量 より大きい場合、希望する最大容量は自動的に新しい希望する容量値に増加します。これらの制限は必要に応じて変更できます。詳細については、「Auto Scaling グループのスケーリング制限を設定する」を参照してください。
-
-
[Skip to review] を選択します。
-
[Review (レビュー)]ページで、[Create Auto Scaling group (Auto Scaling グループを作成)] を選択します。
属性ベースのインスタンスタイプ選択を使用して混合インスタンスグループを作成する (AWS CLI)
コマンドラインを使用して混合インスタンスグループを作成するには
以下のいずれかのコマンドを使用します。
-
create-auto-scaling-group (AWS CLI)
-
新しい AS AutoScalingグループ (AWS Tools for Windows PowerShell)
設定例
AWS CLIを使用して、属性ベースのインスタンスタイプを選択した Auto Scaling グループを作成するには、次の create-auto-scaling-group コマンドを使用します。
次のインスタンス属性が指定されています。
-
VCpuCount
— インスタンスタイプには、4 個以上、最大 8 個の vCPU が必要です。 -
MemoryMiB
– インスタンスタイプには最低 16,384 MiB のメモリが必要です。 -
CpuManufacturers
— インスタンスタイプには、インテル製の CPU が必要です。
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":, "MaxSize":
0
, "DesiredCapacity":
100
, "DesiredCapacityType": "units", "VPCZoneIdentifier": "
4
subnet-5ea0c127
,subnet-6194ea3b
,subnet-c934b782
" }
vCPU の数またはメモリーの総量として、希望するキャパシティー値を設定するには、ファイルで "DesiredCapacityType": "vcpu"
または "DesiredCapacityType": "memory-mib"
を指定します。希望するキャパシティータイプのデフォルトは units
で、これはインスタンスの数を、希望するキャパシティー値として設定します。
または、次の create-auto-scaling-group
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
で、これはインスタンスの数を、希望するキャパシティー値として設定します。
インスタンスタイプをプレビューする
インスタンスを起動することなくコンピューティング要件に一致するインスタンスタイプをプレビューでき、必要に応じて要件を調整できます。Amazon EC2 Auto Scaling コンソールで Auto Scaling グループを作成すると、[Choose instance launch options] (インスタンス起動オプションを選択) ページの [Preview matching instance types] (一致するインスタンスタイプのプレビュー) セクションに、インスタンスタイプのプレビューが表示されます。
または、 AWS CLI または SDK を使用して Amazon EC2 GetInstanceTypesFromInstanceRequirements API コールを行うことで、インスタンスタイプをプレビューすることもできます。Auto Scaling グループの作成または更新のリクエストの中で、正しい形式で InstanceRequirements
パラメーターを渡します。詳細については、「Amazon EC2 ユーザーガイド」の「指定された属性を持つインスタンスタイプのプレビュー」を参照してください。 Amazon EC2
関連リソース
属性ベースのインスタンスタイプの選択の詳細については、 AWS ブログのEC2 Auto Scaling と EC2 フリートの属性ベースのインスタンスタイプの選択
AWS CloudFormationを使用して Auto Scaling グループを作成する際に、属性ベースのインスタンスタイプの選択を宣言できます。詳細については、「AWS CloudFormation ユーザーガイド」の「Auto Scaling テンプレートスニペット」セクションのサンプルスニペットを参照してください。