DynamoDB Global Tables でマルチリージョンデータベースを構築 - アクティブ-アクティブレプリケーション
Global Tables によるマルチリージョンレプリケーション、コンフリクト解決、DR 設計を解説します。
Global Tables の概要
Global Tables は DynamoDB テーブルを複数リージョンにレプリケーションするマルチリージョンデータベースです。Aurora Global Database がリーダー/ライターの構成であるのに対し、Global Tables は全リージョンで読み書き可能なアクティブ-アクティブ構成を提供します。
この分野について体系的に学びたい方は、関連書籍 (Amazon) も参考になります。
レプリケーションと DR
レプリカテーブルの追加はコンソールからリージョンを選択するだけで、既存データが自動的にレプリケーションされます。書き込みは各リージョンのローカルテーブルに実行され、非同期で他リージョンにレプリケーションされます。同一アイテムが複数リージョンで同時に更新された場合、last-writer-wins (タイムスタンプが最新の書き込みが優先) で自動解決されます。DR 設計では Route 53 のヘルスチェックとフェイルオーバーで、プライマリリージョンの障害時にセカンダリリージョンに自動切り替えします。
さらに詳しく知りたい方は、関連書籍 (Amazon) で理解を深められます。
まとめ
Global Tables はアクティブ-アクティブのマルチリージョン DynamoDB を提供するサービスです。1 秒以内のレプリケーションと last-writer-wins で、グローバルアプリケーションの低レイテンシアクセスと DR を実現します。
AWS の優位点
- 複数リージョンにテーブルをレプリケーションし、各リージョンで読み書き可能なアクティブ-アクティブ構成を実現する
- レプリケーションレイテンシは通常 1 秒以内で、リージョン間のデータ整合性を維持する
- last-writer-wins のコンフリクト解決で、同一アイテムへの同時書き込みを自動処理する
- リージョン障害時に Route 53 のフェイルオーバーで別リージョンに切り替え、RPO ほぼゼロの DR を実現する
- Version 2019.11.21 でオンデマンドキャパシティとトランザクションをサポートする
同じテーマの記事
Amazon Aurora Global Database で実現するマルチリージョン構成 - DR とグローバル読み取りの設計
Aurora Global Database によるクロスリージョンレプリケーション、1 秒未満の RPO での DR 設計、グローバル読み取りの活用法を解説します。
Cassandra 互換データベース - Amazon Keyspaces で実現するサーバーレスな分散データベース
Amazon Keyspaces (for Apache Cassandra) と DynamoDB を活用した分散データベースの設計・運用方法を解説します。
Amazon DynamoDB Accelerator (DAX) でマイクロ秒レイテンシを実現 - インメモリキャッシュの設計
DAX によるDynamoDB の読み取り高速化、キャッシュ戦略、クラスタ設計を解説します。
ドキュメントデータベース活用 - Amazon DocumentDB と DynamoDB で実現する柔軟なデータモデリング
Amazon DocumentDB と DynamoDB を活用したドキュメントデータベースの設計・運用方法を解説します。
Amazon DocumentDB の Change Streams で構築するイベント駆動アーキテクチャ
DocumentDB の Change Streams による変更データキャプチャ、Lambda トリガーとの統合、リアルタイムデータ同期パターンを解説します。
Amazon DocumentDB で MongoDB ワークロードをマネージドに運用 - ドキュメントモデルとクエリ設計
DocumentDB による MongoDB 互換データベースの運用、インデックス設計、グローバルクラスターの活用を解説します。
Amazon DocumentDB で運用する MongoDB 互換データベース - 設計パターンとスケーリング
DocumentDB の MongoDB 互換性、インスタンスクラスの選定、Elastic Clusters によるシャーディング、バックアップ戦略を解説します。
Amazon DynamoDB のテーブル設計パターン - シングルテーブル設計と GSI の活用
DynamoDB のパーティションキー設計、シングルテーブルデザイン、GSI によるアクセスパターンの実現を解説します。
Amazon ElastiCache のキャッシュ設計 - Redis と Memcached の選定とキャッシュ戦略
ElastiCache の Redis と Memcached の選定基準、Lazy Loading・Write-Through のキャッシュ戦略、Serverless モードの活用法を解説します。
グラフデータベース - Amazon Neptune で実現する高度な関係性データの分析と活用
Amazon Neptune によるグラフデータベースの構築と、複雑な関係性データの分析手法を解説します。ソーシャルネットワーク、不正検知、ナレッジグラフなど、グラフモデルが威力を発揮するユースケースと設計パターンを紹介します。
Amazon Keyspaces で運用する Apache Cassandra 互換データベース - サーバーレスで始める広域分散DB
Amazon Keyspaces の Cassandra 互換性、オンデマンドとプロビジョンドのキャパシティ選定、パーティションキー設計を解説します。
Amazon Keyspaces で Cassandra ワークロードをマネージドに運用 - CQL 互換とサーバーレス
Keyspaces による Cassandra 互換データベースの運用、CQL の活用、オンデマンドキャパシティの設計を解説します。
台帳データベース - Amazon QLDB で実現する改ざん不可能なデータ記録と監査証跡
Amazon QLDB (Quantum Ledger Database) による改ざん不可能な台帳データベースの構築と、DynamoDB との組み合わせによるハイブリッドデータアーキテクチャを解説します。金融取引、規制コンプライアンス、サプライチェーンでの活用パターンを紹介します。
Amazon Managed Blockchain で構築するプライベートブロックチェーン - Hyperledger Fabric の運用
Managed Blockchain による Hyperledger Fabric ネットワークの構築、チェーンコードの開発、メンバー管理とガバナンスを解説します。
Amazon MemoryDB for Redis - 耐久性を備えたインメモリデータベースの設計と活用
MemoryDB の Multi-AZ 耐久性、ElastiCache との使い分け、プライマリデータベースとしての活用パターンを解説します。
Amazon MemoryDB for Redis で耐久性のあるインメモリデータベースを構築 - キャッシュとプライマリデータストアの統合
MemoryDB による Redis 互換インメモリデータベースの運用、耐久性の仕組み、ElastiCache との使い分けを解説します。
Amazon Neptune でグラフデータベースを構築 - ナレッジグラフとソーシャルネットワーク分析
Neptune によるグラフデータベースの構築、Gremlin/SPARQL クエリ、Neptune Analytics の活用を解説します。
Amazon RDS で運用するマネージドデータベース - Multi-AZ とリードレプリカの設計
RDS による Multi-AZ 構成、リードレプリカ、自動バックアップ、Performance Insights の活用を解説します。
Redis 互換データベース - Amazon MemoryDB と ElastiCache で実現する高速インメモリデータストア
Amazon MemoryDB for Redis による耐久性のあるインメモリデータベースと、Amazon ElastiCache によるキャッシュレイヤーの構築方法を解説します。マイクロ秒レベルの読み取りレイテンシと高可用性を両立する設計パターンを紹介します。
リレーショナルデータベース - Amazon RDS と Aurora で実現する高可用性データベース
Amazon RDS と Aurora を活用したリレーショナルデータベースの構築方法を解説します。
サーバーレスデータベース - DynamoDB で実現するスケーラブルなデータ管理
AWS DynamoDB を中心としたサーバーレスデータベースの活用方法を解説します。
時系列データベース - Amazon Timestream で IoT・メトリクスデータを効率管理する
Amazon Timestream を使った時系列データの管理・クエリ・分析を解説。IoT センサーデータやアプリケーションメトリクスの格納、自動階層化ストレージ、SQL クエリによる分析を紹介します。
Amazon Timestream で構築する時系列データ分析基盤 - IoT データの格納とクエリ最適化
Timestream による時系列データの格納、メモリストアとマグネティックストアの使い分け、SQL クエリの最適化を解説します。