より高い可用性とより良いパフォーマンスを保証するために、S3は何年もの間、結果整合性モデルに依存してきた。re:inventの最初の週に、AWSはS3が強力な書き込み後読み込み整合性をサポートするようになったと発表した。
S3およびその他の大規模分散システムの重要なテクノロジーの側面の1つは、結果整合性モデルだ。データを保存または変更するS3 APIを呼び出した後、データが永続的に保存される少しの時間枠があり、そのため、すべてのGETリクエストにまだ表されない。14年前のリリース以来、結果整合性は、分散開発に必要なS3のトレードオフと見なされてきた。
出典: https://aws.amazon.com/blogs/aws/amazon-s3-update-strong-read-after-write-consistency
AWSのチーフエバンジェリストであるJeff Barr氏は、AWSブログで次の変更について説明している:
すぐに有効になり、すべてのS3 GET、PUT、およびLIST操作、およびオブジェクトタグ、ACL、またはメタデータを変更する操作の整合性が高まりました。あなたが書くものはあなたが読むものであり、リストの結果はバケットにあるものを正確に反映します。これは、既存および新規のすべてのS3オブジェクトに適用され、すべてのリージョンで機能し、追加料金なしで利用できます。パフォーマンスへの影響はありません。必要に応じて、オブジェクトを1秒間に数百回更新できます。また、グローバルな依存関係はありません。
DynamoDBなどの他のサービスでは、AWSはすでに、デフォルト以外のオプションとして、プレミアム価格の強力な読み取り整合性を提供している。しかし、S3の強力な整合性の変更は、多くの開発者を驚かせ、興味深い議論を引き起こした。Cloud GuruでありAWS Serverless HeroのシニアマネージャであるForrest Brazeal氏は、次のようにツイートしている:
S3は強い整合性になりました。構成の変更や警告はありません。これは、史上最高のクラウドサービスによる非現実的な凄いこと (flex) です。
彼は、「S3はエンジニアリングの驚異である」と彼が信じる理由を説明する詳細な記事を書いた。一部のユーザは、代わりにS3の成果について質問しています。コンピュータ科学者でFreeBSDセキュリティオフィサの名誉教授であるColin Percival氏は、次のように質問している:
S3が強い整合性を持つことは素晴らしいですが、「可用性に影響がない」という主張を理解できません。S3がパーティション化された場合、可用性を犠牲にすることなく、この改善された整合性保証を維持することはできません...
Michael Shapiro氏は同意します:
また、パフォーマンスへの影響がないと彼らがどのように主張しているかについても混乱しています。整合性とレイテンシの間にトレードオフはないのでしょうか?
Wellcome Trustのソフトウェア開発者であるAlex Chan氏は、次のような利点について質問している:
S3の強力な整合性に関する多くの議論は、これを実現するために必要な技術的スキルと賢さに驚かされました。それが私たち全員がとても感銘を受けている (そして確かに印象的です) のはなぜか、それとも私が見逃しているいくつかの新しいユースケースの説明がありますか?
Sentia GroupのAWSテクノロジの責任者であるLuc van Donkersgoed氏は、データレイクの操作にどのように役立つかを説明する記事を書いた:
多くのユースケースでは、結果整合性は問題ありません。ユーザのプロフィール写真をソーシャルメディアに保存するとします。誰かが自分の画像を更新し、他の誰かが同じ秒で自分のプロフィールを表示した場合、古い画像がまだそこにあるかどうかは関係ありません。次回訪問したときに更新されます。ただし、S3はデータレイクにますます使用されています。これらのユースケースでは、S3バケットにレポート、分析データ、クリックストリーム、およびその他の多くの種類の時間依存データが含まれている可能性があります。強力な書き込み後読み込み整合性のリリースにより、これらのデータ処理アプリケーションは、最新のデータを利用できることが保証されています。
AWSの長期顧客であるDropboxは、S3の強力な整合性が34PBのデータレイクをいかに簡素化したかをビデオで示している。
re:inventで、AWSは、複数の宛先バケットを使用したレプリケーション、リージョン間での双方向レプリケーション、バケットキーなど、S3のその他の改善と新機能を発表した。