読み取りスケーリングのためのリードレプリカ
読み取りトラフィックをオフロードするリードレプリカを作成し、非同期レプリケーションの遅延を理解して、DR 用にレプリカを昇格させます。
「読み取りスケーリングのためのリードレプリカ」はCoddyKit上の無料Cloud & IT Cert Prepレッスンです。 これはレッスン3/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはCloud & IT Cert Prep学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Cloud & IT Cert Prepコースには全4レッスンが含まれています。
Read Replicas とは
Read Replicasは、非同期レプリケーションによって更新を受け取る RDS プライマリインスタンスのコピーです。Multi-AZ のスタンバイとは異なり、Read Replicas は SELECT クエリでアクセスできるため、読み取りトラフィックを分散し、プライマリデータベースの負荷を軽減できます。
Read Replicas は、MySQL、PostgreSQL、MariaDB、Oracle(Active Data Guard 使用時)、およびすべての Aurora エディションでサポートされています。Aurora MySQL と Aurora PostgreSQL では最大15 個の Read Replicas、標準の RDS MySQL と PostgreSQL では最大 5 個まで作成できます。
Read Replica の作成
Read Replica を作成するには、ソースインスタンスで自動バックアップを有効化しておく必要があります(保持期間が 0 より大きいこと)。AWS はプライマリのスナップショットを取得して新しい DB インスタンスに復元し、プライマリからの非同期レプリケーションを確立します。
各 Read Replica には固有の DNS エンドポイントが割り当てられます。アプリケーションを更新し、読み取りをレプリカのエンドポイントへ送る必要があります。接続プールや、読み書き分離に対応したアプリケーションフレームワークを使用すれば、SELECT クエリをレプリカへ自動的にルーティングできます。
# Create a Read Replica from the primary
aws rds create-db-instance-read-replica \
--db-instance-identifier mydb-replica-1 \
--source-db-instance-identifier mydb \
--db-instance-class db.t3.mediumレプリケーションラグとその影響
レプリケーションは非同期で行われるため、書き込み量によっては Read Replicas がプライマリに数ミリ秒から数秒遅れることがあります。これをレプリケーションラグと呼びます。ReplicaLag CloudWatch メトリクスで監視できます。
レプリカから読み取る場合に結果整合性を許容できるよう、アプリケーションを設計する必要があります。たとえば、レコードを挿入した直後にレプリカから読み取ると、新しい行がまだ返されない場合があります。書き込み後の読み取り整合性が必要な場合は、その読み取りをプライマリへルーティングしてください。
# Monitor replication lag via CloudWatch
aws cloudwatch get-metric-statistics \
--namespace AWS/RDS \
--metric-name ReplicaLag \
--dimensions Name=DBInstanceIdentifier,Value=mydb-replica-1 \
--start-time 2026-06-20T00:00:00Z \
--end-time 2026-06-20T01:00:00Z \
--period 60 \
--statistics Averageリージョン間 Read Replicas
RDS では、別の AWS リージョンに Read Replicas を作成できます。これにより、グローバルな読み取りスケーラビリティとディザスタリカバリを実現できます。リージョン間レプリケーションではパブリックインターネットまたは AWS Global Accelerator を使用するため、ネットワークレイテンシーにより、リージョン内よりもレプリケーションラグが大きくなります。
リージョン間レプリカは、別の地域のユーザーに近い場所で読み取りを処理したい場合、別のリージョンにプロモート可能なウォーム DR コピーを用意したい場合、または本番環境から分析クエリの負荷を切り離したい場合に役立ちます。
# Create a cross-region Read Replica
aws rds create-db-instance-read-replica \
--db-instance-identifier mydb-replica-eu \
--source-db-instance-identifier arn:aws:rds:us-east-1:123456789:db:mydb \
--region eu-west-1 \
--db-instance-class db.t3.mediumRead Replica のプロモート
Read Replica をプロモートするとレプリケーションリンクが切断され、独立した書き込み可能なプライマリ DB インスタンスになります。これは、元のプライマリが利用できない場合のディザスタリカバリや、レプリカを別のエンジンバージョンへアップグレードして新しいプライマリとして使用する場合に行います。
プロモーションは元に戻せません。プロモート後、そのインスタンスをレプリカとして使用することはできなくなります。プロモートする前に、データ損失を最小限に抑えるため、レプリカが可能な限り最新の状態(ラグが最小の状態)であることを確認してください。プロモート後は、アプリケーションの接続文字列を新しいプライマリエンドポイントへ更新します。
# Promote a Read Replica to standalone primary
aws rds promote-read-replica \
--db-instance-identifier mydb-replica-1Read Replicas と Multi-AZ の比較:試験での違い
SAA-C03 試験では、Read Replicas と Multi-AZ の違いを見分けることが重要です。
- シナリオが読み取りパフォーマンスの向上または読み取りのスケーリングを求めている → Read Replicas
- シナリオが自動フェイルオーバーまたは高可用性を求めている → Multi-AZ
- シナリオが両方を求めている → プライマリに Multi-AZ を使用し、Read Replicas を追加
また、Multi-AZ のスタンバイは読み取りを処理せず、Read Replicas は自動フェイルオーバーを提供しないことも覚えておいてください(Aurora 以外のレプリカでは手動でプロモートする必要があります)。
Aurora の Read Replicas とエンドポイント
Aurora では、標準の RDS とは Read Replicas の処理方法が異なります。Aurora は共有分散ストレージレイヤーを使用するため、レプリカはプライマリと同じ基盤データページにアクセスします。そのため、Aurora のレプリカはレプリケーションラグが最小限(通常 100 ms 未満)で、それぞれが読み取りトラフィックを処理できます。
Aurora は、利用可能なすべてのレプリカインスタンス間で接続をロードバランシングするReader Endpointを提供します。アプリケーションが Reader Endpoint に接続すると、Aurora が読み取りを自動的に分散します。レプリカに障害が発生した場合は、エンドポイントに影響を与えずにリーダープールから除外されます。
Read Replicas を使用した Aurora のフェイルオーバー
Aurora では、プライマリ(ライター)インスタンスに障害が発生すると、Aurora が約 30 秒でRead Replicas の 1 つを自動的にプライマリへプロモートします。これは、標準 RDS の Multi-AZ フェイルオーバーよりも大幅に高速です。プロモートされたレプリカは、直ちに Cluster Writer Endpoint 経由で書き込みを受け付け始めます。
Aurora はフェイルオーバー優先度ティア(0~15)をサポートしており、どのレプリカを最初にプロモートするかを制御できます。大きなインスタンスクラスまたは優先する AZ に配置されたレプリカには、より高い優先度(ティア 0)を割り当ててください。
読み取りスケーリングのアーキテクチャパターン
一般的な読み取りスケーリングのアーキテクチャでは、Application Load Balancer またはアプリケーションロジックを介してトラフィックをルーティングします。
- すべての書き込み操作(
INSERT、UPDATE、DELETE)→ プライマリ DB エンドポイント - すべての読み取り操作(
SELECT)→ Read Replica のエンドポイントまたは Aurora Reader Endpoint - セッションキャッシュと結果キャッシュ → ElastiCache(レプリカへの読み取りをさらに削減)
非常に負荷の高い分析クエリについては、レプリカをプロモートするか、Aurora の並列クエリ機能を使用してストレージレイヤーで計算を実行し、本番クラスターへの影響を避けることを検討してください。
Read Replicas の監視
Read Replicas で重要な CloudWatch メトリクスは次のとおりです。
ReplicaLag— プライマリからの遅延秒数。予期せず増加した場合はアラートを設定しますReadIOPS— レプリカのストレージがクエリ負荷に対応できているかを確認しますDatabaseConnections— レプリカが接続数の上限に達していないかを確認しますCPUUtilization— レプリカの CPU 使用率が高い場合は、クエリの最適化が必要であることを示します
RDS Performance Insights は Read Replicas でも利用でき、DB 時間を最も多く消費している SQL ステートメントを表示します。これにより、コストの高い読み取りクエリを特定して最適化できます。
Read Replica のユースケースまとめ
SAA-C03 試験における RDS Read Replicas の一般的なユースケースは次のとおりです。
- レポート作成と分析:負荷の高い
SELECTクエリをレプリカで実行し、本番環境の書き込みを遅延させない - 地理的分散:リージョン間レプリカによって、他の大陸のユーザーに低レイテンシーでサービスを提供する
- ディザスタリカバリ:プライマリリージョンに障害が発生した場合に、リージョン間レプリカをプロモートする
- 開発とテスト:レプリカをプロモートし、本番データの最新コピーを使ったテスト環境を作成する
Read Replicas はバックアップの代替ではありません。自動バックアップと手動スナップショットは、必ず別途維持してください。
クイックチェック
このレッスンで学んだ AWS Solutions Architect(SAA-C03)の概念を確認しましょう。
レッスンのまとめ
このレッスンでは、Read Replicas は非同期レプリケーションを使用して読み取りトラフィックを分散すること、レプリケーションラグによってレプリカがプライマリよりわずかに遅れる場合があること、そしてAurora のレプリカはラグが最小限で自動プロモーションをサポートすることを学びました。リージョン間レプリカは、グローバルな読み取りスケーラビリティと DR の選択肢の両方を提供します。次は、暗号化とパラメータグループを使用した RDS のセキュリティについて説明します。
よくある質問
「読み取りスケーリングのためのリードレプリカ」レッスンは無料ですか?
はい。「読み取りスケーリングのためのリードレプリカ」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Cloud & IT Cert Prepコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Cloud & IT Cert Prepコースには全4レッスンが含まれています。
「読み取りスケーリングのためのリードレプリカ」で何を学びますか?
読み取りトラフィックをオフロードするリードレプリカを作成し、非同期レプリケーションの遅延を理解して、DR 用にレプリカを昇格させます。 ブラウザで直接実行するハンズオンコードでCloud & IT Cert Prepを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Cloud & IT Cert Prepを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのCloud & IT Cert Prepは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン3/4です。
「読み取りスケーリングのためのリードレプリカ」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このCloud & IT Cert Prepレッスンでコードを書いて実行できますか?
はい。すべてのCloud & IT Cert Prepレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- RDS エンジンとインスタンスクラス
- マルチ AZ と自動バックアップ
- 読み取りスケーリングのためのリードレプリカ
- RDS のセキュリティ:暗号化とパラメータグループ