Aurora PostgreSQL Limitless Database の アーキテクチャ
Limitless Database は、複数のデータベースノードで構成される 2 層アーキテクチャでスケールを実現します。ノードはルーターまたはシャードです。
-
シャードは Aurora PostgreSQL DB インスタンスで、それぞれがデータベースのデータのサブセットを保存するため、同時処理により書き込みスループットが向上します。
-
ルーターはデータベースの分散特性を管理し、データベースクライアントに単一のデータベースイメージを提供します。ルーターは、データの保存場所に関するメタデータを維持し、受信 SQL コマンドを解析して、それらのコマンドをシャードに送信します。次に、シャードからデータを集約して単一の結果をクライアントに返し、分散トランザクションを管理して分散データベース全体の一貫性を維持します。
Aurora PostgreSQL Limitless Database は、標準 Aurora DB クラスター とは異なり、ライター DB インスタンスとリーダー DB インスタンスの代わりに DB シャードグループを持ちます。Limitless Database のアーキテクチャを構成するすべてのノードは、DB シャードグループに含まれています。DB シャードグループ内の個々のシャードとルーターは、AWS アカウントに表示されません。DB クラスターエンドポイントを使用して、Limitless Database にアクセスします。
次の図は、Aurora PostgreSQL Limitless Database のアーキテクチャの概要を示しています。

Aurora PostgreSQL Limitless Database のアーキテクチャとその使用方法の詳細については、YouTube の AWS Events チャンネルで次の動画を参照してください。
標準 Aurora DB クラスターのアーキテクチャの詳細については、「Amazon Aurora DB クラスター」を参照してください。
Aurora PostgreSQL Limitless Database の重要な用語
- DB シャードグループ
-
Limitless Database ノード (シャードとルーター) のコンテナ。
- ルーター
-
クライアントからの SQL 接続を受け入れ、SQL コマンドをシャードに送信し、システム全体の一貫性を維持して、結果をクライアントに返すノード。
- シャード
-
シャードテーブルのサブセット、リファレンステーブルの完全なコピー、および標準テーブルを保存するノード。ルーターからのクエリを受け入れますが、クライアントから直接接続することはできません。
- シャードテーブル
-
シャード間でデータが分割されるテーブル。
- シャードキー
-
シャード間のパーティションを決定するために使用される、シャードテーブル内の列または列のセット。
- コロケーションテーブル
-
同じシャードキーを共有し、明示的にコロケーションとして宣言されている 2 つのシャードテーブル。同じシャードキー値のすべてのデータが、同じシャードに送信されます。
- リファレンステーブル
-
すべてのシャードにデータが完全にコピーされたテーブル。
- 標準テーブル
-
Limitless Database のデフォルトのテーブルタイプ。標準テーブルをシャードテーブルとリファレンステーブルに変換できます。
すべての標準テーブルは、システムによって選択された同じシャードに保存されるため、標準テーブル間の結合を 1 つのシャード内で実行できます。ただし、標準テーブルはシャードの最大容量 (128 TiB) によって制限されます。このシャードにはシャードテーブルとリファレンステーブルのデータも保存されるため、標準テーブルの有効な制限は 128 TiB 未満です。
Aurora PostgreSQL Limitless Database のテーブルタイプ
Aurora PostgreSQL Limitless Database は、シャード、リファレンス、標準の 3 種類のテーブルをサポートしています。
シャードテーブルのデータは、DB シャードグループ内のすべてのシャードに分散されます。Limitless Database は、テーブルをパーティション化するときに指定する列または列のセットであるシャードキーを使用して、これを自動的に実行します。シャードキーの値が同じすべてのデータが、同じシャードに送信されます。シャーディングはハッシュベースであり、範囲ベースまたはリストベースではありません。
以下は、シャードテーブルの適切なユースケースです。
-
アプリケーションが、データの個別のサブセットで動作する。
-
テーブルが非常に大きい。
-
テーブルが、他のテーブルよりも速く成長する可能性がある。
シャードテーブルはコロケーションできます。つまり、同じシャードキーを共有し、同じシャードキー値を持つ両方のテーブルのすべてのデータが同じシャードに送信されます。シャードキーを使用してテーブルをコロケーションして結合する場合、結合は 1 つのシャードで実行できます。これは、必要なすべてのデータがそのシャードに存在するためです。
リファレンステーブルは、DB シャードグループ内のすべてのシャード上にすべてのデータの完全なコピーを持ちます。リファレンステーブルは、一般的に書き込み量の少ない小さなテーブルに使用されますが、それでも頻繁に結合する必要があり、シャーディングには適していません。リファレンステーブルの例としては、日付テーブル、都道府県、市、郵便番号などの地理的データのテーブルなどがあります。
標準テーブルは、Aurora PostgreSQL Limitless Database のデフォルトのテーブルタイプです。これらは分散テーブルではありません。Aurora PostgreSQL Limitless Database は、標準テーブルと標準テーブル、シャードテーブル、リファレンステーブル間の結合をサポートしています。
Aurora PostgreSQL Limitless Database の請求
Aurora PostgreSQL Limitless Database の請求方法については、「Aurora 向け DB インスタンスの請求」を参照してください。
Aurora の料金情報については、Aurora の料金表ページ