🐾

【AWS】データベースサービス

に公開

ソリューションアーキテクト試験の学習ログ ④

RDS

Relational Database Service

  • マネージド RDB サービス
  • エンジンの機能によっては一部使えないものもある
    • どうしても機能が場合は EC2 にエンジンをインストールするなどの方法を検討
  • インスタンスタイプを選択できる

ストレージ

  • データ保存用ストレージには EBS を利用
  • 利用可能なストレージタイプ
    • 汎用 SSD
    • プロビジョンド IOPS SSD
    • (マグネティック)下位互換性維持のため
  • 64TB(Microsoft SQL Server は 16TB)まで容量の拡張可能

主な機能

  • マルチ AZ 構成
    • DB インスタンス作成時にマルチ AZ 構成を選択するだけで、自動で DB の冗長化に必要な環境が作成される
    • 2 つの AZ 間でデータを同期するため書き込みやコミットにかかる時間が長くなる
    • フェイルオーバーには 60〜120 秒かかる
      • 接続用 FQDN の DNS レコードがスタンバイ側の IP アドレスに書き換えられるまでの間
  • リードレプリカ
    • 参照専用の DB インスタンスを作成
    • データ同期は非同期レプリケーション方式のため、タイミングによっては最新情報が反映されていない可能性がある
    • データ同期でマスター DB マスター DB のパフォーマンスにほとんど影響を与えない
  • バックアップ/リストア
    • 自動バックアップ
      • 1日 1 回の自動的なバックアップを設定可能
      • バックアップの保持期間は最大 35 日
      • シングル AZ 構成の場合、短時間の I/O 中断時間が発生
    • 手動スナップショット
      • 任意のタイミングでバックアップを取得
      • 1 リージョンあたり 100 個まで
    • データのリストア
      • バックアップで取得したスナップショットから新規の RDS を作成可能
    • ポイントインタイムリカバリー
      • 直近 5 分前から 35 日前までの任意のタイミングの状態の RDS を新規に作成できる
      • 自動バックアップを有効にする必要がある

セキュリティ

  • ネットワークセキュリティ
    • VPC 対応 = インターネット接続できない VPC ネットワーク内で利用可能
    • セキュリティグループによる通信要件の制限が可能
    • 各データベースエンジンが提供する SSL を使った暗号化に対応
  • データ暗号化
    • 暗号化オプションを有効にすることでログなどの RDS に関連するすべてのデータが暗号化される
    • 暗号化オプションは途中で有効にすることはできない

Aurora

  • AWS が開発したデータベースエンジン

Redshift

  • データウェアアウス向けのサービス

構成

  • Redshift クラスタ
  • リーダーノード
  • コンピュートノード
  • ノードスライス

特徴

  • 列指向型(カラムナ)データベース
  • 多くの圧縮エンコード方式への対応
  • ゾーンマップ
  • 柔軟な拡張性
  • ワークロードの管理機能
  • Redshift Spectrum

DynamoDB

  • マネージド NoSQL サービス

特徴

  • 高可用設計
    • 単一障害点を持たない
    • 自動的に 3 つの AZ に保存される
  • スループットキャパシティ
    • テーブルやインデックスの作成時に読み取りと書き込みに必要なスループットを指定
    • ダウンタイムなしに変更可能
  • データをパーティションという単位で分散保存
  • プライマリキーとインデックス
  • 期限切れデータの自動メンテナンス(Time to Live、TTL)
    • 各項目に有効期限を設定すると、期限が過ぎたデータは自動的に削除される
  • DynamoDB Streams
    • 直近 24 時間の追加・更新・削除の変更履歴を保持する機能
  • Consistent Read
    • 強い一貫性を持った参照を行うためのオプション
    • RCU の消費が 2 倍となる
  • DynamoDB Accelerator(DAX)
    • DynamoDB の前段にキャッシュクラスタを構成する拡張サービス
    • 成功の向上だけでなく、PCU の確保を抑え、コスト削減にも貢献

Elastic Cache

  • インメモリ型データベースサービス

サポートされるエンジン

  • Memcahed
    • 最大 40 の Elastic Cache インスタンスで構成
    • 保存されるデータは各インスタンスに分散
    • アクセス用エンドポイント
      • ノードエンドポイント
      • 設定エンドポイント
    • スケールアウトとスケールイン時はデータの再マッピングの間、キャッシュミスが一時的に増加することがある
    • スケールアップとスケールダウン時は新規のクラスタを作成する必要がある
  • Redis
  • クラスタモード
    • 無効
      • キャッシュデータはすべて 1 つの Elastic Cache いんすたんすに保存
      • リードレプリカを最大 5 つまで作成できる
      • マスターインスタンスとリードレプリカのまとまりをシャドーと呼ぶ
    • 有効
      • 最大 500 のシャドーにデータを分割して保存可能
      • リードレプリカは 1 つのシャドーに対して最大 5 つまで
  • アクセス用エンドポイント
    • ノードエンドポイント
    • プライマリエンドポイント
    • 設定エンドポイント
  • スケーリング中には処理の大部分がオフラインとなる
  • CPU 使用率
  • Redis クライアントと Elastic Cache 間の通信と保存するデータの暗号化をサポート

その他のデータベース

  • Neptune
  • DocumentDB
  • Keyspaces
  • Timestream
  • QLDB
  • MemoryDB for Redis

Discussion