S3をクロスリージョンレプリケーションで冗長化する方法

 

【S3】クロスリージョンレプリケーションについて

異なる AWS リージョンにある2つのバケット間で、オブジェクトを自動的に非同期にコピーする機能です。

バケットに対するオブジェクト作成・更新・削除などのデータ処理のイベントをトリガーとしてレプリ ケーションが実行されます。

クロスリージョンレプリケーションは同じ AWS アカウントが所有するバケットにも、異なるアカウントが所有するバケットにも設定できます。

 

何のためにやる?

ユースケース

複数のEC2インスタンスに対してWEBアプリケーションを利用しています。

このEC2インスタンスから別リージョンのS3にアクセスする際に、

VPCエンドポイントを使用することを決定しました。

現在のアーキテクチャではVPCエンドポイントをそのまま使用できないようです。

別VPCエンドポイントを利用してS3バケット内のコンテンツをシェアする場合など。

 

 

特徴

クロスリージョンレプリケーションは同じ AWS アカウントが所有するバケットにも、異なるアカウントが所有するバケットにも設定できます。

クロスリージョンレプリケーションは、オブジェクトの登録や削除と同時に実行されます

AWS CLIのコマンド操作によって手動で実行することが可能

マネジメントコンソール上ではオブジェクトを登録すれば自動でレプリケーションされるため

マネジメントコンソール上でクロスリージョンレプリケーションを有効化する設定は可能だが、現段階でバケット間の同期をとる操作はできない。

双方向レプリケーションは可能ですが、双方向でのクロスリージョンレプリケーション設定が別途必要となる

 

VPCエンドポイントはリージョン内のポイントであるため、リージョン外からはアクセスできません。

したがって、エンドポイントを使用するには、使用されるリージョンに対して、 S3 クロスリージョンレプリケーションによってS3オブジェクトをコピーする必要があります。

これによって、対象リージョンにS3オブジェクトをレプリケーションしておいて、そのリージョンに対するVPCエンドポイントによるアクセスを構成します。 

 

AWS CLIのコマンド操作によって手動で実行することが可能です。

やり方

マネジメントコンソール上のレプリケート操作

マネジメントコンソール上ではオブジェクトを登録すれば自動でレプリケーションされます。

マネジメントコンソール上でクロスリージョンレプリケーションを有効化する設定は可能が、現段階のバケット間の同期をとる操作はできません。

その場合はAWS CLIコマンドを利用します。