S3 テーブルのレプリケーション
Amazon S3 Tables は、Amazon S3 テーブルバケットに保存されている Apache Iceberg テーブルの自動レプリケーションをサポートしています。レプリケーション先は、同じ AWS リージョン内、複数の AWS リージョン間、同じアカウント、または他の AWS アカウントとすることができます。テーブルのレプリケーションを設定することで、複数の場所でデータの読み取り専用レプリカを維持できます。レプリカを使用して、データの可用性を高め、コンプライアンス要件を満たし、分散アプリケーションのアクセスパフォーマンスを向上させることができます。
S3 Tables レプリケーションは、スナップショット、メタデータ、データファイルを含むすべてのテーブル更新を送信先テーブルにソーステーブルと同じ順序でコミットすることで、データ整合性を維持します。
S3 Tables レプリケーションを使用する状況
S3 Tables レプリケーションは、次の目的で使用できます。
-
レイテンシーを最小にする — ユーザーが地理的に離れた 2 つの場所にいる場合、ユーザーにより近い AWS リージョンにリードレプリカを保持することで、テーブルにアクセスする際のレイテンシーを最小にすることができます。
-
規制コンプライアンス – 特定の地理的な場所または AWS アカウントでリードレプリカを維持できるため、特定の規制またはコンプライアンス要件を満たすのに役立ちます。レプリケーション先テーブルバケットを設定して、ソースとは異なる AWS KMS キーを持つテーブルを暗号化できます。
-
一元化された分析 – データが複数の AWS リージョンに分散している場合は、リージョン固有のデータセットを一元化されたリージョンにレプリケートして、統合レポート、クロスリージョン分析、機械学習モデルトレーニングを行うことができます。これにより、リージョン間でクエリを実行したり、カスタムデータ集約パイプラインを構築したりする必要がなくなります。
-
テストと開発環境 – 本番稼働用テーブルのリードレプリカを別々の AWS アカウントまたはテーブルバケットに作成して、開発チームと QA チームに現実的なテストデータを提供できます。これにより、テストワークロードが本番稼働システムから分離され、手動エクスポートやデータ同期プロセスなしで、テスト環境に最新の本番稼働用と同様のデータが保持されます。
機能
S3 Tables レプリケーションには以下の機能があります。
S3 Tables の読み取り専用レプリカ
S3 Tables レプリケーションは、テーブルバケット間で Apache Iceberg テーブルの読み取り専用レプリカを作成します。Iceberg 互換エンジンを使用して、レプリカを個別にクエリできます。
自動的に管理されるレプリカ
S3 Tables レプリケーションサービスは、レプリカテーブルを自動的に管理します。レプリケーションは通常、ソースの更新から数分以内にレプリカを更新します。S3 Tables は、整合性を維持するために、ソーステーブルと同じ順序ですべての更新をコミットします。
複数の送信先へのレプリケーション
同じテーブルを複数の送信先テーブルバケットにレプリケートできます。レプリケーション先は、同じ AWS リージョン内、複数の AWS リージョン間、同じ AWS アカウント、または他の AWS アカウントとすることができます。
独立したスナップショット保持
レプリカテーブルのスナップショットの有効期限はソーステーブルから独立しているため、必要に応じてレプリカテーブルに異なる保持期間を設定できます。例えば、レプリカテーブルの 90 日間の保持期間を設定しながら、スナップショットを 30 日間保持するようにソーステーブルを設定できます。レプリカの保持期間を長く設定した場合、ソースで期限切れになったスナップショットはレプリカで引き続き使用でき、クエリできます。この設定は、履歴分析のための拡張タイムトラベル機能を提供します。
レプリカテーブルを低コストのストレージ階層に維持する
S3 Intelligent-Tiering ストレージクラスを使用するようにレプリケート先テーブルバケットを設定できます。これにより、パフォーマンスへの影響や運用上のオーバーヘッドなしに、アクセスパターンに基づいてストレージコストが自動的に最適化されます。S3 Intelligent-Tiering は、アクセス頻度が低いレプリカテーブルに適しています。
S3 Tables レプリケーションの詳細については、以下のトピックを参照してください。