メニュー
Amazon Simple Storage Service
開発者ガイド (API Version 2006-03-01)

Amazon S3 のデータ整合性モデル

単一のキーに対する更新はアトミックです。例えば、既存のキーに PUT を実行すると、後続の読み込みで古いデータが返されたり更新されたデータが返されたりする可能性がありますが、壊れたデータや部分的なデータが書き込まれることはありません。

Amazon S3 は、Amazon のデータセンターに配置された複数のサーバー間でデータを複製することにより、高い可用性を実現します。PUT リクエストが成功した場合は、データが安全に格納されています。ただし、変更に関する情報は Amazon S3 内でレプリケーションされる必要があり、これにはしばらくかかります。レプリケーションでは、次の動作を確認することができます。

  • 新しいオブジェクトを Amazon S3 に書き込み、すぐに読み取りを試みると、変更が完全に反映されるまで、「キーが存在しません」というレポートが表示されることがあります。

  • 新しいオブジェクトを Amazon S3 に書き込み、すぐにバケット内のキーを一覧表示すると、変更が完全に反映されるまで、オブジェクトがリストに表示されないことがあります。

  • 既存のオブジェクトを置換し、すぐにそのオブジェクトの読み取りを試みます。変更が完全に反映されるまで、古いデータが返されることがあります。

  • 既存のオブジェクトを削除し、すぐにそのオブジェクトの読み取りを試みます。削除が完全に反映されるまで、削除済みのデータが返されることがあります。

  • 既存のオブジェクトを削除し、すぐにバケット内のキーのリストを表示します。削除が完全に反映されるまで、削除済みのオブジェクトが一覧に表示されることがあります。

米国スタンダードを除くすべてのリージョンでは、新しいオブジェクトの PUT については「書き込み後の読み込み」整合性、PUT および DELETE の上書きについては結果整合性を提供します。米国スタンダードリージョンの整合性モデルについては、前のセクション(「リージョン」)を参照してください。

注記

現在のところ、Amazon S3 はオブジェクトのロックをサポートしていません。同じキーに対して 2 つの PUT リクエストが同時に行われた場合、最新のタイムスタンプを持つリクエストが優先されます。これが問題になる場合は、アプリケーション内にオブジェクトロックメカニズムを構築する必要があります。

更新はキーベースであり、複数キーにまたがるアトミックな更新を行う方法はありません。例えば、ご自分で機能をアプリケーション設計に組み込まない限り、別のキーの更新に依存してキーを更新することはできません。

結果的に整合性のある読み込みと整合性のある読み込みの特徴について、以下の表で説明します。

結果的に整合性のある読み込み 整合性のある読み込み
古いデータを読み込むことがある 古いデータを読み込まない
読み込みの待ち時間は最小 読み込みの待ち時間が大きくなることがある
読み込みスループットは最大 読み込みスループットが小さくなることがある