のべラボ.blog

Tech Blog | AWS や サーバーレスやコンテナ などなど

AWS Certified Database - Specialty (DBS-C01) のお勉強:RDSのまとめ

AWS Certified Database - Specialty (DBS-C01) 試験を受ける予定。勉強したことのまとめを書いていきます。なお、私個人のメモなので、基礎から体系的に整理しているわけではないのは、ご容赦ください!

 

今回は、RDSについてのメモです。

RDS

AWSのリレーショナル・データベースのマネージドサービス。マネージドサービスなので、下記はAWSの管理となり、ユーザーはデータベースを使用するアプリケーションの最適化に注力できるというメリットがある。

  • データベース用のインフラ(サーバーやストレージ)のプロビジョニング
  • データベースのインストール
  • データベースの冗長化を容易に行える機能の提供
  • データベースのスケーラビリティを高める機能の提供
  • データベースのバックアップ、リストアを容易に行える機能の提供
  • データベースのメンテナンスを容易に行える機能の提供

RDSで利用できるデータベースのエンジン

RDSの可用性

  • マルチAZ構成
    • プライマリで使用するデータベースと、プライマリで障害発生時に切り替えるスタンバイのデータベースを異なるAZに作成し、プライマリからスタンバイへデータを同期的にレプリケーションする構成。
  • リードレプリカ
    • リードレプリカ(読み込み専用データベース)を作成し、通常時は読み込みで使用するが、障害発生時にプライマリに昇格させる

RDSのスケーラビリティ

  • インスタンスクラス(EC2でいうインスタンスタイプ)を変更してスケールアップ
  • ストレージ容量の拡張
    • 手動または自動で拡張可能。
    • ただし、ストレージ容量の縮小は不可
  • リードレプリカ(読み込み専用データベース)
    • 0~5個作成可能
    • 他のリージョンでも作成可能
    • リードレプリカは自動バックアップが有効でないと作成できない。
    • プライマリのデータベース停止時は、リードレプリカを削除する必要あり。

RDSのバックアップ/リストア

  • 自動バックアップ
    • バックアップウィンドウでスケジューリングして日次でスナップショットを取得
    • トランザクション・ログは5分毎に取得
    • 保持日数 0~35まで指定可能。デフォルト7
    • AWS内部管理のS3に格納される
    • バックアップウィンドウで指定した期間で実施
    • マルチAZ構成の場合、スタンバイ側に対して実施される
  • 手動でスナップショット取得
    • 保持日数 指定ないので、自動では削除されない
  • 取得したスナップショットのコピーや共有
    • 他のリージョンへコピー可能
    • ただし、パラメータグループやセキュリティグループはコピーされない
    • 他のアカウントと共有可能
    • 任意のS3バケットへのエクスポートが可能

RDSのメンテナンス

  • パッチ適用やデータベースのバージョン更新
  • メンテナンスウィンドウでスケジューリング(週次、30分の枠)
  • マネジメントコンソールから[今すぐ適用]または[次のメンテナンスウィンドウで適用]を選択できる。
  • 重要でないメンテナンスは、放置することで無期延期扱いできる
  • 重要なメンテナンスは、無期延期できない
  • マルチAZ構成の場合、まずスタンバイ側で適用、スタンバイ側をプライマリに昇格させた後に、元プライマリ側に適用する
  • データベースの静的パラメータ変更は、「メンテナンス」ではないので、メンテナンス・ウィンドウで自動適用できない。手動での再起動が必要になるケースもある。

RDSのセキュリティ

  • VPCのセキュリティグループでネットワークアクセスの制御
  • データ保管時の暗号化
    • データベース作成時の設定可能
    • 既存データベースを暗号化する場合は、スナップショットを取得、そのスナップショットを暗号化を指定してコピー、そのスナップショットからリストアする
  • データ転送時の暗号化
    • AWSより証明書取得
    • アプリで接続時にSSL/TLS指定
  • データベース認証・認可
    • データベース側の機能で設定
  • 監査ログ
    • 各データベースの機能で取得し、CloudWatch Logsへ転送可能

RDSのパフォーマンス

  • EBS最適化を設定しても、インスタンスタイプの帯域幅が狭ければ、十分なI/O性能を発揮することはできない。
/* -----codeの行番号----- */