プログラミング勉強日記
2021年5月28日
以前の記事で簡単にどんなものかを紹介したが、今日はプレイスメントグループについてきちんと理解する。
プレイスメントグループとは
複数のインスタンスを論理的にグループ化して、パフォーマンスの向上・耐障害性を高める機能のこと。クラスタープレイスメントグループ、パーティションプレイスメントグループ、スプレッドプレイスメントグループの3つの種類がある。
クラスタープレイスメントグループは主にパフォーマンスを向上させるためのもので、パーティションプレイスメントグループとスプレッドプレイスメントグループが耐障害性を高めるもの。
クラスタープレイスメントグループは、1つのAZ内のインスタンスを複数のグループにまとめる。パーティションプレイスメントグループはインスタンスをグループにまとめるときに、いくつかのパーティションに分ける。(9台のインスタンスを3つのパーティションに分けるような感じ)スプレッドプレイスメントグループは、パーティションと同様にセグメント分けする。1台につき1つのセグメントを割り当てる。
プレイスメントグループのタイプ
クラスタープレイスメントグループ
一般的に使われるもので、単一AZ内のインスタンスを論理的にグループ化したインスタンスのプレイスメントグループ。
同じリージョン内の複数のVPCにまたがることができる。グループ内のインスタンスは、TCP/IPトラフィックのフロー当たりのスループット上限が高くなって、ネットワークの帯域幅が上がる。これによって、インスタンス間通信を向上できる。そのため、インスタンス間通信のパフォーマンスを上げたい場合に選択する。
他にも、低いネットワークレイテンシー、高いネットワークスループットを実現するアプリ向けの構成になっている。
パーティションプレイスメントグループ
障害に対応するためのプレイスメントグループで、グループをパーティションと呼ばれる論理的なセグメントに分割する。
それぞれのパーティションが一連のラックという単位で構成される。プレイスメントグループ内のパフォーマンス同士は同じラックを共有しない。ラックを分割することで、アプリないのでハードウェア障害によって影響を与えないようにできる。
スプレッドプレイスメントグループ
それぞれ独自のネットワーク、電源がある異なるラックに1つ1つのインスタンスを分割する。(パーティションプレイスメントグループは、グループ内に複数のインスタンスをラック内に分ける)
1つのAZ内のスプレッドプレイスメントグループに配置された7つのインスタンスは7つの異なるラックに配置される。互いに分離して保持できるのでそれぞれのインスタンスを独自に構成したいときに使う。これによって、インスタンスが同じラックを共有するときに発生する可能性のある同時障害のリスクを減らせる。
プレイスメントグループの利用
プレイスメントグループは利用できるインスタンスタイプが制限されていることもある。
クラスタープレイスメントグループはTシリーズは対応していない。(インスタンスファミリーについてはこちらの記事で触れている)
クラスタープレイスメントグループに対応したインスタンスの表
インスタンスファミリー | インスタンスタイプ |
---|---|
汎用 | A1 M4 M5 M5a M5ad M5d M5dn M5n |
コンピューティングの最適化 | C3 C4 C5 C5d C5n cc.28xlarge |
メモリ最適化 | cr1.8xlarge R3 R4 R5 R5a R5ad R5d R5dn R5n X1 X1e z1d |
ストレージの最適化 | D2 H1 hs1.xlarge I2 I3 I3en |
高速コンピューティング | F1 G2 G3 G4dn P2 P3 P3dn |