本文へスキップ
BecomeCoder

AWS SAA(ソリューションアーキテクト)コース · 第6章 データベースの設計 · レッスン31

RDSの設計 ― Multi-AZとリードレプリカ

導入

可用性を上げたい」と「読み取り性能を上げたい」は、どちらも「RDSを複製すればいい」と混同されがちですが、SAAでは目的が違う機能として明確に区別されます。この違いを取り違えると設問を確実に落とします。

説明

Amazon RDS は、MySQL・PostgreSQL・MariaDB・Oracle・SQL Server に対応したマネージドリレーショナルDBサービスです。SAAでは次の2つの複製機能を対比で理解する必要があります。

機能目的レプリケーション昇格リージョン
Multi-AZ配置高可用性(障害対策)同期自動フェイルオーバー同一リージョン内の別AZ
リードレプリカ読み取りスケーリング非同期手動で昇格可能同一・クロスリージョンどちらも可

Multi-AZは常にスタンバイとして待機し、通常時は直接アクセスできません。プライマリが故障すると、DNSの切り替えによって自動的にスタンバイへフェイルオーバーします。一方リードレプリカは、読み取り専用の接続先としてアプリケーションから直接クエリを実行でき、読み取りが多いワークロードの負荷分散に使います。

flowchart LR
    App["アプリケーション"] -->|"書き込み"| Primary["プライマリ (AZ-a)"]
    Primary -->|"同期レプリケーション"| Standby["スタンバイ (AZ-c)<br/>障害時に自動フェイルオーバー"]
    Primary -->|"非同期レプリケーション"| Replica["リードレプリカ<br/>読み取り専用で直接接続"]
    App -->|"読み取り"| Replica

SAAではこう問われる:「可用性を高めたい」「単一障害点をなくしたい」→ Multi-AZ。「読み取り負荷でDBが詰まっている」「レポート集計クエリを分離したい」→ リードレプリカ。両方の要件が同時に出た場合は、Multi-AZ配置のRDSに対してリードレプリカを追加する構成が正解になります。

読んでみよう

「Multi-AZ=同期・自動・待機系」「リードレプリカ=非同期・手動・読み取り可」という対比を丸ごと覚えてください。SAAの選択肢には「リードレプリカで可用性を上げる」というもっともらしい誤答が必ず混ざります。読み取りレプリカは自動フェイルオーバーの対象ではないことを忘れないでください。