S3 マルチリージョンアクセスポイントがフェイルオーバ制御をサポートしました

2022.11.30

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

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 マルチリージョンアクセスポイン経由で利用する必要がある場合、 今回のアップデートでサポートされたフェイルオーバー機能をお試し下さい。