AWS Certified Database - Specialty (DBS-C01) 試験を受ける予定。勉強したことのまとめを書いていきます。なお、私個人のメモなので、基礎から体系的に整理しているわけではないのは、ご容赦ください!
今回は、RDSについてのメモです。
RDS
AWSのリレーショナル・データベースのマネージドサービス。マネージドサービスなので、下記はAWSの管理となり、ユーザーはデータベースを使用するアプリケーションの最適化に注力できるというメリットがある。
- データベース用のインフラ(サーバーやストレージ)のプロビジョニング
- データベースのインストール
- データベースの冗長化を容易に行える機能の提供
- データベースのスケーラビリティを高める機能の提供
- データベースのバックアップ、リストアを容易に行える機能の提供
- データベースのメンテナンスを容易に行える機能の提供
RDSで利用できるデータベースのエンジン
- Aurora
- MySQL
- PostgreSQL
- MariaDB
- Oracle
- SQL Server
RDSの可用性
- マルチAZ構成
- プライマリで使用するデータベースと、プライマリで障害発生時に切り替えるスタンバイのデータベースを異なるAZに作成し、プライマリからスタンバイへデータを同期的にレプリケーションする構成。
- リードレプリカ
- リードレプリカ(読み込み専用データベース)を作成し、通常時は読み込みで使用するが、障害発生時にプライマリに昇格させる
RDSのスケーラビリティ
- インスタンスクラス(EC2でいうインスタンスタイプ)を変更してスケールアップ
- ストレージ容量の拡張
- 手動または自動で拡張可能。
- ただし、ストレージ容量の縮小は不可
- リードレプリカ(読み込み専用データベース)
- 0~5個作成可能
- 他のリージョンでも作成可能
- ただしSQL Serverは不可
- リードレプリカは自動バックアップが有効でないと作成できない。
- プライマリのデータベース停止時は、リードレプリカを削除する必要あり。
RDSのバックアップ/リストア
- 自動バックアップ
- バックアップウィンドウでスケジューリングして日次でスナップショットを取得
- トランザクション・ログは5分毎に取得
- 保持日数 0~35まで指定可能。デフォルト7
- AWS内部管理のS3に格納される
- バックアップウィンドウで指定した期間で実施
- マルチAZ構成の場合、スタンバイ側に対して実施される
- 手動でスナップショット取得
- 保持日数 指定ないので、自動では削除されない
- 取得したスナップショットのコピーや共有
- 他のリージョンへコピー可能
- ただし、パラメータグループやセキュリティグループはコピーされない
- 他のアカウントと共有可能
- 任意のS3バケットへのエクスポートが可能
RDSのメンテナンス
- パッチ適用やデータベースのバージョン更新
- メンテナンスウィンドウでスケジューリング(週次、30分の枠)
- マネジメントコンソールから[今すぐ適用]または[次のメンテナンスウィンドウで適用]を選択できる。
- 重要でないメンテナンスは、放置することで無期延期扱いできる
- 重要なメンテナンスは、無期延期できない
- マルチAZ構成の場合、まずスタンバイ側で適用、スタンバイ側をプライマリに昇格させた後に、元プライマリ側に適用する
- データベースの静的パラメータ変更は、「メンテナンス」ではないので、メンテナンス・ウィンドウで自動適用できない。手動での再起動が必要になるケースもある。
RDSのセキュリティ
- VPCのセキュリティグループでネットワークアクセスの制御
- データ保管時の暗号化
- データベース作成時の設定可能
- 既存データベースを暗号化する場合は、スナップショットを取得、そのスナップショットを暗号化を指定してコピー、そのスナップショットからリストアする
- データ転送時の暗号化
- AWSより証明書取得
- データベース認証・認可
- データベース側の機能で設定
- AuroraとMySQLとPostgreSQLはIAM認証を設定可能
- 監査ログ
- 各データベースの機能で取得し、CloudWatch Logsへ転送可能