1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【DynamoDB/Aurora】グローバルデータベースとグローバルテーブルの違いがスッキリわかる解説 #AWS

Last updated at Posted at 2024-11-03

はじめに

AWSのソリューションアーキテクト・プロフェッショナル試験に挑むにあたり、グローバルデータベースグローバルテーブルの違いが何度出てきても混乱してしまう、という方も多いのではないでしょうか。
私も業務でデータベースに触れる機会が少なく、試験対策で何度もこの2つの違いに立ち返る必要がありました。そこで、ここでその違いをスッキリ理解し、まとめておきたいと思います。

image.png

一言要約

  • グローバルテーブルDynamoDB専用で、複数リージョン間でリアルタイムなデータ同期を行う機能。レイテンシー低減(ユーザに「おせぇな」と感じさせない)が目的
  • グローバルデータベースAurora専用で、データの耐障害性と災害復旧のために遠隔リージョンへのレプリケーションを提供。高可用性・障害対応(地震とか起きても大丈夫だった(´ω`)ホッ)と思わせる)が目的

理解するためのおすすめの順番

  1. マルチAZ、クロスリージョンとは
  2. クロスリージョンとクロスデータベース

※もし「①はわかる」という方は読み飛ばしててもOKです。

まずは基礎から:①マルチAZとクロスリージョンとは?

AWSでは、データの可用性や安全性を向上させるために「マルチAZ (アベイラビリティゾーン)」と「クロスリージョン」があります。似ていますが役割が異なります。

  • マルチAZ

    • 概要: 1つのリージョン内で複数のアベイラビリティゾーン (AZ) にデータをレプリケートする構成です。
    • 用途: 主に障害対策です。同じリージョン内でのゾーン障害があっても、データの冗長性を確保できます。
    • 具体例: 東京リージョンの2つのAZ (ap-northeast-1a と ap-northeast-1c) にデータを配置して、片方のゾーンに障害があっても自動的に切り替わる。
  • クロスリージョン

    • 概要: 複数のリージョン間でデータをレプリケートする構成です。
    • 用途: 地理的な災害対策や、ユーザーが複数のリージョンからアクセスする場合に便利です。
    • 具体例: 東京リージョンとオレゴンリージョンの間でデータを同期して、どちらかのリージョンがダウンしてもアクセス可能にする。

②グローバルテーブルとグローバルデータベースの違いをわかりやすく解説

1. グローバルテーブル (DynamoDB専用)

特徴:
グローバルテーブルはDynamoDBで利用できる機能で、複数のリージョン間でデータをリアルタイムに自動的に同期します。各リージョンが独立してデータの読み書きを行え、リージョン間のレイテンシを低減します。

具体例:
例えば、日本とアメリカに支社がある企業が、各拠点のDynamoDBテーブルをグローバルテーブルで接続しているとします。日本のユーザーがデータを更新すると、アメリカのDynamoDBにも即時にその変更が反映され、両国のユーザーが同じデータをシームレスに共有できます。

用途:
複数リージョンでリアルタイムなデータの整合性が必要な場合や、ユーザーがグローバルにアクセスするようなシナリオで最適です。

2. グローバルデータベース (Aurora専用)

特徴:
グローバルデータベースはAurora専用の機能で、1つのリージョンに配置されたプライマリデータベースが他のリージョンに読み取り専用のレプリカを持つ構成です。レプリカはプライマリデータベースの変更を継続的に受け取り、災害発生時には他のリージョンのレプリカをマスターに昇格して使用します。

具体例:
例えば、東京リージョンにプライマリAuroraデータベース、シンガポールリージョンにリードレプリカを配置します。東京で障害が発生した際には、シンガポールのレプリカが自動的にプライマリに昇格し、ダウンタイムを最小限に抑えて業務を継続できます。

用途:
主に災害復旧や耐障害性を重視する場合に利用します。グローバルにアクセスするアプリケーションで、書き込みは少なく、読み取り中心のデータベースにも適しています。

まとめ

機能 サービス 主な用途 特徴 具体例
グローバルテーブル DynamoDB リアルタイムのデータ共有 複数リージョン間で即時にデータを同期 日本とアメリカの両方で同じデータを扱いたいアプリケーション
グローバルデータベース Aurora 災害対策・耐障害性向上 1つのプライマリと複数リージョンにリードレプリカを配置 東京で障害発生時にシンガポールのレプリカをマスターに昇格し、業務を継続する

AWSのグローバルテーブルとグローバルデータベースは、それぞれ特定のユースケースに応じて利用する設計がされています。DynamoDBのグローバルテーブルは、複数リージョンでリアルタイムなデータ同期を求める場面で活躍し、Auroraのグローバルデータベースは、災害発生時の復旧や耐障害性を高めたい場合に最適です。どちらを利用するかは、データの利用方法やアクセス頻度、目的に応じて選択すると良いでしょう。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?