S3 マルチリージョンアクセスポイントがフェイルオーバ制御をサポートしました
S3 マルチリージョンアクセスポイント は、 AWS Global Accelerator を応用した S3アクセス用の グローバルエンドポイントを提供します。
今回 S3 マルチリージョンアクセスポイントが、フェイルオーバー制御をサポートするアップデートがありましたので、紹介させていただきます。
S3 マルチリージョンアクセスポイント
S3 マルチリージョンアクセスポイントは、2021年にリリースされたサービスです。
今回の検証は、東京とオレゴンに双方向レプリケーション設定のS3バケットを作成。 以下記事の手順を踏襲し、S3 マルチリージョンレプリケーションの設定を行いました。
- マルチリージョンアクセスポイントの作成
- レプリケーションルールの作成
- マルチリージョンアクセスポイントの検証
レプリケーションとフェイルオーバー
従来「レプリケーション」であった項目が「レプリケーションとフェイルオーバー」になりました。
S3 マルチリージョンアクセスポイントの設定直後、東京、オレゴン の双方が「アクティブ」です。
ルーティングステータス
「ルーティングステータスの編集」が可能になりました。
東京リージョンをパッシブ(待機系)とする指定を行いました
東京リージョンのS3バケットのステータスが「パッシブ」、オレゴンのみが「アクティブ」になりました
動作確認
- S3マルチリージョンアクセスポイントで利用する S3バケットのレプリケーションを無効化しました。
- CloudShellを利用、東京とオレゴンのそれぞれのバケットに異なるキーのファイルを配置しました。
[cloudshell-user@ip-10-0-15-103 ~]$ touch test-ap-northeast-1.tmp [cloudshell-user@ip-10-0-15-103 ~]$ touch test-us-west-2.tmp [cloudshell-user@ip-10-0-15-103 ~]$ aws s3 cp test-ap-northeast-1.tmp s3://s3--####--ap-northeast-1/ upload: ./test-ap-northeast-1.tmp to s3://s3--####-ap-northeast-1/test-ap-northeast-1.tmp [cloudshell-user@ip-10-0-15-103 ~]$ aws s3 cp test-us-west-2.tmp s3://s3-####-us-west-2/ upload: ./test-us-west-2.tmp to s3://s3-####-us-west-2/test-us-west-2.tmp
- CloudShellを利用してS3マルチリージョンアクセスポイントを利用、アクティブなリージョンがhead-objectで参照されている事を確認しました。
[cloudshell-user@ip-10-0-15-103 tmp]$ aws s3api head-object --bucket arn:aws:s3::############:accesspoint/m3roi6x6htjux.mrap --key test-us-west-2.tmp { "AcceptRanges": "bytes", "LastModified": "2022-11-29T15:02:22+00:00", "ContentLength": 0, "ETag": "\"############\"", "VersionId": "WCTqiTDycHXZDAj3VckPMqfxTYzF_4fg", "ContentType": "binary/octet-stream", "Metadata": {} } [cloudshell-user@ip-10-0-15-103 tmp]$ aws s3api head-object --bucket arn:aws:s3::############:accesspoint/m3roi6x6htjux.mrap --key test-ap-northeast-1.tmp An error occurred (404) when calling the HeadObject operation: Not Found
フェイルオーバー
S3マルチリージョンアクセスポイントのフェイルオーバー操作を実施。
東京が「アクティブ」、オレゴンが「パッシブ」となりました。
- CloudShellを利用、東京リージョンのS3バケットが利用されている事を確認しました。
[cloudshell-user@ip-10-0-15-103 tmp]$ aws s3api head-object --bucket arn:aws:s3::############:accesspoint/m3roi6x6htjux.mrap --key test-us-west-2.tmp An error occurred (404) when calling the HeadObject operation: Not Found [cloudshell-user@ip-10-0-15-103 tmp]$ aws s3api head-object --bucket arn:aws:s3::############:accesspoint/m3roi6x6htjux.mrap --key test-ap-northeast-1.tmp { "AcceptRanges": "bytes", "LastModified": "2022-11-29T15:02:18+00:00", "ContentLength": 0, "ETag": "\"############\"", "VersionId": "MBr_2yjDvIed_zms5yQEXP4YYDHt1PIB", "ContentType": "binary/octet-stream", "Metadata": {} }
まとめ
S3レプリケーションのラグは通常は数秒ですが、 S3 RTC (Amazon S3 レプリケーション時間制御)を利用した場合、アップロード後 15 分以内にオブジェクトの 99.99% が複製されるSLOとなっています。
レプリケーションのラグが問題になる可能性があるワークロードで、複数のS3バケットを S3 マルチリージョンアクセスポイン経由で利用する必要がある場合、 今回のアップデートでサポートされたフェイルオーバー機能をお試し下さい。