
目次
こんにちは、AWSエンジニアの@ダーシーです。
今回はS3のクロスリージョンレプリケーションについてお勉強したいと思います。
ストレージのバックアップを考えた人ならわかると思いますが、容量の大きいストレージ全体を一気にコピーするのは非現実的です。
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コマンドを利用します。
冗長化されているか常に監視する
構築したあとは以下のような運用方法を考えなければなりません。
どのリージョンにどの名前のオブジェクト、どのサイズで格納されているのか
どのタイミングで同期されるのか
サイズが同じなのか
正しい動きなのかどうやって判断すればよいか
監視のやり方はいろいろ