SAA-048
HPCワークロードで、複数のEC2インスタンス間を低レイテンシー・高帯域のノード間通信で結びたいです。インスタンスの配置に関する設定として最も適したものはどれですか?
選択肢
解説と正解
解説と正解を読む(先に自分で回答してから開くのがおすすめです)
正解:A. クラスタープレイスメントグループにインスタンスを配置する
解説
クラスタープレイスメントグループは、単一のアベイラビリティーゾーン内でインスタンスを物理的に近接配置し、ノード間の低レイテンシーと高いネットワークスループットを実現します。HPCや密結合の分散計算に適した配置戦略です。
選択肢ごとの解説
A. クラスタープレイスメントグループにインスタンスを配置する
正解です。近接配置により、ノード間通信のレイテンシーを最小化し、インスタンス間の帯域を最大限に活用できます。
B. パーティションプレイスメントグループにインスタンスを配置する
パーティションプレイスメントグループは、大規模な分散システム(HDFSやCassandraなど)で、パーティション単位に障害の影響範囲を分離するための配置です。低レイテンシー通信が目的ではありません。
C. 複数のアベイラビリティーゾーンへインスタンスを分散し、Auto Scalingグループで管理する
アベイラビリティーゾーンをまたぐ分散は可用性を高めますが、AZ間の物理距離により通信レイテンシーは大きくなります。要件と逆方向の設計です。
D. スプレッドプレイスメントグループにインスタンスを配置する
スプレッドプレイスメントグループは、インスタンスを別々の物理ハードウェアへ分散して同時障害を避けるための配置です。可用性は上がりますが、ノード間のレイテンシーは改善しません。
実務での使いどころ
EC2 のプレイスメントグループは、インスタンスを基盤ハードウェア上のどこに配置するかを指定する仕組みで、クラスター・スプレッド・パーティションの 3 つの戦略がある。クラスタープレイスメントグループは、単一のアベイラビリティーゾーン内でインスタンスを物理的に近接配置し、ノード間のネットワークレイテンシーを最小化して帯域を最大化する。HPC、機械学習の分散学習、密結合な並列計算といった「ノード間通信が性能のボトルネックになる」ワークロードで使う。スプレッドプレイスメントグループは逆に、各インスタンスを異なるラック(電源・ネットワークが独立した単位)へ配置して同時障害を避ける戦略で、少数の重要なインスタンスを守る用途に向く。パーティションプレイスメントグループは、インスタンス群をパーティションという論理グループに分け、パーティション同士が同じラックを共有しないようにする戦略で、HDFS や Cassandra、Kafka のような大規模分散データストアの障害分離に使う。 設計上のトレードオフとして、クラスタープレイスメントグループは近接配置ゆえに単一 AZ 内に閉じ、同一の障害ドメインへ集中するため AZ 障害には弱い。可用性が必要なら、AZ をまたいだ複数のクラスターグループを用意するといった設計が必要になる。また、グループ内のインスタンスは同じインスタンスタイプで揃えて一度に起動するほうが容量を確保しやすく、後から追加すると容量不足のエラーが出ることがある。ネットワーク性能をさらに引き出す要素として、Elastic Network Adapter(ENA)や、より低遅延な Elastic Fabric Adapter(EFA)の利用、拡張ネットワーキングの有効化がある。 SAA-C03 では「HPC」「ノード間の低レイテンシー通信」「密結合な並列処理」という語が出たらクラスター、「重要なインスタンスを別々のハードウェアへ分散したい」ならスプレッド、「大規模分散データストアの障害分離」ならパーティション、という 3 択の読み分けが問われる。3 つの名前と目的の対応を取り違えないことがそのまま得点になる領域である。