亀のコツコツクラウドインフラ

2025年1月4日

【AWS DynamoDB】グローバルテーブルで高可用性を実現!設定手順とバックアップの役割を解説

はじめに

以下のような内容になっています。

  • AWS認定の資格を学習している
  • DynamoDBの同期を行いたい
  • DynamoDBのデータをバックアップしたい

この記事では、DynamoDBのグローバルテーブルの設定手順と補完的な役割であるバックアップについて解説します。

DynamoDBグローバルテーブルの設定手順

まずは、DynamoDBのサービスで任意のテーブルを作成します。
テーブルの作成方法は以下の記事を参考にしてください。

【初心者必見】DynamoDBの設定手順と活用法!概要と具体的な使い方を解説

「グローバルテーブル」のタブから「レプリカの作成」をクリックして、データを複製したいAWSリージョンを選択します。
※テストの場合は、念の為レコード数の少ないテーブルで複製しましょう。

設定を保存すると、グローバルテーブルが有効化されて、データの同期が行われます。

※テストの場合は、高コストなので余計な書き込みを行わないようにしましょう。

グローバルテーブルとバックアップの役割

DynamoDBのグローバルテーブルは、複数のAWSリージョン間でデータをリアルタイムに同期し、高可用性を実現するための機能です。

しかし、アプリケーションバグや誤ったデータ更新された場合、リアルタイム同期だけでは元の状態に戻せません。

そのため、以下のようなリスク対策をしましょう。

  • オンデマンドバックアップを定期的に作成して、スナップショットを保存しておく。
  • ポイントインタイムリカバリーを有効化して過去35日以内の任意の時点にデータを復元できるようにする。

これらを組み合わせることで、リアルタイム同期とデータ保護が可能になります。

DynamoDBグローバルテーブルとは

DynamDBグローバルテーブルは、複数のAWSリージョン間でデータをリアルタイムに同期する仕組みをです。高可用性と耐障害性が向上します。

例えば、あるリージョンで障害が発生しても、他のリージョンからデータを継続的に利用できるため、仕事を中断せずにデータを利用することができます。

また、ユーザーが複数の地域に分散している場合、最も近いリージョンからデータを取得することで、通信を早くすることができます。

DynamoDBグローバルテーブルのコスト

DynamoDBグローバルテーブルは高可用性とリアルタイム同期ができますが、高コストが発生します。

書き込みリクエストは、1KB以下のデータ書き込みに1WRUが必要です。
1WRU = 1KBでそれ以上超える場合は切り上げられます。

例えば、1.5KBである場合は2WRUとして換算されます。

ストレージコストは、データはすべてのリージョンに保存されるため、ストレージコストはリージョン数に応じて増加します。

データ転送コストは、データがリージョン間でレプリケートされる際に、転送料金が発生します。

※書き込みリクエストが高いので、使用しない場合はグローバルテーブルは必ず削除しておきましょう。

以下の条件だった場合のコストを例としてあげました。
・1日あたりの書き込み:10000件
・1件あたりのデータサイズ:0.5KB
・運用期間:1ヶ月(30日)

項目単価(東京/大阪)計算例月額コスト
書き込み¥1.82/WRU10,000 WRU × 2リージョン × 30日¥1,092,000
ストレージ¥30.28/GB/月(10,000件 × 0.5KB × 30日) ÷ 1024 × 2リージョン¥91.64
データ転送¥13.32/GB(10,000件 × 0.5KB × 30日) ÷ 1024¥19.51
2024年12月時点

ユースケース

ユースケースを一部解説します。

災害復旧

AWSリージョンが障害によってダウンした場合、別リージョンに自動的にフェイルオーバーすることでサービスの中断を防ぎます。

例えば、重要な顧客データを扱う金融システムや、常時稼働を行う必要がある医療システムでは、データを複数リージョンで同期して、どのリージョンでもアクセス可能な状態にしておくことで、災害時でもシステムを復旧できます。

グローバルユーザー対応

複数の国や地域にユーザーがいるアプリケーションで、データの読み取りや書き込みを一番近くのリージョンで行い、遅延を少なくします。

例えば、SNSやオンラインゲーム等では、世界中のユーザーがリアルタイムで同じデータにアクセスする必要があるため、グローバルテーブルが有効になります。

可用性の向上

システムの高可用性を確保したい場合に使用します。

例えば、ECサイトでは、特定のリージョンでのアクセス集中時にも、他リージョンからデータを取得してサービスを継続することができます。

まとめ

DynamoDBグローバルテーブルは、高可用性や耐障害性を確保するための機能です。バックアップ機能を併用することで、データの保護を行うこともできます。

この記事で紹介した手順を参考に、まずはグローバルテーブルの設定をしてみてください。
バックアップをして、データ保護を行い、信頼性の高いシステムを構築していきましょう。

この記事を書いた人

コツコツ亀

コツコツ亀

Webエンジニアとして活動中
AWSを使用してWebアプリケーションを作ったり、サーバーを構築したりしています。

関連記事

新着記事