クラスタープレイスメントグループでのキャパシティ予約 - Amazon Elastic Compute Cloud

クラスタープレイスメントグループでのキャパシティ予約

クラスタープレイスメントグループでキャパシティ予約を作成して、ワークロードの Amazon EC2 コンピューティング性能を予約できます。クラスタープレイスメントグループは、ネットワークレイテンシーが低く、ネットワークスループットが高いという利点があります。

クラスタープレイスメントグループでキャパシティ予約を作成すると、必要なときに、必要な期間中、クラスタープレイスメントグループのコンピューティング性能に確実にアクセスできるようになります。これは、コンピューティングのスケーリングを必要とする高パフォーマンス (HPC) ワークロードのキャパシティを予約するのに最適です。これにより、キャパシティを使用できる状態を維持しながらクラスターをスケールダウンできるため、必要に応じて再びスケールアップすることができます。

制限事項

クラスタープレイスメントグループでキャパシティ予約を作成する場合は、以下の点を常に考慮します。

  • 既存のキャパシティ予約がプレイスメントグループにない場合は、キャパシティ予約を変更してプレイスメントグループ内でキャパシティを予約することはできません。プレイスメントグループでキャパシティを予約するには、プレイスメントグループでキャパシティ予約を作成する必要があります。

  • プレイスメントグループでキャパシティ予約を作成した後、プレイスメントグループ外のキャパシティを予約するように変更することはできません。

  • プレイスメントグループの既存のキャパシティ予約を変更するか、プレイスメントグループに追加のキャパシティ予約を作成して、プレイスメントグループのリザーブドキャパシティを増やすことができます。ただし、容量不足エラーが発生する可能性が高くなります。

  • クラスタープレイスメントグループで作成されたキャパシティ予約を共有することはできません。

  • active 容量予約を持つクラスタープレイスメントグループは削除できません。クラスタープレイスメントグループ内のすべての容量予約を削除する前に、それらをキャンセルする必要があります。

クラスタープレイスメントグループでのキャパシティ予約の操作

クラスタープレイスメントグループでキャパシティ予約の使用を開始するには、次のステップを実行します。

注記

既存のクラスタープレイスメントグループでキャパシティ予約を作成する場合は、ステップ 1 をスキップします。次に、ステップ 2 と 3 で、既存のクラスタープレイスメントグループの ARN を指定します。既存のクラスタープレイスメントグループの ARN を確認する方法については、「プレイスメントグループ情報を表示する」を参照してください。

ステップ 1: (条件付き) キャパシティ予約で使用するクラスタープレイスメントグループを作成する

このステップは、新しいクラスタープレイスメントグループを作成する必要がある場合にのみ実行します。既存のクラスタープレイスメントグループを使用する場合は、このステップをスキップし、ステップ 2 と 3 で、そのクラスタープレイスメントグループの ARN を使用します。既存のクラスタープレイスメントグループの ARN を確認する方法については、「プレイスメントグループ情報を表示する」を参照してください。

クラスタープレイスメントグループは、次のいずれかの方法で作成できます。

Console
コンソールを使用してクラスタープレイスメントグループを作成するには
  1. Amazon EC2 コンソール (https://console.aws.amazon.com/ec2/) を開きます。

  2. ナビゲーションペインで、[Placement Groups] (プレイスメントグループ)、[Create placement group] (プレイスメントグループの作成) の順に選択します。

  3. [Name] (名前) で、プレイスメントグループのわかりやすい名前を指定します。

  4. [Placement strategy] (プレイスメント戦略) で、[Cluster] (クラスター) を選択します。

  5. [グループを作成] を選択します。

  6. [プレイスメントグループ] テーブルの [グループ ARN] 列で、作成したクラスタープレイスメントグループの ARN を書き留めます。これは次のステップで必要になります。

AWS CLI
AWS CLI を使用してクラスタープレイスメントグループを作成するには

create-placement-group コマンドを使用します。--group-name でプレイスメントグループのわかりやすい名前を指定し、--strategycluster を指定します。

次の例では、cluster プレイスメント戦略を使用する、MyPG という名前のプレイスメントグループを作成します。

$ aws ec2 create-placement-group \ --group-name MyPG \ --strategy cluster

コマンド出力で返されるプレイスメントグループ ARN は次のステップで必要となるので、メモしておいてください。

ステップ 2: クラスタープレイスメントグループでキャパシティ予約を作成する

キャパシティ予約を作成するのと同じ方法で、クラスタープレイスメントグループでキャパシティ予約を作成します。ただし、キャパシティ予約を作成するクラスタープレイスメントグループの ARN も指定する必要があります。詳細については、キャパシティーの予約 の作成 を参照してください。

考慮事項
  • 指定したクラスタープレイスメントグループは available 状態になっている必要があります。クラスタープレイスメントグループが pendingdeleting、または deleted 状態になっていると、リクエストは失敗します。

  • キャパシティ予約とクラスタープレイスメントグループが同じアベイラビリティーゾーンに存在している必要があります。キャパシティ予約を作成するリクエストで、クラスタープレイスメントグループのアベイラビリティーゾーンとは異なるアベイラビリティーゾーンが指定されている場合、リクエストは失敗します。

  • キャパシティ予約は、クラスタープレイスメントグループでサポートされているインスタンスタイプに対してのみ作成できます。サポートされていないインスタンスタイプを指定すると、リクエストは失敗します。詳細については、クラスタープレイスメントグループのルールと制限 を参照してください。

  • クラスタープレイスメントグループで open キャパシティ予約を作成し、一致する属性 (プレイスメントグループ ARN、インスタンスタイプ、アベイラビリティーゾーン、プラットフォーム、テナンシー) を持つ既存の実行中のインスタンスがある場合、それらのインスタンスはキャパシティ予約で自動的に実行されます。

  • 次のいずれかが当てはまる場合、キャパシティーの予約 を作成するリクエストは失敗する可能性があります。

    • Amazon EC2 には、リクエストに対応する十分なキャパシティ-がありません。時間をおいてからもう一度試すか、別のアベイラビリティーゾーンを試すか、キャパシティ-を小さくしてみてください。インスタンスタイプとサイズに応じてワークロードに柔軟性がある場合は、別のインスタンス属性を試してみてください。

    • リクエストされた数量は、選択したインスタンスファミリーに対するオンデマンドインスタンスの上限を超えています。インスタンスファミリーに対するオンデマンドインスタンスの上限を上げて、もう一度試してください。詳細については、オンデマンドインスタンスクォータ を参照してください。

次のいずれかの方法で、クラスタープレイスメントグループでキャパシティ予約を作成できます。

Console
コンソールを使用して キャパシティーの予約 を作成するには
  1. Amazon EC2 コンソール (https://console.aws.amazon.com/ec2/) を開きます。

  2. [キャパシティ予約]、[作成キャパシティ予約] の順に選択します。

  3. [キャパシティ予約を作成] ページで、必要に応じてインスタンスタイプ、プラットフォーム、アベイラビリティーゾーン、テナンシー、数量、および終了日を指定します。

  4. [プレイスメントグループ] で、キャパシティ予約が作成されるクラスタープレイスメントグループの ARN を選択します。

  5. [Create] (作成) を選択します。

詳細については、キャパシティーの予約 の作成 を参照してください。

AWS CLI
AWS CLI を使用してキャパシティ予約を作成するには

create-capacity-reservation コマンドを使用します。--placement-group-arn で、キャパシティ予約が作成されるクラスタープレイスメントグループの ARN を指定します。

$ aws ec2 create-capacity-reservation \ --instance-type instance_type \ --instance-platform platform \ --availability-zone az \ --instance-count quantity \ --placement-group-arn placement_group_ARN

詳細については、キャパシティーの予約 の作成 を参照してください。

ステップ 3: クラスタープレイスメントグループでインスタンスを起動する

キャパシティ予約でインスタンスを起動するのと同じ方法で、クラスタープレイスメントグループのキャパシティ予約でインスタンスを起動します。ただし、インスタンスを起動するクラスタープレイスメントグループの ARN も指定する必要があります。詳細については、キャパシティーの予約 の作成 を参照してください。

考慮事項
  • キャパシティ予約が open の場合は、インスタンスの起動リクエストでキャパシティ予約を指定する必要はありません。インスタンスに、指定したプレイスメントグループのキャパシティ予約に一致する属性 (プレイスメントグループ ARN、インスタンスタイプ、アベイラビリティーゾーン、プラットフォーム、テナンシー) がある場合、インスタンスはキャパシティ予約で自動的に実行されます。

  • キャパシティ予約がターゲットインスタンスの起動のみを受け入れる場合は、リクエストでクラスタープレイスメントグループに加えてターゲットキャパシティ予約を指定する必要があります。

  • キャパシティ予約がキャパシティ予約グループに含まれる場合は、リクエストでクラスタープレイスメントグループに加えてターゲットキャパシティ予約グループを指定する必要があります。詳細については、キャパシティーの予約 グループの操作 を参照してください。

次のいずれかの方法で、クラスタープレイスメントグループのキャパシティ予約でインスタンスを起動できます。

Console
コンソールを使用して既存の キャパシティーの予約 でインスタンスを起動するには
  1. 手順に従ってインスタンスを起動しますが、次のステップを完了してプレイスメントグループとキャパシティ予約の設定を指定するまでインスタンスを起動しないでください。

  2. [高度な詳細] を展開し、以下の操作を行います。

    1. [プレイスメントグループ] で、インスタンスを起動するクラスタープレイスメントグループを選択します。

    2. [Capacity Reservation] (キャパシティ予約) で、キャパシティ予約の設定に応じて、次のいずれかのオプションを選択します。

      • [開く] — 一致する属性と十分なキャパシティを持つ、クラスタープレイスメントグループの open キャパシティ予約でインスタンスを起動します。

      • [ID 別のターゲット] — ターゲットインスタンスの起動のみを受け入れるキャパシティ予約でインスタンスを起動します。

      • [グループ別のターゲット] — 選択したキャパシティ予約グループ内で一致する属性と使用可能なキャパシティを持つ任意のキャパシティ予約にインスタンスを起動します。

  3. [Summary] (概要) パネルでインスタンスの設定を確認し、[Launch instance] (インスタンスを起動) を選択します。詳細については、「新しいインスタンス起動ウィザードを使用してインスタンスを起動する」を参照してください。

詳細については、「既存の キャパシティーの予約 へのインスタンスの起動」を参照してください。

AWS CLI
AWS CLI を使用して既存のキャパシティ予約でインスタンスを起動するには

run-instances コマンドを使用します。特定のキャパシティ予約またはキャパシティ予約グループをターゲットにする必要がある場合は、--capacity-reservation-specification パラメータを指定します。--placement で、GroupName パラメータを指定し、前のステップで作成したプレイスメントグループの名前を指定します。

次のコマンドでは、クラスタープレイスメントグループの targeted キャパシティ予約でインスタンスが起動されます。

$ aws ec2 run-instances \ --image-id ami_id \ --count quantity \ --instance-type instance_type \ --key-name key_pair_name \ --subnet-id subnetid \ --capacity-reservation-specification CapacityReservationTarget={CapacityReservationId=capacity_reservation_id} \ --placement "GroupName=cluster_placement_group_name"

詳細については、既存の キャパシティーの予約 へのインスタンスの起動 を参照してください。