【あーるでぃーえす】

Amazon RDS とは?

最終更新:
💡 DBのお世話をAWSに分担してもらう

AWSのマネージドなリレーショナルデータベースサービス。MySQL、PostgreSQL、Oracleなどのデータベースを、バックアップやパッチ適用をAWSに任せて運用できる。

📌 このページのポイント
RDS — マネージドデータベースの構成 アプリ SQL発行 Amazon RDS(Multi-AZ DBインスタンスの例) プライマリDB 読み書き MySQLなど6種類 同期 スタンバイDB 障害時に自動 フェイルオーバー 自動バックアップ 自動パッチ適用 運用の手間を削減 バックアップ・パッチを自動化 高可用性 マルチAZ対応 スケーラブル リードレプリカ追加 OSやDBの保守はAWS、クエリの調整や設計は利用者の担当
RDS(Relational Database Service)の構成イメージ
ひよこ ひよこ
EC2にMySQLを入れるのと何が違うの?
ペンギン先生 ペンギン先生
EC2に自分で入れると、OSやDBのインストール、パッチ適用、バックアップ、冗長化の構成を自分で管理することになる。RDSならそれらをAWSが担当してくれるんだ。ただしクエリの調整やテーブル設計は、RDSでも利用者の仕事として残るよ
ひよこ ひよこ
Auroraって何がすごいの?
ペンギン先生 ペンギン先生
AWSが開発したMySQL互換・PostgreSQL互換のエンジンだよ。データは1つのリージョン内の3つのAZにコピーされて、ストレージはデータ量に応じて自動で伸び縮みする。上限はエンジンのバージョンによって異なり、対応する版なら256TiBまで。AWSは標準のMySQLやPostgreSQLより高いスループットをうたっているけど、実際の性能は使い方しだいだから、自分の負荷で試して確かめるのが確実だね
ひよこ ひよこ
Multi-AZとリードレプリカの違いは?
ペンギン先生 ペンギン先生
Multi-AZは別のAZにスタンバイを置いて同期で複製し、障害時に自動で切り替える仕組み。リードレプリカはプライマリから非同期で複製した読み取り専用のコピーで、SELECTを分散するのに使うよ。Multi-AZは「障害対策」、リードレプリカは「読み取りの負荷分散」と覚えようね
ひよこ ひよこ
サーバーレスDBとの使い分けは?
ペンギン先生 ペンギン先生
Aurora Serverless v2は負荷に応じて容量が自動で増減して、最小容量を0にすれば接続がない間は一時停止もできる。開発環境やアクセスにムラがある用途に向いているね。ただ一時停止から戻るのに通常15秒ほどかかるから、すぐ応答してほしい本番では、固定容量のプロビジョンドや最小容量を0にしない設定のほうが安心だよ
もっと詳しく知りたい人へ

Multi-AZのスタンバイに読み取りのクエリを流して、負荷を分散できるの?

スタンバイが1台のMulti-AZ DBインスタンス構成ではできません。公式ドキュメントでは、このスタンバイは読み取りに使えず、読み取りを分散したい場合はリードレプリカかMulti-AZ DBクラスター(3つのAZにライター1台と読み取り可能なリーダー2台を置く構成)を使うよう案内されています。リードレプリカは非同期で複製されるため、プライマリより少し古いデータが返ることがあります。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「RDS」って出てきたら「AWSのマネージドなリレーショナルDBサービス」と思えればだいたいOK!
📖 おまけ:英語の意味
「Amazon Relational Database Service」 = リレーショナルデータベースサービス
💬 Relational Database Serviceの頭文字でRDS。リレーショナルデータベースの運用作業の多くをAWSが引き受けてくれるサービスだよ

参考資料

← 用語集にもどる