・・・リレーショナルデータベースを、サーバーの構築やパッチ適用を自分で抱えずに運用できる、マネージド型データベースの管理基盤。
・サービスのジャンル:リレーショナルデータベース管理基盤(マネージド型)
・特徴:
- マネージドサービスであり、データベースのバックアップ、OS・DBソフトウェアのインストール、OS・ソフトウェアのパッチ適用、高可用性のセットアップ、ハードウェアのライフサイクル管理、データセンターの運用まで、ほとんどの管理タスクから解放される
- 自動バックアップ、定期的なスナップショット取得、CloudWatchによる監視など、運用負荷軽減に役立つ機能が多く存在する
・使用用途:
- ECサイトや業務システムなど、リレーショナルデータベースが必要なアプリケーションのバックエンド
- EC2上に自前でデータベースを構築・運用する手間を省きたい場合
- 高可用性・災害対策(DR)が求められる本番データベース
Amazon RDS の機能
対応データベースエンジン
- MySQL
- MariaDB
- PostgreSQL
- Oracle
- Microsoft SQL Server
- Db2(IBM)
- Amazon Aurora(MySQL・PostgreSQL互換)
Amazon Auroraは、MySQLやPostgreSQLと互換性を持つように設計されているため、既存のアプリケーションやツールを変更することなく実行できる、AWS独自のデータベースエンジン。
Multi-AZ配置
・・・プライマリDBインスタンスとは別のアベイラビリティーゾーンに、スタンバイレプリカを自動的にプロビジョニング・維持する仕組み。
- プライマリDBに障害が起きると、自動的にセカンダリDBがプライマリDBに切り替えられる
- SLA(サービスレベルアグリーメント)が99.95%
- シングルAZと比べて書き込みのレイテンシーが増加する傾向がある
リードレプリカ
・・・同一のAWSリージョンまたは異なるAWSリージョン内で、データベースインスタンスの読み取り専用コピーを1つ以上作成できる機能。
- ソースデータベースで更新された内容は、非同期的にリードレプリカへコピーされる
- 読み取りリクエストを、複数のインスタンスに分散させられる
- 必要に応じて、スタンドアロンのデータベースインスタンスへ昇格できる
自動バックアップ
- RDSは、指定したバックアップ期間中に、DBインスタンス(またはMulti-AZ DBクラスター)の自動バックアップを作成・保存する
- DBインスタンス全体(個々のデータベースだけでなく、ストレージボリュームそのもの)をスナップショットとしてバックアップする
- バックアップはAmazon S3に保存される
- バックアップ保持期間内であれば、任意の時点にDBインスタンスを復元(ポイントインタイムリカバリ)できる
メンテナンス
通常のRDSでは、OSのパッチ適用・インストールはすべてAWS側の責任で、ユーザーは管理対象外(アクセス自体できない)
バージョンなどの更新の適用は、以下の順番で処理される。
スタンバイ側にOSパッチが適用される
↓
パッチ適用のため、スタンバイが一時的にオフラインになるオフライン操作が発生する
↓
この後、フェイルオーバーが発生し、パッチ済みのスタンバイが新しいプライマリに切り替わる(旧プライマリは新しいスタンバイになる)
↓
新しいスタンバイ(旧プライマリ)側にもOSパッチが適用される
ストレージ拡張
- インスタンスを起動したまま拡張できる
- ストレージの自動スケーリング(Storage Autoscaling)・・・空き容量が少なくなると自動で拡張してくれる機能
暗号化
- データの保管時と転送時に暗号化できる
保管時の暗号化(Encryption at Rest)
暗号化の対象
- DBインスタンス本体のストレージ
- 自動バックアップ
- リードレプリカ
- スナップショット
- ログ
仕組み
- 業界標準のAES-256暗号化アルゴリズムを使用
- 暗号化・復号は透過的に処理され、アプリケーション側を変更する必要はない
- 暗号化にはAWS KMS(Key Management Service)のキーを使用する
キーの種類
- AWSマネージドキー:キー識別子を指定しなければ、自動的にこちらが使われる
- カスタマーマネージドキー:自分でKMSキーを作成・管理する方式
転送中の暗号化(Encryption in Transit)
- SSL/TLSを使って、DBインスタンスへの接続を暗号化できる(MariaDB、SQL Server、MySQL、Oracle、PostgreSQLに対応)
- Oracleでは、SSLの代わりにOracleネイティブネットワーク暗号化(NNE)も選べる(SSLとNNEは同時併用不可)
- 暗号化・非暗号化どちらのDBインスタンスでも、ソース↔リードレプリカ間の通信は、リージョンをまたぐ場合でも暗号化される
主な制限事項
- 作成後に、暗号化を後から有効化することはできない。DBインスタンス作成時にしか設定できない
- 既存の非暗号化インスタンスを暗号化したい場合は、スナップショットを作成→そのスナップショットを暗号化コピー→そのスナップショットから新しいインスタンスを復元、という手順が必要(ダウンタイムを抑えたい場合は、AWS DMSでの継続的なレプリケーションも使われる)
- KMS暗号化キーは作成したリージョン固有のため、暗号化されたDBインスタンスをリージョン間でそのままレプリケートすることはできない(別リージョンでも使う場合は、そのリージョンのキーで再暗号化する必要がある)
サービスコスト
Amazon RDSのコストは、主に以下で決まる。
- DBインスタンスの稼働時間
- エンジン・インスタンスサイズなどデータベースの特性
- 購入タイプ(オンデマンド/リザーブド)
- デプロイタイプ(シングルAZ/Multi-AZ)
- プロビジョニングしたストレージ・IOPS
- データ転送量
購入オプション
| オプション | 特徴 |
|---|---|
| オンデマンド | 長期契約・最低料金なし。稼働時間分だけ支払う |
| リザーブドインスタンス(RI) | 1〜3年利用を予約し、オンデマンドより大幅割引を受けられる |
主な請求項目
- DBインスタンス時間、ストレージ(月あたりGiB)、プロビジョンドIOPS
- バックアップストレージ:プロビジョニング容量の100%まで無料
- データ転送:受信は無料、送信は従量課金
その他
- シングルAZ/Multi-AZでインスタンス時間・ストレージ・I/O料金が異なる
- SQL Server・Oracleなど一部の商用エンジンはライセンス込み(LI)モデルで、別途ライセンス購入は不要
参考
- Amazon RDS のマルチ AZ DB インスタンスデプロイ
- Amazon RDS リードレプリカでマルチ AZ 配置のサポートを開始
- Amazon RDS for Db2 が他の AWS 商用リージョンでも利用可能に
- Amazon RDS リードレプリカ
- Amazon RDS の自動バックアップの操作
- バックアップの保存期間
- Amazon RDS のメンテナンス期間について知っておくべきこと
- Amazon RDS ストレージの自動スケーリングによる容量の自動管理
- Amazon RDS のブルー/グリーンデプロイでストレージボリュームの縮小をサポート
- Amazon RDS リソースの暗号化
- Amazon RDS Service Level Agreement