データストレージ概要

ストレージの構成要素

本サービスのストレージは、サービス(Service), バケット(Bucket), オブジェクト(Object) という要素で構成されています。これらの要素はサービスがバケットを包含し、バケットがオブジェクトを包含する階層的な関係を持っています。

サービス(Service)

サービスは1つの契約とその契約に紐付くすべてのバケットの集合を表したものです

契約とは、本サービスの契約を意味しています。IIJサービスオンラインで表示される1つのサービスコードが1つの契約に対応します。

バケット(Bucket)

バケットはオブジェクトのコンテナ(入れ物)です。オブジェクトは1つのバケットに属します。バケット名は本サービス全体を通じて一意なものである必要があります

バケットには以下の制約があります。

  • 1つのバケットに格納可能なオブジェクトの数に制限はありませんが、バケットは1契約につき最大で 100個まで 作成できます。
  • バケット名については以下の規定に従わなければなりません。
    • 小文字(a-z)、数字(0-9)、ピリオド(.)、ダッシュ(-)で構成される。
    • 大文字を使用しない。
    • 数字または文字で開始する。
    • 文字列の長さが3~63の範囲内である。
    • IPアドレス表記でない(e.g., 192.168.5.4)。
    • バケット名の終端にダッシュを使用しない。
    • ピリオドを連続して使用しない。
    • ピリオドの前後にダッシュを使用しない(e.g., “my-.bucket.com” 、”my.-bucket”)。
オブジェクト(Object)

オブジェクトはデータ、オブジェクトキー、メタデータから構成されます。
オブジェクトキーは、URIで表現されたオブジェクトの識別子です。このオブジェクトキーによってバケット内のオブジェクトが一意に識別されます。

オブジェクトに付随する情報はメタデータとして管理されます。メタデータは名前と値のペアのセットです。オブジェクトをアップロードする際に任意の値を設定できます。


オブジェクトキーは一連のUnicode文字で、UTF-8にエンコードした時のバイト長の最大サイズは 950 Bytes です。 メタデータに任意の値を設定するには、オブジェクトをアップロードする際にHTTPリクエストヘッダに指定します。
オブジェクトの最大サイズは5TBです。 また、5GB以上のデータをアップロードするには、マルチパートアップロード  機能をご利用ください。


機能のご紹介

本サービスで提供する機能の概要を説明します。

ストレージ

HTTP/HTTPSを用いてデータの格納・取得操作を行えるシンプルなストレージです。S3クライアントツールなどを利用することで、どこからでも気軽に使用できるオンラインストレージサービスとして使うことができます。 また、RESTインタフェースのアプリケーションプログラミングインタフェース(API)を使用することで利用シーンに合わせた柔軟な操作を実現することもできます。

ストレージのAPIはAmazon S3ライクなREST APIです。


アクセスコントロール

アクセスコントロールリスト(ACL)及びバケットポリシーを使用してバケットとオブジェクトへのアクセス権限を管理できます。詳細は 【削除】アクセス制御 をご覧ください。

マルチパートアップロード

オブジェクトの最大サイズは5TBですが、PUT Object APIでアップロードできるサイズは 5GBまで という制限があります。 マルチパートアップロード を使用することで、5GB以上のデータをアップロードできます。
マルチパートアップロードを使用すると、単一のオブジェクトをパート(断片的なデータ)のセットとしてアップロードできます。各パートは任意の順番でアップロードできます。

マルチパートアップロードの利点として、

  • 5GB以上のデータをアップロード可能
    最大5TBのオブジェクトをアップロードできます。
  • 一時的なネットワークの問題に強い
    アップロードの最中にネットワークの問題でエラーになってしまった場合に、影響範囲をアップロード中のパートのみに局所化できます。
  • 並列でアップロードし、効率を上げられる
    複数のパートを並列にアップロードすることで、単一のアップロード時よりもスループットが向上する場合があります。

マルチパートアップロードには以下の制限があります。

  • 1つのマルチパートアップロードでアップロードできるパートの数は最大 10,000 までです。
  • (終端となるパートを除き)各パートのサイズは 5MB以上 でなければなりません。
マルチパートアップロードの流れ

マルチパートアップロードは以下の手順で使用します。

  1. マルチパートアップロードの開始(初期化): Initiate Multipart Upload
    • まず、マルチパートアップロードの開始を意味するマルチパートアップロードリソースを作成します。
    • リソース作成の際に払い出される アップロードID を用いて以下の操作を行います。
  2. 各パートのアップロード: Upload Part
    • Upload Part APIを用いて各パートをアップロードします。この時、各パートの上限サイズは 5GB以下 、最後のパート以外は 5MB以上 の制限があります。
  3. マルチパートアップロードの完了: Complete Multipart Upload
    • 全パートのアップロードが終わったら、 Complete Multipart Upload をおこないマルチパートアップロードを完了します。 完了後は1つのオブジェクトが生成され、マルチパートアップロードに紐付くすべてのパートが破棄されます。


マルチパートアップロードを中断するには Abort Multipart Upload を使用します。