Open4
S3のDEEP_ARCHIVEクラスのオブジェクトを復元した場合のコストをAthenaで計算する

S3のオブジェクト一覧の取得方法
S3インベントリを使用してオブジェクトリストを生成する
S3インベントリを作成するCLI
sample
aws s3api put-bucket-inventory-configuration \
--bucket my-bucket \
--id sample \
--inventory-configuration '{
"Destination": {
"S3BucketDestination": {
"Bucket": "arn:aws:s3:::inventory-bucket",
"Format": "Parquet",
"AccountId": "123456789012"
}
},
"Id": "sample",
"IsEnabled": true,
"Filter": {
"Prefix": "apache/accesslog/"
},
"Schedule": {
"Frequency": "Weekly"
},
"IncludedObjectVersions": "All",
"OptionalFields": ["Size", "StorageClass", "IntelligentTieringAccessTier", "LastModifiedDate"]
}' \
--profile exsample
Athenaで検索できるようにテーブルを生成する
StorageClassの値
クラス名 | 正式名称 | 概要 |
---|---|---|
STANDARD | S3 Standard | デフォルトのストレージクラス。高い耐久性と可用性を提供し、頻繁にアクセスされるデータ向け。 |
REDUCED_REDUNDANCY | S3 Reduced Redundancy Storage (RRS) | 冗長性を低く設定し、コストを削減したストレージクラス。現在は非推奨であり、S3 Standard の使用が推奨されます。 |
STANDARD_IA | S3 Standard-Infrequent Access (Standard-IA) | アクセス頻度が低いが、即時アクセスが必要なデータ向け。低コストで保存できるが、取り出し時に追加料金が発生します。 |
ONEZONE_IA | S3 One Zone-Infrequent Access (One Zone-IA) | アクセス頻度が低く、単一のアベイラビリティゾーンに保存されるデータ向け。コストをさらに抑えられますが、冗長性が低くなります。 |
INTELLIGENT_TIERING | S3 Intelligent-Tiering | アクセスパターンが不明または変化するデータ向け。アクセス頻度に基づいて自動的に階層化し、コストを最適化します。 |
GLACIER | S3 Glacier Flexible Retrieval | アーカイブデータ向け。低コストで、柔軟な復元オプション(数分から数時間)を提供します。 |
DEEP_ARCHIVE | S3 Glacier Deep Archive | 最も低コストのアーカイブストレージ。復元には12時間以上かかりますが、長期保存でアクセス頻度が極めて低いデータに適しています。 |
OUTPOSTS | S3 on Outposts | オンプレミス環境で S3 ストレージを提供するサービス。低レイテンシーでデータをローカルに保存できます。 |
GLACIER_IR | S3 Glacier Instant Retrieval | アーカイブデータに対してミリ秒単位の即時アクセスを提供するストレージクラス。低コストでありながら、迅速なデータ取り出しが可能です。 |
SNOW | AWS Snow Family Storage | 大量のデータを物理的に移動するための AWS Snow ファミリー向けのストレージクラス。ネットワーク帯域幅が限られている環境でのデータ移行に適しています。 |
各ストレージクラスの詳細については、Amazon S3 ストレージクラスの理解と管理をご参照ください。

DEEP_ARCHIVEの復元コスト
リクエストコスト
オブジェクトの復元リクエストにかかる費用です。料金はリクエストの種類と回数に基づいて計算されます。
リクエストタイプ | 料金(1,000 リクエストあたり) |
---|---|
Standard | $0.1142 |
Bulk | $0.025 |
データ取り出しコスト
復元したデータを取り出す際に発生する費用です。取り出し速度とデータ量に基づいて異なります。
復元速度 | 料金(1GB あたり) |
---|---|
Standard | $0.022 |
Bulk | $0.005 |
復元されたデータの保存コスト
復元されたオブジェクトは S3 Standard ストレージクラス に保存されます。そのため、復元後のデータを保持している期間に応じた標準ストレージコストが発生します。
ストレージクラス | 料金(1GB あたり/月) |
---|---|
S3 Standard | $0.025 |
その他の考慮事項
早期削除コスト
- S3 Glacier Flexible Retrieval および S3 Glacier Deep Archive では、オブジェクトを保存してから最小ストレージ期間(それぞれ 90 日および 180 日)以内に削除すると、早期削除料金が発生します。
最小オブジェクトサイズ
- S3 Glacier Flexible Retrieval および S3 Glacier Deep Archive では、最小課金対象オブジェクトサイズは 40 KB です。これより小さいオブジェクトも 40 KB として課金されます。
S3バッチオペレーションでの復元方法
- S3 バッチ操作機能は、STANDARD および BULK の取得階層のみをサポートします。

計算クエリ
SELECT
'Standard Retrieval' AS retrieval_type,
ROUND(SUM(size) / POWER(1024, 3), 2) AS total_size_gb, -- 合計サイズ (GB)
ROUND(
(CEIL(COUNT(*) / 1000.0) * 0.1142 -- リクエストコスト: $0.1142/1,000 リクエスト
+ (SUM(size) / POWER(1024, 3)) * 0.022), -- データ取り出しコスト: $0.022/GB
2
) AS total_cost_usd, -- 標準取り出しの合計コスト
ROUND(
(SUM(size) / POWER(1024, 3)) * 0.025 * (7 / 30.0), -- 保持コスト: $0.025/GB/月、保持期間は7日間
2
) AS restoration_storage_cost_usd -- 保持コスト
FROM
s3_inventry_report.sample
WHERE
storage_class = 'DEEP_ARCHIVE'
UNION ALL
SELECT
'Bulk Retrieval' AS retrieval_type,
ROUND(SUM(size) / POWER(1024, 3), 2) AS total_size_gb, -- 合計サイズ (GB)
ROUND(
(CEIL(COUNT(*) / 1000.0) * 0.025 -- リクエストコスト: $0.025/1,000 リクエスト
+ (SUM(size) / POWER(1024, 3)) * 0.005), -- データ取り出しコスト: $0.005/GB
2
) AS total_cost_usd, -- 大容量取り出しの合計コスト
ROUND(
(SUM(size) / POWER(1024, 3)) * 0.025 * (7 / 30.0), -- 保持コスト: $0.025/GB/月、保持期間は7日間
2
) AS restoration_storage_cost_usd -- 保持コスト
FROM
s3_inventry_report.sample
WHERE
storage_class = 'DEEP_ARCHIVE';

S3階層の移行