ちょっと話題の記事

【アップデート】S3の一貫性に変更があります

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

ウィスキー、シガー、パイプをこよなく愛する大栗です。 本日のアナウンス(要ログイン)で、S3の一貫性に一部変更があることが発表されました。変更があったのは"US Standard"という聞きなれないリージョンとなります。

リージョン=US Standard?

S3に詳しい方はご存知かと思いますが、S3のリージョンにバージニア(us-east-1)が存在しません。替わりにUS Standardというリージョンがあります。歴史的経緯もあるのだと思いますが、s3.amazonaws.com(バージニア北部または太平洋岸北西部)とs3-external-1.amazonaws.com(バージニア北部のみ)の2箇所のエンドポイントが使用できます。

何が変わったの?

US Standardは一貫性が他のリージョンと異なっていましたが、他のリージョンと同じ整合性モデルが使用できる様になりました。変更点は以下となります。

操作 リージョン 一貫性モデル 変更点
新しいオブジェクトのPUT US Standard 結果整合性 / 「書き込み後の読み込み」整合性 「書き込み後の読み込み」整合性が利用できる
新しいオブジェクトのPUT その他 「書き込み後の読み込み」整合性 なし
PUTの上書き US Standard 結果整合性 なし
PUTの上書き その他 結果整合性 なし
DELETE US Standard 結果整合性 なし
DELETE その他 結果整合性 なし

なお、US Standardではエンドポイントで整合性が異なり以下の様にs3-external-1.amazonaws.comを使用することで「書き込み後の読み込み」整合性が利用できます。US Standardでもエンドポイントによって整合性モデルが異なるので注意してください。

エンドポイント 整合性モデル
s3.amazonaws.com 結果整合性
s3-external-1.amazonaws.com 「書き込み後の読み込み」整合性

つまり?

今までUS StandardではS3へオブジェクトを新規追加するときに、書き込んだ直後に読み込みを行うとオブジェクトが読めないことがあり得る整合性モデルでした。そのためアプリケーション側で対応が必要な場合がありました。「書き込み後の読み込み」整合性がが利用できる様になったので、アプリケーションをシンプルにできるかと思います。

さいごに

US Standardの整合性モデルの変更であるため影響する方は少ないかと思いますが、グローバル展開をしているサービスでアプリケーションがシンプルになるのではないかと思います。