StorageGRID WebscaleでのS3 REST APIの実装

クライアント アプリケーションは、ストレージ ノードやAPIゲートウェイ ノードへの接続、バケットの作成、オブジェクトの格納と読み出しにS3 REST API呼び出しを使用できます。

StorageGRID Webscaleシステムでは、オブジェクトの管理にInformation Lifecycle Management(ILM;情報ライフサイクル管理)ルールを使用しています。

ILMルールについては、『管理者ガイド』を参照してください。

競合するクライアント要求

競合するクライアント要求(2つのクライアントが同じキーに書き込む場合など)は、「latest-wins」ベースで解決されます。「latest-wins」評価は、S3クライアントが処理を開始するタイミングではなく、StorageGRID Webscaleシステムが特定の要求を完了したタイミングで行われます。

整合性の保証と制御

StorageGRID Webscaleでは、デフォルトで、新たに作成したオブジェクトのリードアフターライト整合性が保証されます。正常に完了したPUTに続くGETでは、新しく書き込まれたデータを読み取ることができます。既存のオブジェクトの上書き、メタデータの更新、および削除の整合性レベルは、結果整合性です。上書きは通常であれば数秒から数分で反映されますが、最大で15日かかることもあります。

StorageGRID Webscaleでは、各バケットまたはAPI要求で使用される整合性制御を管理できます。アプリケーションでの必要に応じて、ストレージ ノード間およびサイト間でオブジェクトの可用性と整合性のトレードオフを行うために、整合性制御を変更できます。

バケットの整合性制御の設定については、GET Bucket consistency要求およびPUT Bucket consistency要求を参照してください。

個々のAPI処理に対して整合性制御を設定するには、その処理でサポートされている整合性制御を要求ヘッダーで指定する必要があります。次の例では、GET Object処理に対して、整合性制御をstrong-siteに設定しています。

GET /bucket/object HTTP/1.1
Date: Sat, 29 Nov 2015 01:02:17 GMT
Authorization: AWS 9MOYPG9ACWPAJA1S72R5:jUGbYkLdBApjCWBgK4TxvOjfock=
Host: test.com
Consistency-Control: strong-site

Consistency-Controlヘッダーは、次のいずれかの値に設定できます。

バケットの処理の動作は次のようになります。

注:PUT Object処理とGET Object処理には、同じStorageGRID Webscale Consistency-Controlヘッダーを使用する必要があります。たとえば、「weak」を使用して書き込んだオブジェクトを「strong-global」を使用して再度読み取った場合、すべてのサイトにおける強い整合性は保証されません。