S3

S3の概要

AWSは3つの形式のストレージサービスを提供

◾️ブロックストレージ  ・EC2にアタッチして活用するディスクサービス  ・ブロック形式でデータを保存  ・高速、広帯域幅  ・例:EBS、インスタンスストア

◾️オブジェクトストレージ  ・安価かつ高い耐久性を持つオンラインストレージ  ・オブジェクト形式でデータを保存  ・例:S3、Glacier

◾️ファイルストレージ  ・複数のEC2インスタンスから同時にアタッチ可能な共有ストレージサービス  ・ファイル形式でデータを保存  ・例:EFS

Simple Storage Service(S3)

ユーザーがデータを容量制限なく保存可能なマネージド型で提供されるオブジェクト型ストレージ

【特徴】 ・高い耐久性  99.999999999%

・安価なストレージ  容量単価:月額1GB / 約3円

・スケーラブルで安定した性能  データは冗長化されて保存されデータ容量に依存しない性能がAWS側で保証される

・暗号化  転送中や保存時にデータを暗号化可能

【データ保存形式】 ・バケット  オブジェクトの保存場所  名前はグローバルでユニークな必要あり

・オブジェクト  S3に格納されるファイルでURLが付与される  バケット内オブジェクト数は無制限

・データサイズ  データサイズは0KBから5TBまで保存可能

S3のオブジェクト構成

・Key  オブジェクトの名前であり、バケット内のオブジェクトは一意に識別する

Value  データそのものであり、バイト値で構成される

・バージョンID  バージョン管理に用いるID

メタデータ  オブジェクトに付随する属性の情報

・サブリソース  バケット構成情報を保存および管理するためのサポートを提供  例:アクセス制御リスト(ACL

S3 Inteligent-Tiering

低頻度アクセスのオブジェクトを自動的に低頻度アクセス層に移動することでコストを削減する

S3の値段

保存データ容量、データ取得リクエストおよびデータ転送アウトに応じて課金される

◾️容量当たりの料金  ・最初の50TB / 月 0.025USD / GB  ・次の450TB / 月 0.024USD / GB  ・500TB / 月以上 0.023USD / GB

◾️データ取り出しリクエスト料金  PUT、COPY、POST、LISTリクエスト(1,000リクエスト当たり):0.0047USD  GET、SELECT、他の全てのリクエスト(1,000リクエスト当たり):0.00037USD

◾️データ転送料金 データ転送(イン)は無料 インターネットへのデータ転送(アウト)は以下の通り 1GBまで / 月 0.00USD / GB 次の9.999TB / 月 0.114USD / GB 次の40TB / 月   0.089USD / GB 次の100TB / 月  0.086USD / GB 150TB / 月より大きい 0.084USD / GB

S3の整合性モデル

S3は高い可用性を実現するため、データ更新・削除には結果整合性モデルを採用 同時書き込みはタイムスタンプ処理を実施

◾️新規登録  ・Consistency Read  ・登録時即時にデータが反映される

◾️更新  ・Eventual Consistency Read  ・更新直後はデータ反映に時間がかかる

◾️削除  ・Eventual Consistency Read  ・削除直後はデータ反映に時間がかかる

S3のアクセス管理

◾️IAMポリシー  ・IAMユーザー / サービスに対してS3サービスへのアクセス権限を設定することができる  ・一元的にユーザへのアクセス権限を管理

◾️バケットポリシー  ・バケットへのアクセス権をJSONで設定  ・他アカウントへの許可も可能  ・バケット単位の高度なアクセス管理向け

◾️ACL  ・バケットと個々のオブジェクトへのアクセス権限をXMLで設定する  ・他アカウントへの許可も可能  ・簡易的にアクセス管理向け

◾️著名付きURL  ・AWS SDKで生成した著名付きURLでS3のオブジェクトへの一定時間アクセスを許可

S3の暗号化

◾️SSE-S3  ・S3の標準暗号化方式で簡易に利用可能  ・暗号化キーの作成、管理をS3側で自動で実施  ・ブロック暗号の1つである256ビットのAdvanced Encryption Standard(AES-256)を使用してデータを暗号化

◾️SSE-KMS  ・AWS KMSに設定した暗号化キーを利用した暗号化を実施  ・ユーザ側でAWS KMSを利用して暗号化キーを作成、管理することが可能  ・クライアント独自の暗号キーを利用可能

◾️SSE-C  ・ユーザーが指定したキーによるサーバー側の暗号化(SSE-C)を使用することが可能  ・利用設定や管理が煩雑になるのがデメリット

◾️クライアントサイド暗号化(CSE)  ・クライアント側の暗号化では、AmazonS3に送信する前にデータを暗号化する方式  ・AWS KMSなどを利用して暗号化キーを作成、実施  ・アプリケーション内に保存したマスターキーを使用