はじめに
AWSのソリューションアーキテクト・プロフェッショナル試験に挑むにあたり、グローバルデータベースとグローバルテーブルの違いが何度出てきても混乱してしまう、という方も多いのではないでしょうか。
私も業務でデータベースに触れる機会が少なく、試験対策で何度もこの2つの違いに立ち返る必要がありました。そこで、ここでその違いをスッキリ理解し、まとめておきたいと思います。
一言要約
- グローバルテーブルはDynamoDB専用で、複数リージョン間でリアルタイムなデータ同期を行う機能。レイテンシー低減(ユーザに「おせぇな」と感じさせない)が目的
- グローバルデータベースはAurora専用で、データの耐障害性と災害復旧のために遠隔リージョンへのレプリケーションを提供。高可用性・障害対応(地震とか起きても大丈夫だった(´ω`)ホッ)と思わせる)が目的
理解するためのおすすめの順番
- マルチAZ、クロスリージョンとは
- クロスリージョンとクロスデータベース
※もし「①はわかる」という方は読み飛ばしてても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のグローバルデータベースは、災害発生時の復旧や耐障害性を高めたい場合に最適です。どちらを利用するかは、データの利用方法やアクセス頻度、目的に応じて選択すると良いでしょう。