AWS関連

【AWS】S3ストレージクラスを適切に使い分ける

はじめに

今回はずっと後回しにしてきたS3ストレージクラスについて整理していきます。

サクッと整理して、適切なストレージクラスを使いこなせる用になりましょう!

なお、今回明記している料金は、2021年4月時点の東京リージョンにおける料金、かつ最初の 50 TB/月 を抜粋して記載しておりますのでご留意ください。詳細な料金の確認は公式ドキュメントを参照ください。

ストレージクラス一覧

今回確認したストレージクラスの一覧は以下の通り。

  • S3 Standard
  • S3 Standard-IA
  • S3 Intelligent-Tiering
  • S3 One Zone-IA
  • S3 Glacier
  • S3 GlacierDeep Archive

前提知識

  • Infrequent Access (IA)

ストレージクラスに付いているIA は低頻度アクセスの略。
アクセス頻度が低いことで低い単価設定となっているが、データの取り出しには課金が発生する。

  • 最小オブジェクトサイズ

課金対象となる最小のオブジェクトサイズ。
”128KB” を例に説明すると、128KB を下回るオブジェクトを格納した場合でも、128KB のオブジェクトとして課金される。

  • 最小ストレージ期間

ストレージ料金が課金される最小の期間。
”30 日” を例に説明すると、30 日間以内にオブジェクトを削除、上書き、または別のストレージクラスに移行した場合は、30 日分の料金が発生する。
30 日以上保存されたオブジェクトについては、30 日の最小リクエスト料金が発生しない。

■ S3 Standard

  • デフォルトのストレージクラス
  • 頻繁にアクセスされるデータが対象
  • 単価は $ 0.025/GB

主な用途:汎用的なストレージクラスとしての利用

■ S3 Standard-IA

  • S3 Standard と同じ高い耐久性、高スループット、低レイテンシーでありながら低価格
  • S3 Standard と比較した料金: 76% ($ 0.019/GB)
  • ただし、データ取り出しに課金あり
  • 最小適格オブジェクトサイズは 128KB
  • 最小ストレージ期間は 30日

主な用途:アクセス頻度は低いが、必要に応じてすぐに取り出すことが必要なデータに利用

■ S3 Intelligent-Tiering

  • アクセスパターンに基づいて、コスト効率の高いストレージ階層(下記の4つ) を自動的に選択(料金が同等のストレージクラスをカッコ内に記載)
    • 高頻度アクセス階層(S3 Standard )
    • 低頻度アクセス階層(S3 Standard-IA)
    • アーカイブアクセス階層(S3 Glacier)
    • ディープアーカイブ階層(S3 Glacier Deep Archive)
  • オブジェクトの監視とストレージクラスの移動に対して料金が発生する
    • オブジェクト 1,000 件あたり 0.0025USD
  • 最小ストレージ期間は 30日

主な用途:新しいアプリケーションやデータレイクなど、予測できないアクセスパターンを持つデータセットに最適

■ S3 One Zone-IA

  • ひとつの AZ にデータを保存する
  • 可用性を下げることでコストを下げる
  • S3 Standard と比較した料金: 60.8% ($ 0.0152/GB)
  • データ取り出しに課金あり
  • 最小オブジェクトサイズは 128KB
  • 最小ストレージ期間は 30日

主な用途:存続期間が長く頻繁にアクセスされない、重要性の低いデータに利用

■ S3 Glacier

  • 長期のデータアーカイブ用
  • S3 Standard と比較した料金: 20% ($ 0.005/GB)
  • 取得時間を設定可能 (数分~数時間、3種類の取り出しオプション)
  • データ取り出しに課金あり
  • 最小オブジェクトサイズは 40KB
  • 最小ストレージ期間は 90日

主な用途:データの一部を数分で取得する必要があるような長期アーカイブに利用

■ S3 Glacier Deep Archive

  • 長期のデータアーカイブ用
  • S3 Standard と比較した料金: 8% ($ 0.002/GB)
  • 取り出し時間は 12 時間以内
  • Glacier より安価
  • データ取り出しに課金あり
  • 最小オブジェクトサイズは 40KB
  • 最小ストレージ期間は 180日

主な用途:ほとんどアクセスする必要がない長期アーカイブに利用

まとめ

それぞれの用途を改めて整理

改めて主な用途を整理すると以下のような感じになります。

  • S3 Standard :汎用的なストレージクラスとしての利用
  • S3 Standard-IA :S3 Standard と同等の性能を求めるがアクセス頻度が低い場合に利用
  • S3 Intelligent-Tiering :アクセスパターンが予測不能な場合に利用
  • S3 One Zone-IA :アクセス頻度が低く、可用性よりもコストを優先させたい場合に利用
  • S3 Glacier :(すばやい取り出しが必要な) 長期アーカイブに利用
  • S3 GlacierDeep Archive :(すばやい取り出しが不要な) 長期アーカイブに利用

コスト比較

S3 Standard を基準として料金を比較すると、以下のような感じになります。(先頭の数字がパーセンテージ)
S3 Intelligent-Tiering については、自動選別されたストレージクラスの課金となるのでハイフンとしています。

ストレージクラス コスト比較(%)
S3 Standard 100
S3 Standard-IA 76
S3 Intelligent-Tiering
S3 One Zone-IA 60.8
S3 Glacier 20
S3 GlacierDeep Archive 8

ふりかえり

今回ストレージクラスの整理を行う中で、初めて「最小オブジェクトサイズ」と「最小ストレージ期間」の存在を知りました。
単価が抑えれるからといってテキトーにストレージクラスを選択してしまうと、逆に高くつく場面が出てきそうなので要注意です。

また、(ただでさえコスパの良いS3料金ですが)場合によってはS3 Standard の8% ほどの料金で保管ができるのは衝撃的ですね。
適切に使いこなしてコスト削減を検討してみては如何でしょうか。

最後まで読んでいただきありがとうございます。