Amazon Elastic Compute Cloud
Linux インスタンス用ユーザーガイド

プレイスメントグループ

インスタンスを基盤となるハードウェアに配置する方法を決定するプレイスメントグループで、インスタンスを起動または開始できます。プレイスメントグループを作成するときは、グループの次のいずれかの戦略を指定します。

  • クラスター – 2 つのインスタンスを単一のアベイラビリティーゾーン内の低レイテンシーグループにクラスター化する

  • パーティション – インスタンスを複数の論理パーティションに分散させ、基盤となるハードウェアを 1 つのパーティション内のインスタンスが他のパーティション内のインスタンスと共有しないようにします。

  • スプレッド – 基盤となるハードウェアにインスタンスを分散する

プレイスメントグループを作成するための料金は発生しません。

クラスタプレイスメントグループ

クラスタープレイスメントグループは、単一のアベイラビリティーゾーン内のインスタンスを論理的にグループ化したものです。プレイスメントグループは、同じリージョン内のピア VPC にまたがることができます。クラスタープレイスメントグループの主な利点は、10 Gbps のフロー制限に加えて、非ブロッキング、非オーバーサブスクライブの完全に 2 分割されている接続であることです。つまり、プレイスメントグループ内のすべてのノードは、プレイスメントグループ内の他のすべてのノードと対話することができます。これは、オーバーサブスクリプションによる遅れなしに、10 Gpbs フローと 25 アグリゲートのフルラインレートで行われます。

次の図は、クラスタープレイスメントグループに配置されたインスタンスを示しています。


                クラスタープレイスメントグループ

低ネットワークレイテンシー、高ネットワークスループット、またはその両方から利点が得られるアプリケーションや、ネットワークトラフィックの大部分がグループのインスタンス間で発生する場合は、クラスタープレイスメントグループが推奨されます。プレイスメントグループで、最も低いレイテンシーと最も高いネットワークパフォーマンス (1 秒あたりパケット数) を実現するためには、拡張ネットワーキングをサポートするインスタンスタイプを選択します。詳細については、「拡張ネットワーキング」を参照してください。

単一の起動リクエストでは、プレイスメントグループ内で必要な数のインスタンスを起動することと、プレイスメントグループ内のすべてのインスタンスで同じインスタンスタイプを使用することをお勧めします。後でプレイスメントグループにさらにインスタンスを追加しようとした場合、またはプレイスメントグループ内で複数のインスタンスタイプを起動しようとした場合、容量不足エラーが発生する可能性が高くなります。

プレイスメントグループ内のインスタンスを停止して再起動しても、そのインスタンスは同じプレイスメントグループ内で実行されます。ただし、インスタンスに対して十分な容量がない場合、起動は失敗します。

既にインスタンスを実行中のプレイスメントグループ内のインスタンスを起動するときに容量エラーを受け取った場合は、プレイスメントグループ内のすべてのインスタンスを停止して開始し、もう一度起動を試みてください。インスタンスを再起動すると、リクエストされたすべてのインスタンスの容量があるハードウェアに移行される場合があります。

パーティションプレイスメントグループ

パーティションプレイスメントグループは、パーティションにまたがって分散されているインスタンスのグループです。パーティションはインスタンスの論理的なグループです。含まれている複数のインスタンスは、さまざまなパーティションにまたがる同一の基盤ハードウェアを共有しません。

次の図は パーティション 1パーティション 2パーティション 3 という 3 つのパーティションを持つパーティションプレイスメントグループに配置された、1 つのアベイラビリティーゾーン内のインスタンスを示しています。各パーティションは複数のインスタンスで構成されています。各パーティション内のインスタンスは、他のパーティション内のインスタンスと基盤となるハードウェアを共有しないため、ハードウェア障害の影響は 1 つのパーティションに限定されます。


                7 つのパーティションを持つパーティションプレイスメントグループ

パーティションプレイスメントグループを使用すると、HDFS、HBase、Cassandra などの大規模な分散および複製ワークロードのデプロイを個々のハードウェアに分散して関連する障害の可能性を低減することができます。インスタンスをパーティションプレイスメントグループに起動すると、Amazon EC2 は、指定したパーティション数全体にインスタンスを均等に分散しようとします。インスタンスを特定のパーティションに起動して、インスタンスの配置場所をより細かく制御することもできます。

また、パーティションプレイスメントグループを使用するとパーティションを表示できます。そのため、どのインスタンスがどのパーティションにあるかを確認できます。この情報は HDFS、HBase、Cassandra などのトポロジー対応アプリケーションと共有できます。アプリケーションはこの情報を使用してインテリジェントなデータレプリケーションに関する決断を下し、データの可用性と耐久性を向上します。

パーティションプレイスメントグループは、アベイラビリティーゾーンごとに最大 7 つのパーティションを持つことができます。パーティションプレイスメントグループで起動できるインスタンス数の制限は、アカウントの制限のみです。パーティションプレイスメントグループを、1 つのリージョンの複数のアベイラビリティーゾーンに分散させることもできます。

パーティションプレイスメントグループでインスタンスを開始または起動し、リクエストを実行するための固有のハードウェアが不足している場合、そのリクエストは失敗します。Amazon EC2 では、時間の経過とともにより別のハードウェアを利用できるようになりますので、後でリクエストを再試行できます。

現在、パーティションプレイスメントグループは API または AWS CLI を通じてのみ使用できます。

スプレッドプレイスメントグループ

スプレッドプレイスメントグループは、それぞれ異なるハードウェアに配置されるインスタンスのグループです。

次の図は、1 つのアベイラビリティーゾーン内の、スプレッドプレイスメントグループに配置された 7 つのインスタンスを示しています。インスタンスは、基盤となるハードウェアを互いに共有しません。


                スプレッドプレイスメントグループ

スプレッドプレイスメントグループは、少数の重要なインスタンスが互いに分離して保持される必要があるアプリケーションに推奨されます。スプレッドプレイスメントグループでインスタンスを起動すると、インスタンスが同じ基本ハードウェアを共有するときに発生する可能性のある、同時障害のリスクが軽減されます。スプレッドプレースメントグループは、異なるハードウェアへのアクセスを提供するため、長時間のインスタンスタイプの混合やインスタンスの起動に適しています。

スプレッドプレイスメントグループは複数のアベイラビリティーゾーンにまたがることができ、グループごとにアベイラビリティーゾーンごとに最大 7 つの実行インスタンスを持つことができます。

スプレッドプレイスメントグループでインスタンスを開始または起動し、リクエストを実行するための固有のハードウェアが不足している場合、そのリクエストは失敗します。Amazon EC2 では、時間の経過とともにより別のハードウェアを利用できるようになりますので、後でリクエストを再試行できます。

プレイスメントグループのルールと制限

一般的なルールと制限

プレイスメントグループを使用する前に、次のルールに注意してください。

  • プレイスメントグループに指定する名前は、そのリージョンの AWS アカウント内で固有である必要があります。

  • プレイスメントグループをマージすることはできません。

  • インスタンスは、1 つのプレイスメントグループ内で一度に起動できます。複数のプレイスメントグループにまたがることはできません。

  • リザーブドインスタンス は、特定のアベイラビリティーゾーンの EC2 インスタンスに対してキャパシティーを予約します。キャパシティーの予約で、プレイスメントグループ内のインスタンスで使用できます。ただし、プレイスメントグループに対して明示的にキャパシティーを予約することはできません。

  • テナンシー host を持つインスタンスは、プレイスメントグループ内で起動できません。

  • 拡張ネットワークが可能なインスタンスの場合、同じリージョン内でのインスタンス間では、IPv4 または IPv6 アドレスで指定されたシングルフロートラフィックに最大 5 Gbps、マルチフロートラフィックに最大 25 Gbps を使用できます。フローは、1 つのポイントツーポイントネットワーク接続を表します。

クラスタープレイスメントグループのルールと制限

クラスタープレイスメントグループには、以下のルールが適用されます。

  • クラスタープレイスメントグループにインスタンスを起動するときに使用できるインスタンスタイプは、次に示すもののみです。

    • 汎用: A1、M4、M5、M5a、および M5d

    • コンピューティングの最適化: C3、C4、C5、C5d、C5n、および cc2.8xlarge

    • メモリ最適化: cr1.8xlarge、R3、R4、R5、R5a、R5d、X1、X1e、および z1d

    • ストレージを最適化: D2、H1、hs1.8xlarge、I2、および I3

    • 高速コンピューティング: F1、G2、G3、P2、P3

  • クラスタープレイスメントグループを、複数のアベイラビリティーゾーンで設定することはできません。

  • クラスタープレイスメントグループの 2 つのインスタンス間のトラフィックの最大ネットワークスループット速度は、2 つのインスタンスのうち遅い方に制限されます。高スループットの要件があるアプリケーションの場合、要件に適合するネットワーク接続を備えたインスタンスタイプを選択します。

  • 拡張ネットワーキングに対して有効になっているインスタンスには、以下のルールが適用されます。

    • クラスタープレイスメントグループ内のインスタンス間では、シングルフロートラフィックに最大 10 Gbps を使用できます。

    • 同じリージョン内でのインスタンスと Amazon S3 バケットとの間では、パブリック IP アドレス空間または VPC エンドポイントを介したトラフィックに、使用可能なすべてのインスタンスの集計帯域幅を使用できます。

  • 複数のインスタンスタイプをクラスタープレイスメントグループに起動できます。ただし、これにより起動に成功するために必要な容量が使用可能になる可能性が低くなります。クラスタープレイスメントグループ内ですべてのインスタンスで同じインスタンスタイプを使用することをお勧めします。

  • インターネットへのネットワークトラフィックとオンプレミスリソースへの AWS Direct Connect 接続は、5 Gbps に制限されます。

パーティションプレイスメントグループのルールと制限

パーティションプレイスメントグループには、以下のルールが適用されます。

  • パーティションプレイスメントグループは、アベイラビリティーゾーンごとに最大 7 つのパーティションをサポートします。パーティションプレイスメントグループで起動できるインスタンス数の制限は、アカウントの制限のみです。

  • パーティションプレイスメントグループでインスタンスが起動されると、Amazon EC2 はインスタンスをすべてのパーティションに均等に分散しようとします。Amazon EC2 では、すべてのパーティションにインスタンスが均等に分散されるとは限りません。

  • ハードウェア専有インスタンス を持つパーティションプレイスメントグループは、最大 2 つのパーティションを持つことができます。

  • パーティションプレイスメントグループは Dedicated Hosts ではサポートされません。

  • 現在、パーティションプレイスメントグループは API または AWS CLI を通じてのみ使用できます。

スプレッドプレイスメントグループのルールと制限

スプレッドプレイスメントグループには、以下のルールが適用されます。

  • スプレッドプレイスメントグループは、アベイラビリティーゾーンごとに最大 7 つの実行インスタンスをサポートします。たとえば、アベイラビリティーゾーンが 3 つあるリージョンでは、グループ内に合計 21 個のインスタンス (ゾーンごとに 7 個) を実行することができます。同じアベイラビリティーゾーンと同じスプレッドプレイスメントグループで 8 番目のインスタンスを開始しようとすると、インスタンスは起動しません。アベイラビリティーゾーンに 7 つ以上のインスタンスが必要な場合は、複数のスプレッドプレイスメントグループを使用することをお勧めします。これはグループ間のインスタンスの広がりを保証するものではありませんが、特定のクラスの障害からの影響を制限するために各グループの普及を保証します。

  • ハードウェア専有インスタンス または Dedicated Hosts では、スプレッドプレイスメントグループはサポートされていません。

プレイスメントグループの作成

Amazon EC2 コンソールまたはコマンドラインを使用して、プレイスメントグループを作成できます。

プレイスメントグループを作成するには (コンソール)

  1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。

  2. ナビゲーションペインで、[Placement Group]、[Create Placement Group] の順に選択します。

  3. グループの名前と戦略を指定します。

    注記

    パーティションプレイスメントグループを指定するには、AWS CLI を使用します。

  4. [Create] を選択します。

プレイスメントグループを作成するには (コマンドライン)

パーティションプレイスメントグループを作成するには (AWS CLI)

  • create-placement-group コマンドを使用して、partition 値を持つ --strategy パラメータと --partition-count パラメータを指定します。この例では、パーティションプレイスメントグループは HDFS-Group-A という名で、パーティションは 5 つ作成されています。

    aws ec2 create-placement-group --group-name HDFS-Group-A --strategy partition --partition-count 5

プレイスメントグループでのインスタンスの起動

プレイスメントグループで起動するインスタンスに特化した AMI を作成できます。これを行うには、インスタンスを起動し、インスタンスに必要なソフトウェアとアプリケーションをインストールします。次に、インスタンスから AMI を作成します。詳細については、Amazon EBS-Backed Linux AMI の作成を参照してください。

プレイスメントグループにインスタンスを起動するには (コンソール)

  1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。

  2. ナビゲーションペインで、[インスタンス] を選択します。

  3. [インスタンスの作成] を選択します。指示どおりにウィザードを完了し、次の操作を行うように注意します。

    • [Choose an Amazon Machine Image (AMI)] ページで、AMI を選択します。作成した AMI を選択するには、[My AMIs] を選択します。

    • [Choose an Instance Type] ページはで、プレイスメントグループ内で起動できるインスタンスタイプを選択します。

    • [Configure Instance Details] で、このプレイスメントグループ内で必要になるインスタンスの総数を入力します。これは、後でプレイスメントグループにインスタンスを追加できない場合があるためです。

    • [Configure Instance Details] ページで、[Placement Group] から、作成したプレイスメントグループを選択します。このページで [Placement group] リストが表示されない場合は、このオプションは他では利用できないため、プレイスメントグループで起動できるインスタンスタイプを選択していることを確認してください。

プレイスメントグループにインスタンスを起動するには (コマンドライン)

  1. 次のコマンドのいずれかを使用して、インスタンス用の AMI を作成します。

  2. 次のオプションのいずれかを使用して、プレイスメントグループでインスタンスを起動します。

パーティションプレイスメントグループの特定のパーティションでインスタンスを起動するには (AWS CLI)

  • run-instances コマンドを使用して、--placement "GroupName = HDFS-Group-A, PartitionNumber = 3" パラメータを使用するグループプレイスメントグループ名とパーティションを指定します。この例では、パーティションプレイスメントグループは HDFS-Group-A という名で、パーティション数は 3 です。

    aws ec2 run-instances --placement "GroupName = HDFS-Group-A, PartitionNumber = 3"

プレイスメントグループのインスタンスを説明する

Amazon EC2 コンソールまたはコマンドラインを使用して、インスタンスのプレイスメントグループに関する情報を表示できます。プレイスメントグループはコンソールを使用して確認できます。パーティションプレイスメントグループ内のインスタンスのパーティション番号は、現在 API または AWS CLI を使用してのみ表示できます。

インスタンスのプレイスメントグループを表示するには (コンソール)

  1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。

  2. ナビゲーションペインで、[インスタンス] を選択します。

  3. インスタンスを選択し、詳細ペインの [プレイスメントグループ] を確認します。プレイスメントグループにインスタンスがない場合、フィールドは空になります。それ以外の場合は、プレイスメントグループ名が表示されます。

パーティションプレイスメントグループのインスタンスのパーティション番号を表示するには (AWS CLI)

  • describe-instancesコマンドを使用して --instance-id パラメータを指定します。

    aws ec2 describe-instances --instance-id i-0123a456700123456

    レスポンスにはプレイスメント情報が含まれています。この情報にはインスタンスのプレイスメントグループ名とパーティション番号が含まれます。

    "Placement": { "AvailabilityZone": "us-east-1c", "GroupName": "HDFS-Group-A", "PartitionNumber": 3, "Tenancy": "default" }

特定のパーティションプレイスメントグループとパーティション番号のインスタンスにフィルターを適用するには (AWS CLI)

  • describe-instances コマンドを使用して、placement-group-name および placement-partition-number フィルターを持つ --filters パラメータを指定します。この例では、パーティションプレイスメントグループは HDFS-Group-A という名で、パーティション数は 7 です。

    aws ec2 describe-instances --filters "Name = placement-group-name, Values = HDFS-Group-A" "Name = placement-partition-number, Values = 7"

    レスポンスは、指定されたプレイスメントグループ内の指定されたパーティション内にあるすべてのインスタンスをリストします。次の出力例は、返されたインスタンスのインスタンス ID、インスタンスタイプ、および配置情報のみを示しています。

    "Instances": [ { "InstanceId": "i-0a1bc23d4567e8f90", "InstanceType": "r4.large", }, "Placement": { "AvailabilityZone": "us-east-1c", "GroupName": "HDFS-Group-A", "PartitionNumber": 7, "Tenancy": "default" } { "InstanceId": "i-0a9b876cd5d4ef321", "InstanceType": "r4.large", }, "Placement": { "AvailabilityZone": "us-east-1c", "GroupName": "HDFS-Group-A", "PartitionNumber": 7, "Tenancy": "default" } ],

インスタンスのプレイスメントグループの変更

プレイスメントグループへの既存のインスタンスの移動、別のプレイスメントグループへのインスタンスの移動、またはプレイスメントグループからのインスタンスの削除を行うことができます。開始する前に、インスタンスの状態が stopped である必要があります。

コマンドラインまたは AWS SDK を使用したインスタンスのプレイスメントグループを変更できます。

プレイスメントグループにインスタンスを移動するには (コマンドライン)

  1. 次のいずれかのコマンドを使用して、インスタンスを停止します。

  2. modify-instance-placement コマンド (AWS CLI) を使用し、インスタンスの移動先のプレイスメントグループの名前を指定します。

    aws ec2 modify-instance-placement --instance-id i-0123a456700123456 --group-name MySpreadGroup

    または、Edit-EC2InstancePlacement コマンド (AWS Tools for Windows PowerShell) を使用することもできます。

  3. 次のいずれかのコマンドを使用して、インスタンスを再起動します。

プレイスメントグループからインスタンスを削除するには (コマンドライン)

  1. 次のいずれかのコマンドを使用して、インスタンスを停止します。

  2. modify-instance-placement コマンド (AWS CLI) を使用し、グループ名の空の文字列を指定します。

    aws ec2 modify-instance-placement --instance-id i-0123a456700123456 --group-name ""

    または、Edit-EC2InstancePlacement コマンド (AWS Tools for Windows PowerShell) を使用することもできます。

  3. 次のいずれかのコマンドを使用して、インスタンスを再起動します。

プレイスメントグループを削除する

プレイスメントグループを交換する必要がある場合、または不要になった場合は、そのプレイスメントグループを削除できます。プレイスメントグループを削除する前に、プレイスメントグループに起動したすべてのインスタンスを削除するか、別のプレイスメントグループに移動する必要があります。

インスタンスを終了または移動するか、プレイスメントグループを削除するには (コンソール)

  1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。

  2. ナビゲーションペインで、[インスタンス] を選択します。

  3. プレイスメントグループのすべてのインスタンスを選択して終了しますインスタンスを終了する前に、そのインスタンスがプレイスメントグループ内にあることを確認できます。そのためには、詳細ペインで [Placement Group] の値をチェックします。

    または、「インスタンスのプレイスメントグループの変更」のステップに従い、インスタンスを別のプレイスメントグループに移動します。

  4. ナビゲーションペインで、[Placement Groups] を選択します。

  5. プレイスメントグループを選択し、[Delete Placement Group] を選択します。

  6. 確認を求めるメッセージが表示されたら、[削除] を選択します。

インスタンスを終了し、プレイスメントグループを削除するには (コマンドライン)

次のいずれかのコマンドセットを使用できます。これらのコマンドラインインターフェイスの詳細については、Amazon EC2 へのアクセス を参照してください。