マルチリージョンアクセスポイントに複数の S3 バケットを紐付けている際、バケット内のオブジェクト一覧が全て取得できない原因を教えてください
困っていること
保存しているオブジェクトが異なる 2 つの S3 バケットが "東京リージョン" と "バージニア北部リージョン" に存在します。この S3 バケットをマルチリージョンアクセスポイントを利用して、紐づけています。
東京リージョンの閉鎖的な VPC 環境(インターネット接続なし)に配置された EC2 インスタンスからオブジェクト一覧を取得する AWS CLI コマンドを実行したところ、"東京リージョンに存在する" S3 バケット内オブジェクトのみ取得できます。
"バージニア北部リージョンに存在する" オブジェクトが取得できない原因を教えてください。
どう対応すればいいの?
マルチリージョンアクセスポイントのグローバルエンドポイントに対して行われたアプリケーションリクエストは、AWS Global Accelerator を使用して、AWS グローバルネットワークを介して、アクティブなルーティングステータスを持つ最も近い S3 バケットに自動的にルーティングされるため、すべてのリージョンのオブジェクトを取得することはできません。
そのため、このように異なるオブジェクトが存在する S3 バケットを複数紐づけることはお勧めしません。
マルチリージョンアクセスポイントのグローバルエンドポイントに対して行われたアプリケーションリクエストは、AWS Global Accelerator を使用して、AWS グローバルネットワークを介して、アクティブなルーティングステータスを持つ最も近い S3 バケットに自動的にルーティングされます。
確認してみた
※ マルチリージョンアクセスポイント
※ 東京リージョン
※ バージニア北部リージョン
東京リージョンの閉鎖的な VPC 環境(インターネット接続なし)に配置された EC2 インスタンスからオブジェクト一覧を取得する AWS CLI コマンドを実行します。
東京リージョンに存在する S3 バケット内のオブジェクトのみ取得しています。
ドキュメント記載の通り、マルチリージョンアクセスポイントは、「同じオブジェクト (データ)」 が複数のリージョンに存在することを前提としています。リージョンごとに異なるデータを持つ場合の全データアクセスを目的としたものではないことをご認識ください。
参考資料
マルチリージョンアクセスポイントを使用したマルチリージョントラフィックの管理 - Amazon Simple Storage Service