インスタンスタイプを手動で選択して混合インスタンスグループを作成する - Amazon EC2 Auto Scaling

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

インスタンスタイプを手動で選択して混合インスタンスグループを作成する

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

インスタンスタイプを選択する基準としてインスタンス属性を使用する場合は、「属性ベースのインスタンスタイプの選択を使用して混合インスタンスグループを作成する」を参照してください。

前提条件

混合インスタンスグループを作成する (コンソール)

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

混合インスタンスグループのベストプラクティスを確認するには、「混合インスタンスグループを作成するための設定の概要」を参照してください。

混合インスタンスグループを作成するには
  1. https://console.aws.amazon.com/ec2/ でAmazon EC2 コンソールを開き、ナビゲーションペインで [Auto Scaling グループ] を選択します。

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

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

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

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

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

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

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

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

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

    2. インスタンスタイプを選択します。まずはレコメンデーションを使用できます。デフォルトでは、[Family and generation flexible] (ファミリーと世代が柔軟) が選択されています。

      • インスタンスタイプの順序を変更するには、矢印を使用します。優先順位付けをサポートする配分戦略を選択した場合、インスタンスタイプの順序によって起動の優先順位が設定されます。

      • インスタンスタイプを削除するには、[X] を選択します。

      • (オプション) [重み] 列のボックスで、各インスタンスタイプに相対的な重みを割り当てます。これを行うには、そのタイプのインスタンスがグループの希望するキャパシティにカウントされるユニット数を入力します。これが便利なのは、インスタンスタイプ別に異なる vCPU、メモリ、ストレージ、またはネットワーク帯域幅の機能を設定する場合です。詳細については、「インスタンスの重みを使用するように Auto Scaling グループを設定する」を参照してください。

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

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

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

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

    6. [Spot allocation strategy] (スポット配分戦略) で、配分戦略を選択します。デフォルトでは、[Price capacity optimized] (価格のキャパシティの最適化) が選択されています。[Lowest price] (最低価格) はデフォルトでは非表示になっており、[Show all strategies] (すべての戦略を表示) を選択した場合にのみ表示されます。

      • [最低料金] を選択した場合は、[最低料金のプール] に、分散する最低料金のプールの数を入力します。

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

    7. [容量の再分散] で、容量の再分散を有効にするか無効にするかを選択します。キャパシティの再調整を使用すると、スポットインスタンスがスポットの中断によって終了に近づいたときに自動的に応答します。詳細については、「キャパシティの再調整を使用して Amazon EC2 スポットの中断に対処する」を参照してください。

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

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

    10. [次へ][次へ] を選択します。

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

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

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

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

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

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

混合インスタンスグループを作成する (AWS CLI)

コマンドラインを使用して混合インスタンスグループを作成するには

以下のいずれかのコマンドを使用します。

設定例

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

注記

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

例 1: capacity-optimized 割り当て戦略を使用して スポットインスタンス を起動する

次の [create-auto-scaling-group] コマンドは、以下を指定する Auto Scaling グループを作成します。

  • オンデマンドインスタンスとして起動するグループの割合 (0) と開始時のオンデマンドインスタンスのベース数 (1)

  • 優先度に従って起動するインスタンスタイプ (c5.largec5a.largem5.largem5a.largec4.largem4.largec3.largem3.large)。

  • インスタンスを起動するサブネット (subnet-5ea0c127subnet-6194ea3bsubnet-c934b782)。それぞれが異なるアベイラビリティーゾーンに対応します。

  • 起動テンプレート (my-launch-template) とそのバージョン ($Default)。

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

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" }

または、次の create-auto-scaling-group コマンドを使用して、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 割り当て戦略を使用して スポットインスタンス を起動する

次の [create-auto-scaling-group] コマンドは、以下を指定する Auto Scaling グループを作成します。

  • オンデマンドインスタンスとして起動するグループの割合 (0) と開始時のオンデマンドインスタンスのベース数 (1)

  • 優先度に従って起動するインスタンスタイプ (c5.largec5a.largem5.largem5a.largec4.largem4.largec3.largem3.large)。

  • インスタンスを起動するサブネット (subnet-5ea0c127subnet-6194ea3bsubnet-c934b782)。それぞれが異なるアベイラビリティーゾーンに対応します。

  • 起動テンプレート (my-launch-template) とそのバージョン ($Latest)。

Amazon EC2 Auto Scaling がオンデマンドキャパシティーを満たそうとするとき、まず c5.large インスタンスタイプを起動します。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", "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" }

または、次の create-auto-scaling-group コマンドを使用して、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 配分戦略を使用してスポットインスタンスを起動する

次の [create-auto-scaling-group] コマンドは、以下を指定する Auto Scaling グループを作成します。

  • オンデマンドインスタンスとして起動するグループの割合 (50)。(これは、開始時のオンデマンドインスタンスのベース数を指定するものではありません)。

  • 優先度に従って起動するインスタンスタイプ (c5.largec5a.largem5.largem5a.largec4.largem4.largec3.largem3.large)

  • インスタンスを起動するサブネット (subnet-5ea0c127subnet-6194ea3bsubnet-c934b782)。それぞれが異なるアベイラビリティーゾーンに対応します。

  • 起動テンプレート (my-launch-template) とそのバージョン ($Latest)。

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

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" }

または、次の create-auto-scaling-group コマンドを使用して、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

次の [create-auto-scaling-group] コマンドは、以下を指定する Auto Scaling グループを作成します。

  • オンデマンドインスタンスとして起動するグループの割合 (30)。(これは、開始時のオンデマンドインスタンスのベース数を指定するものではありません)。

  • 優先度に従って起動するインスタンスタイプ (c5.largec5a.largem5.largem5a.largec4.largem4.largec3.largem3.large)

  • インスタンスを起動するサブネット (subnet-5ea0c127subnet-6194ea3bsubnet-c934b782)。それぞれが異なるアベイラビリティーゾーンに対応します。

  • 起動テンプレート (my-launch-template) とそのバージョン ($Latest)。

Amazon EC2 Auto Scaling がオンデマンドキャパシティーを満たそうとするとき、まず c5.large インスタンスタイプを起動します。スポットキャパシティについては、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", "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" }

または、次の create-auto-scaling-group コマンドを使用して、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