AWS で目的を取り違えやすい 2 組: Multi-AZ と Read Replica、EBS と Instance Store
Multi-AZ は「可用性のための同期コピー」、Read Replica は「読み取りを増やすための非同期コピー」。EBS は独立して残るディスク、Instance Store はホストに付いた消えるディスク。似て見えても、選ぶ基準がまったく違う。
どんなときに使う?
- RDS で「冗長化」と「読み取り負荷分散」を同じ仕組みで済ませようとしているとき
- EC2 のデータ置き場を選ぶとき(「インスタンスを止めたらデータが消えた」を防ぐ)
- SAA などの試験で 2 択に迷ったとき
RDS: Multi-AZ と Read Replica
| Multi-AZ | Read Replica | |
|---|---|---|
| 目的 | 可用性(障害時のフェイルオーバー) | 読み取りのスケール |
| レプリケーション | 同期 | 非同期(遅延がある) |
| 待機側へのクエリ | 通常はできない(Standby は待機専用) | できる(読み取り専用) |
- 「読み取りを逃がしたい」なら Read Replica。Multi-AZ の Standby には通常クエリを送れない
- 例外として、Aurora や RDS の Multi-AZ DB クラスタ は仕様が別で、読み取り可能なスタンバイを持つ。使っているのがどちらかを確認する
EC2: EBS と Instance Store
| EBS | Instance Store | |
|---|---|---|
| 実体 | ネットワーク越しの独立したボリューム | インスタンスのホストに直結したディスク |
| 停止・終了したとき | 残る(終了時は削除設定しだい) | 消える |
| 向いている用途 | OS・DB・永続化が必要なデータ | キャッシュ・一時ファイル・スクラッチ領域 |
判断の軸は「そのデータは消えても再生成できるか」。永続化が必要なら EBS(+スナップショット)、使い捨てで速さがほしいなら Instance Store。
注意点
- Instance Store を選ぶなら、再起動では残るが停止・終了・ホスト障害で消える前提で設計する
- Read Replica は非同期なので、書いた直後に読むと古い値が返ることがある