Amazon RDS - kin-kin/memo GitHub Wiki

AWS

Amazon RDS

  • Amazon Aurora
    • MySQL互換とPostgreSQL互換の2種類
    • 3つのアベイラビリティーゾーンに2つずつ、合計6つのデータコピーを持つ
      • 各データは同期している
    • プライマリDBインスタンス(読み書き可能なノード)
    • Auroraレプリカ(読み取り専用のノード)
      • 最大15個
      • プライマリDBインスタンスに障害が発生すると、Auroraレプリカの1つがプライマリDBインスタンスに昇格し、クラスターエンドポイントがそれを指すようになる
  • MariaDB
  • PostgreSQL
  • Oracle DB
    • RDSをBYOLで利用することが可能
  • SQL Server
    • EC2にインストールしてBYOLで利用する場合、専用ホストインスタンスを使用する必要がある
    • RDSをBYOLで利用することはできない
  • マルチAZ
    • エンドポイントに対するアクセスはすべてプライマリインスタンスで処理する(負荷分散の効果はない)
      • プライマリのデータは同期でスタンバイに書き込まれる
      • プライマリに障害が発生した場合、セカンダリがプライマリに昇格し、エンドポイントがそれを指すようになる
        • フェイルバックは行わないので、次障害発生時までスタンバイがマスタになる
      • スタンバイは1アベイラビリティーゾーンのみ(3つ以上は不可)
    • インスタンスを配置するためにサブネットグループを指定する
      • RDSはマネージドサービスだが、インスタンスのベースはEC2なのでサブネット内に配置する
      • シングルAZ構成でも異なるアベイラビリティーゾーンを指定する必要がある
        • 後からマルチAZ構成に変更できるように
    • シングルAZよりもインスタンスクラス変更のダウンタイムが短い
      • スタンバイのインスタンスクラス変更 → マスタからフェイルオーバー → マスタのインスタンスクラス変更
      • 容量ダウンは不可
  • リードレプリカ
    • 読み込み処理の負荷分散を行うインスタンス
      • Aurora以外の場合はどのリードレプリカのエンドポイントに接続するかを指定する
      • Auroraの場合はリードレプリカ用エンドポイントがロードバランサーの役割を担う
    • ソースDBからのデータ反映は非同期で行われる
      • リードレプリカをソースDBに昇格する場合は、すべてのトランザクションを終了しておく
  • 自動バックアップ
    • 1日に1回スナップショットを取得
      • デフォルトの保持期間は7日、最大35日間
      • 手動で任意のタイミングのスナップショットも取得可能
    • 5分ごとにトランザクションログを取得
      • ポイントインタイムリカバリで最短5分前まで復元可能
  • アクセス制御
    • セキュリティグループを使用する
  • 暗号化
    • インスタンス作成時にのみ設定可能
      • インスタンス作成後の場合は、スナップショットを取得し、スナップショットのコピー時に暗号化設定を行って、暗号化されたスナップショットからリストアを行う

References