Amazon RDS で運用するマネージドデータベース - Multi-AZ とリードレプリカの設計
Multi-AZ で高可用性を確保し、リードレプリカで読み取り負荷を分散する。Blue/Green Deployments と RDS Proxy の活用パターンを紹介します。
RDS の概要
RDS はリレーショナルデータベースをマネージドに提供するサービスです。EC2 にデータベースをインストールする場合と比較して、OS パッチ、DB パッチ、バックアップ、フェイルオーバーが自動化されます。Aurora は RDS 互換の AWS 独自エンジンで、標準の MySQL/PostgreSQL と比較して最大 5 倍のスループットを提供します。
Multi-AZ とリードレプリカ
Multi-AZ 配置はプライマリインスタンスとスタンバイインスタンスを異なる AZ に配置し、同期レプリケーションでデータを複製します。プライマリの障害時に自動フェイルオーバーが実行され、DNS エンドポイントがスタンバイに切り替わります。リードレプリカは非同期レプリケーションで読み取り専用のコピーを作成し、レポートクエリや分析クエリをリードレプリカに向けることでプライマリの負荷を軽減します。Performance Insights はデータベースの負荷を待機イベント別、SQL 別に可視化し、スロークエリやロック競合を特定します。
Blue/Green デプロイとプロキシ
RDS Blue/Green Deployments はメジャーバージョンアップグレードやパラメータ変更を安全に実行します。グリーン環境 (新バージョン) を作成し、レプリケーションでデータを同期した後、スイッチオーバーで 1 分以内にトラフィックを切り替えます。 RDS Proxy はデータベース接続のプーリングとフェイルオーバーの高速化を提供します。 Lambda のような短命な接続が大量に発生するワークロードで、データベースの接続数を削減し、フェイルオーバー時の接続切り替えを自動化します。 Performance Insights で SQL クエリのパフォーマンスを分析し、ボトルネックを特定します。 マネージド DB の基礎から応用まで、書籍 (Amazon)で体系的に学べます。
RDS の料金最適化
RDS の料金はインスタンス時間、ストレージ (gp3: 1 GB あたり月額約 0.08 ドル)、バックアップストレージ、データ転送で構成されます。リザーブドインスタンスで最大 72% の割引が適用されます。Multi-AZ はスタンバイインスタンスの料金が追加されるため、可用性要件に応じて選択します。gp3 ストレージは gp2 より 20% 安価で、IOPS とスループットを独立して設定できます。リードレプリカで読み取り負荷を分散し、プライマリインスタンスのサイズダウンを検討します。
まとめ
RDS はリレーショナルデータベースの運用を自動化するマネージドサービスです。Multi-AZ で高可用性を確保し、リードレプリカで読み取り負荷を分散します。Blue/Green Deployments でメジャーバージョンアップグレードを安全に実行し、RDS Proxy で Lambda からの大量接続をプーリングします。Performance Insights で SQL クエリのボトルネックを特定し、gp3 ストレージでコストを最適化します。