ForgeVision Engineer Blog

フォージビジョン エンジニア ブログ

Amazon S3のストレージクラスを今一度整理

好きなサービスはS3です!
こんにちわ、クラウドインテグレーション事業部のにゃんなか(中川)です



Amazon S3 サービスで提供するストレージクラスですが、
2018年11月に「S3 Intelligent-Tiering」が追加、また「S3 Glacier Deep Archive」も2019年に提供予定と、選択肢が充実してきましたね。

そこで、

今回のブログテーマは、
「Amazon S3のストレージクラスを今一度整理」です。


ストレージクラスの種類、特徴、そして主な用途をご紹介します!


※2020年11月 追記:
本記事執筆時点ではIntelligent-Tieringクラスは2階層(高頻度、低頻度)として 明記しておりますが、2020年11月に新たに2階層が追加されました。

現在は高頻度、低頻度のほかに「Archiveアクセス」「Deep Archiveアクセス」の2階層が機能追加されております。

「Archiveアクセス階層」はGlacier ストレージクラス、
「Deep Archiveアクセス階層」はGlacier Deep Archive ストレージクラスと同じパフォーマンスおよび料金です。

Bucketプロパティのintelligent-Tiering Archive 設定にて、Intelligent-Tiering ストレージクラスに保存されたオブジェクトのArchiveを有効にできます。
aws.amazon.com


本記事の構成

ストレージクラス一覧

S3には、保存する各データの格納方式であるストレージクラスという概念があります。

ストレージクラスは、ユーザにより指定可能で、指定したストレージクラスによりAWS利用料金は変わります。
ストレージクラスを選ぶ目的は何か?といえば=ランニングコストを下げるためと言ってもよいかと思います。(極端な話、コストをまったく気にしなければS3 標準のストレージクラスだけ利用する選択肢もよいかと思います)

ストレージクラスはどのような種類があるのでしょうか。一覧化したのが以下になります。

ストレージクラス 概要
標準   デフォルトのストレージクラス
標準-IA   S3 標準に比べオブジェクト格納料金が安価。ただしデータの読み出しに対して課金あり
Intelligent-Tiering   コストの異なる低頻度/高頻度の2階層ありオブジェクト別にアクセス頻度に応じて自動で階層移動。30日間アクセスがないオブジェクトは低頻度層に移動し、アクセスがあると自動的に高頻度層に移動
1ゾーン-IA   S3 標準-IAよりも安価。データの冗長率が低く、またデータの読み出しに対して課金あり
Glacier   とても安い(S3標準と比較しデータ格納料金は1/5)だがデータの読み出しに課金および数分~数時間がかかる
Glacier Deep Archive  S3 Glacierより安く最も低コストだがデータの読み出しに課金および長時間(12時間以内)かかる

※"IA"=Infrequent Accessの略で、低頻度のアクセスを意味します。
※その他ストレージクラスにRRS(低冗長化ストレージ)がありますが、現在はAWS非推奨であり、コストもS3 標準より高いことから利用するメリットは基本的にないため割愛します。



では各ストレージクラスの特徴について5つの観点から比較していきます。

ストレージクラスの特徴比較

比較① データ格納料金

データ格納料金は以下の通りです。

ストレージクラス データ格納料金
標準 最初の50TB $0.025/GB
次の450TB $0.024/GB、500TB~ $0.023/GB
標準-IA $0.019/GB
1ゾーン-IA $0.0152/GB
Intelligent-Tiering(高頻度層) 最初の50TB $0.025/GB
次の450TB $0.024/GB、500TB~ $0.023/GB
Intelligent-Tiering(低頻度層) $0.019/GB
Glacier $0.005/GB
Glacier Deep Archive $0.002/GB

※2019/2/20現在の東京リージョンの価格になります。最新情報はAWSサイトをご参照ください。 https://aws.amazon.com/jp/s3/pricing/

ぱっと見わかりづらいため、1000 GB保存時を例示します。

例:1000 GB格納時
標準 = 約$25/月
Intelligent-Tiering(高頻度層) = 約$25/月
Intelligent-Tiering(低頻度層) = 約$19 /月 ←標準利用時の24%引き
標準-IA = 約$19/月  ←標準利用時の24%引き
1ゾーン-IA = 約$15/月  ←標準利用時の40%引き
Glacier = 約$5/月  ←標準利用時の80%引き


上記のとおり、低価格のストレージクラスを利用することでランニングコストを大幅に抑えることも可能となります。

ただし後述しますが、ストレージクラスごとにリクエスト料金体系は異なることから、アクセス頻度も踏まえ最適なストレージクラスを選定する必要があります。

比較② リクエスト料金

リクエスト料金は以下の通りです。

ストレージクラス S3Selectによって返されたデータ S3Selectによってスキャンされたデータ PUT、COPY、POST、LISTリクエスト/1000リクエスト毎 他リクエスト/1000リクエスト毎 データ取り出し
標準 $0.0008/GB $0.00225/GB $0.0047 $0.00037 -
標準-IA $0.01/GB $0.00225/GB $0.01 $0.001 $0.01/GB
Intelligent-Tiering $0.0008/GB $0.00225/GB $0.0047 $0.00037 -
1ゾーン-IA $0.01/GB $0.00225/GB $0.01 $0.001 $0.01/GB
Glacier(例:スタンダード版) $0.005/GB $0.0092/GB $0.0571 $0.0571 $0.011/GB
Glacier Deep Archive (リリース前のため未確定) (リリース前のため未確定) (リリース前のため未確定) (リリース前のため未確定) (リリース前のため未確定)

※2019/2/20現在の東京リージョンの価格になります。最新情報はAWSサイトをご参照ください。 https://aws.amazon.com/jp/s3/pricing/
※Intelligent-Tieringは自動階層化に伴うオブジェクトモニタリング、階層移動に別途料金がかかります

高頻度のアクセスはリクエスト単価も安くデータ取り出し料金もかからないS3 標準がお得となります。

データ格納量とリクエスト数のバランスによっては実際どのストレージクラスを利用するのが安価であるかは変わる場合もあります。

ストレージクラスをご検討される際はユースケースに沿った条件を簡易見積ツールに入力し一度ご試算いただくとよいかと思います。
calculator.s3.amazonaws.com

比較③ 冗長性

格納データの冗長性は以下の通りです。
データの格納がいくつのAZ(アベイラビリティーゾーン)以上に冗長化し保存しているかについて示しています。

ストレージクラス 冗長性
標準 3AZ以上で分散
標準-IA 3AZ以上で分散
Intelligent-Tiering 3AZ以上で分散
1ゾーン-IA 1AZ以上
Glacier 3AZ以上で分散
Glacier Deep Archive 3AZ以上で分散

※なお1AZの耐久性は何れも99.999999999%となります。

1ゾーン-IAは障害に弱く、最悪1AZ障害でデータ破損する可能性もあるため、クリティカルなデータには利用しないことを推奨します。

比較④ 可用性/SLA

可用性/SLAは以下の通りです。

ストレージクラス 可用性 SLA
標準 99.99% 99.9%
標準-IA 99.9% 99%
Intelligent-Tiering 99.9% 99%
1ゾーン-IA 99.5% 99%
Glacier - -
Glacier Deep Archive - -

標準が最も可用性に優れ、SLAとして99.9%にて保障されております。
可用性についてはシステム要件によりSLA等が指定されている場合もあるため、要件を十分考慮した上で選定する必要があります。

比較⑤データ読み取りの即時性

格納データを読み取りしたい場合のデータアクセス即時性は以下の通りです。

ストレージクラス データ読み取りの即時性
標準 即時
標準-IA 即時
Intelligent-Tiering 即時
1ゾーン-IA 即時
Glacier 数分から数時間
Glacier Deep Archive 12時間以内

Glacierは安価でありますが、他ストレージクラスのようにすぐにデータを取り出すことはできません。
そのため、アーカイブとして長期保管するデータに対して有効となります。

各ストレージクラスの主な用途

各ストレージクラスについて特徴をふまえた主な用途は以下の通りです。

ストレージクラス 主な用途 主なユースケース
標準 アクセス頻度の高いデータ コンテンツ配信、ビッグデータ分析など、幅広いユースケース
標準-IA アクセス頻度は低いが、必要時にすぐにアクセスが必要なデータの長期保存 データのバックアップ等
Intelligent-Tiering アクセスパターンが予測不能または変化し、必要時にすぐにアクセスが必要なデータの長期保存 アクセスパターンが予測できないコンテンツ配信など
1ゾーン-IA アクセス頻度が低く、クリティカルではないデータの長期保存 サムネイル画像、データのセカンダリバックアップ等
Glacier アクセス頻度が非常に低く、必要時にすぐにアクセスが基本不要なデータの長期保存 長期アーカイブ(緊急性の高いアクセスあり)
Glacier Deep Archive アクセス頻度が非常に低く、必要時にすぐにアクセスが不要なデータの長期保存 長期アーカイブ(緊急性の高いアクセスなし)



ご紹介は以上となります。AWSでは価格改定および機能追加も頻繁にありますので最新の情報はAWSサイトにてご確認ください。
https://docs.aws.amazon.com/ja_jp/AmazonS3/latest/dev/storage-class-intro.html

さいごに

S3に限らないことですが、AWSでは機能追加や価格改定が度々行われております。
既に運用中のシステムにおいてもコスト最適化のために定期的な見直しをお勧めします。

フォージビジョン エンジニア ブログをご覧頂き、ありがとうございました。

■今一度整理シリーズ techblog.forgevision.com

techblog.forgevision.com

■その他S3関連記事 techblog.forgevision.com