MLOps環境では、推論リクエストやログがどんどんDBに書き込まれます。
ここで活躍するのが リードレプリカ。読み取り専用のコピーを用意して、「本番(Writer)」を守りながら負荷を分散する仕組みです。


どうしてリードレプリカが必要?

  • 本番DB(Writer)は「書き込み」と「読み取り」の両方を処理するので、とても忙しい。
  • 分析や学習用の重たいクエリまでここに流すと、レスポンスが遅くなったり、最悪エラーが出たりします。
    👉 そこで、読み取り専用のレプリカに仕事を任せることで、本番APIを安定させられます。

使い方のポイント

  1. 役割分担を明確にする
    • 推論やトランザクション系 → Writer
    • 学習データ抽出やレポート集計 → Reader
  2. 遅延があることを理解する
    レプリカは非同期コピーなので、数百ms〜数秒の遅延が発生することも。
    「書いた直後に絶対読みたい」ケースではWriterを使うのが安全。
  3. 自動で負荷分散する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環境の安定運用につながります。


投稿者 kojiro777

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です