S3 Intelligent-Tieringの損益分岐点確認方法を解説!

記事タイトルとURLをコピーする

CR2課の前田です。

S3 Intelligent-Tieringを採用するとしたら、格納データのうち何%が低頻度アクセス階層に移動すると元が取れるんだろう?」(以降、損益分岐点と呼称)と思ったことはないでしょうか?

私は現在担当している案件において同じ疑問に遭遇し、確認した結果をこのブログに記載いたします。

おことわり

  • 料金は全て米ドル表記です。2026年4月時点の情報をもとに年間利用料を計算しています。
  • ライフサイクル移行以外のリクエスト料金(GET/PUT等)やデータ転送料金は、アクセスパターンによって大きく変動するため除外しています。
  • 本ブログは机上の計算のみで検証は伴っていないため、算出結果と実際の値にはズレがある可能性があることにご留意ください。

結論

  • S3 Intelligent-Tieringの損益分岐点は、オブジェクト数とオブジェクトサイズによって変動する
  • 具体的には、オブジェクト数を基準として発生するAWS利用料金と、オブジェクトサイズを基準として削減できるAWS利用料金のバランスで決まる
  • データ密度が高い(1オブジェクトあたりのオブジェクトサイズが大きい)ほど、損益分岐点は低くなる

S3 Intelligent-Tieringとは?

S3 Intelligent-Tieringは、オブジェクトのアクセスパターンを自動監視し、アクセス頻度に応じて最適なストレージ階層に自動移動してくれるストレージクラスです。弊社においても、これを利用することで年間60万円以上のコスト削減を達成できた事例が存在します。

主な特徴は以下の3つです:

  • 自動階層移動: 30日間アクセスがないと「Infrequent Access tier」という低コスト階層へ、90日間アクセスがないと「Archive Instant Access tier」という更なる低コスト階層へ自動移動
  • 即座のアクセス: すべての階層でミリ秒単位のアクセスレイテンシーを維持(Glacierのように取り出しに数時間要することがない)
  • 取り出し料金なし: 階層間の移動やデータ取り出しに追加料金は不要

利用方法

S3 Intelligent-Tieringの利用方法は2つあります。

1. アップロード時に直接指定

オブジェクトをS3にアップロードする際、ストレージクラスとしてINTELLIGENT_TIERINGを指定する方法です。


↓マネジメントコンソールで操作する場合


↓AWS CLIで操作する場合

aws s3 cp file.pdf s3://bucket-name/ --storage-class INTELLIGENT_TIERING


2. ライフサイクルポリシーで移行

既存のS3 Standardオブジェクトを、ライフサイクルポリシーで自動的にIntelligent-Tieringに移行する方法です。
個人的には、運用(例えばアプリで実行しているS3へアップロードする際のコマンドを変えたくないなど)を考慮するとこちらの方が良いかなと思います。

本記事では、ライフサイクルポリシーでの移行を前提として試算を行います。

Intelligent-Tieringが適しているパターン

以下のような特徴を持つデータには、Intelligent-Tieringが適しています。

1. アクセスパターンが不明確または変動する
どのオブジェクトがいつアクセスされるか予測困難な場合。手動でのストレージクラス管理が難しく、自動最適化のメリットが大きい。

2. 時間経過とともにアクセス頻度が低下する
格納直後は頻繁にアクセスされるが、徐々に減少するパターン。例えば、ログオブジェクト、過去のドキュメント、アーカイブ資料など。

3. 長期保存が必須
法令やポリシーにより、データを削除できず長期間保存する必要がある場合。一度低頻度になったデータは、時間経過とともにコスト削減効果が累積します。

4. 一定以上のオブジェクトサイズが格納されている
128KB未満のオブジェクトは階層移動の対象になり得ません。小さいオブジェクトが多い環境では、Intelligent-Tieringのコスト削減効果が限定的になります。反対に、オブジェクトサイズが大きければコスト削減効果は大きくなります。(後述)

S3 Intelligent-Tieringの料金体系と「アクセス」の定義

料金要素

S3 Intelligent-Tieringを利用する際、各階層に応じて利用料金が発生します。(※1※2)

1. ストレージ料金

  • Frequent Access tier: $0.025/GB/月(S3 Standardと同じ)
  • Infrequent Access tier: $0.0138/GB/月(30日間アクセスのないデータが対象)
  • Archive Instant Access tier: $0.005/GB/月(90日間アクセスのないデータが対象)

2. モニタリング料金

  • 料金: $0.0025/1,000オブジェクト/月
  • 対象: 128KB以上のオブジェクト(※3)
  • 目的: アクセスパターンを監視し、自動的に最適な階層に移動

3. ライフサイクル移行料金

  • 料金: $0.01/1,000リクエスト
  • 発生タイミング: S3 StandardからIntelligent-Tieringへライフサイクルポリシーで移行する場合。

※1…さらに低コストな階層「Archive Access tier」と「Deep Archive Access tier」も存在しますが、データ取り出しに数時間~12時間かかります。オプションで有効化するものであるため、本記事では除外しています。
※2…各階層間の移動によるコストは発生しません
※3…128KB未満のオブジェクトは、アクセス頻度に関わらず常にFrequent Access tierに配置され、モニタリング対象外となります。モニタリング料金はかからないものの、常にFrequent Access tierに配置されるため、前述の通りストレージ料金も削減されません(常に$0.025/GBが適用されます)。

「アクセス」の定義について

Intelligent-Tieringでは、特定の操作が「アクセス」としてカウントされ、階層移動のタイマーがリセットされます。

主なアクセス操作

  • GetObject: オブジェクトのダウンロード
  • PutObject: オブジェクトの上書き更新
  • CopyObject: オブジェクトのコピー

つまり、オブジェクトをダウンロードしたり上書きすると、そのオブジェクトはFrequent Access tierに戻り、30日間のカウントが0からリセットされます。

その他の操作や詳細な仕様については、AWS公式ドキュメント - How S3 Intelligent-Tiering worksをご参照ください。


損益分岐点の計算方法

ここからが本題となります。S3 Intelligent-Tieringの損益分岐点を計算する方法を、3つのステップで説明します。

用語の注意点:
以降の計算では下記のように紛らわしい用語が登場しますが、混同しないようご注意ください。

  • ライフサイクル移行: S3 StandardからIntelligent-Tieringへの初回移行(料金発生)
  • 階層間の自動移動: Intelligent-Tiering内でのFrequent Access ⇔ Infrequent Access間の移動(料金なし)

Step 1: S3 Standardからの追加コストを計算

Intelligent-Tieringには、S3 Standardにはない追加コストが発生します。 料金はオブジェクト数に依存します。

モニタリング料金(年間)

オブジェクト数 × $0.0025 / 1,000 × 12ヶ月

ライフサイクル移行料金

オブジェクト数 × $0.01 / 1,000

追加コスト合計

モニタリング料金 + ライフサイクル移行料金

Step 2: 低頻度アクセス階層に移動すべきオブジェクトサイズを計算

追加コストを回収するために、何GBのデータを低頻度アクセス階層に移動すればいいかを計算します。

追加コスト ÷ $0.13/GB = 低頻度アクセス階層に移動すべきオブジェクトサイズ(GB)

※$0.13/GBは、1GBをInfrequent Access tierに移行した場合の年間削減額です。
(S3 Standard: $0.025 × 12 = $0.30/年、Infrequent Access: $0.0138 × 12 = $0.17/年、差額: $0.13/年)


Step 3: 移行割合を計算

低頻度アクセス階層に移動すべきオブジェクトサイズを、総オブジェクトサイズで割って損益分岐点を算出します。

低頻度アクセス階層に移動すべきオブジェクトサイズ ÷ 総オブジェクトサイズ × 100 = 損益分岐点(%)

具体例での試算

上記の計算方法を使って、3つの具体例で損益分岐点を計算してみます。

例1: 630万件・1MB・6.3TB

前提条件

  • オブジェクト数: 630万件
  • オブジェクトサイズ: 1MB
  • 総オブジェクトサイズ: 6.3TB

Step 1: 追加コスト

モニタリング料金: 6,300,000 × $0.0025 / 1,000 × 12 = $189
ライフサイクル移行料金: 6,300,000 × $0.01 / 1,000 = $63
合計: $252

Step 2: 低頻度アクセス階層に移動すべきオブジェクトサイズ

$252 ÷ $0.13/GB = 1,938GB ≒ 1.9TB

Step 3: 損益分岐点

1.9TB ÷ 6.3TB × 100 = 30%

結論: 全体の約30%が低頻度アクセス階層に移動すれば元が取れる


例2: 630万件・10MB・63TB

前提条件

  • オブジェクト数: 630万件
  • オブジェクトサイズ: 10MB
  • 総オブジェクトサイズ: 63TB

Step 1: 追加コスト

モニタリング料金: 6,300,000 × $0.0025 / 1,000 × 12 = $189
ライフサイクル移行料金: 6,300,000 × $0.01 / 1,000 = $63
合計: $252

Step 2: 低頻度アクセス階層に移動すべきオブジェクトサイズ

$252 ÷ $0.13/GB = 1,938GB ≒ 1.9TB

Step 3: 損益分岐点

1.9TB ÷ 63TB × 100 = 3%

結論: 全体の約3%が低頻度アクセス階層に移動すれば元が取れる


例3: 630万件・100MB・630TB

前提条件

  • オブジェクト数: 630万件
  • オブジェクトサイズ: 100MB
  • 総オブジェクトサイズ: 630TB

Step 1: 追加コスト

モニタリング料金: 6,300,000 × $0.0025 / 1,000 × 12 = $189
ライフサイクル移行料金: 6,300,000 × $0.01 / 1,000 = $63
合計: $252

Step 2: 必要な移行オブジェクトサイズ

$252 ÷ $0.13/GB = 1,938GB ≒ 1.9TB

Step 3: 損益分岐点

1.9TB ÷ 630TB × 100 = 0.3%

結論: 全体の約0.3%が低頻度アクセス階層に移動すれば元が取れる


3つの例から分かること

オブジェクト数 オブジェクトサイズ 総データ量 S3 Standardからの追加コスト 損益分岐点
例1 630万件 1MB 6.3TB $252 約30%
例2 630万件 10MB 63TB $252 約3%
例3 630万件 100MB 630TB $252 約0.3%

重要なポイント:

  1. S3 Standardからの追加コストはオブジェクト数で決まる: オブジェクト数が同じなら、オブジェクトサイズに関わらず追加コストは同じ($252)
  2. 密度が高い(1オブジェクトあたりのオブジェクトサイズが大きい)ほど損益分岐点は低くなる: 総オブジェクトサイズが増えるため、同じ追加コストを回収するのに必要な低階層への移行割合が小さくなる

まとめ

  • S3 Intelligent-Tieringの損益分岐点は、オブジェクト数とオブジェクトサイズによって変動する
  • 具体的には、オブジェクト数を基準として発生するAWS利用料金と、オブジェクトサイズを基準として削減できるAWS利用料金のバランスで決まる
  • データ密度が高い(1オブジェクトあたりのオブジェクトサイズが大きい)ほど、損益分岐点は低くなる
  • 例: 630万件・6.3TBの場合は約30%、63万件・6.3TBの場合は約3%



地道に計算すればわかることではあるのですが、少し手間がかかることなので、どなたかの一助になれば幸いです。

前田 青秀(執筆記事の一覧)

2023年2月入社 技術4課改めCR課

AWS資格12冠

ジムに通い始めましたが、なるべく楽してマッチョになりたい…