MLOps環境では、推論リクエストやログがどんどんDBに書き込まれます。
ここで活躍するのが リードレプリカ。読み取り専用のコピーを用意して、「本番(Writer)」を守りながら負荷を分散する仕組みです。
どうしてリードレプリカが必要?
- 本番DB(Writer)は「書き込み」と「読み取り」の両方を処理するので、とても忙しい。
- 分析や学習用の重たいクエリまでここに流すと、レスポンスが遅くなったり、最悪エラーが出たりします。
👉 そこで、読み取り専用のレプリカに仕事を任せることで、本番APIを安定させられます。
使い方のポイント
- 役割分担を明確にする
- 推論やトランザクション系 → Writer
- 学習データ抽出やレポート集計 → Reader
- 遅延があることを理解する
レプリカは非同期コピーなので、数百ms〜数秒の遅延が発生することも。
「書いた直後に絶対読みたい」ケースではWriterを使うのが安全。 - 自動で負荷分散するReader Endpointを活用
複数レプリカがあっても、アプリ側で細かく振り分けなくてOK。Auroraが自動的にいい感じに割り振ってくれます。
接続例(環境変数)
# 書き込み用(Writer)
DB_HOST_WRITER=cluster-xyz.cluster-cfg.ap-northeast-1.rds.amazonaws.com
# 読み取り専用(Reader, 負荷分散あり)
DB_HOST_READER=cluster-xyz.cluster-ro-cfg.ap-northeast-1.rds.amazonaws.com
実運用の工夫
- ダッシュボードやBIツールは必ずReaderに向ける
- 学習ジョブのデータ抽出もReaderに寄せる
- Writerは極力「本番推論API専用」にして守る
✅ 今日のまとめ
リードレプリカは 「本番DBを守るための安全弁」。
読み取り系をオフロードして、Writerを軽くしてあげることが、MLOps環境の安定運用につながります。