目次
S3 Glacier 完全ガイド v2.0
目次
- ドキュメントメタデータ
- 概要と課題
- アーキテクチャ
- Glacier クラスの詳細比較
- 取り出しオプション
- 課金の仕組み
- ライフサイクル統合
- S3 Intelligent-Tiering
- Object Lock との組み合わせ
- 主要ユースケース
- 設定・操作の具体例
- 類似サービス比較
- ベストプラクティス
- トラブルシューティング
- 2025-2026 最新動向
- 学習リソース
- 実装例
- 導入ロードマップ
- まとめ
ドキュメントメタデータ
- 最終更新: 2026-04-26
- バージョン: v2.0
- 対象者: ストレージアーキテクト、データ管理者、コスト最適化エンジニア
- 難易度: 中級
概要と課題
本質
Amazon S3 Glacier は、「即座なアクセスが不要な長期保管データ向けの超低コストアーカイブストレージ層」であり、現在は S3 ストレージクラスとして統合されている。S3 Standard(0.023/GB/月)と比較して **最大 95% のコスト削減**(Glacier Deep Archive: 0.00099/GB/月)を実現し、規制要件・バックアップ・非アクティブデータ保管に最適化されている。
このサービスを選ぶ理由
なぜ S3 Glacier でないといけないのか?
-
長期保管コストの圧倒的削減
- S3 Standard: $0.023/GB/月
- Glacier Instant Retrieval: $0.004/GB/月(83% 削減)
- Glacier Flexible Retrieval: $0.0036/GB/月(84% 削減)
- Glacier Deep Archive: $0.00099/GB/月(95% 削減)
-
規制要件への対応
- HIPAA(医療: 7 年保持)
- SEC 17a-4(金融: 6 年保持)
- GDPR(個人情報: 指定期間保持)
- PCI DSS(決済: 1 年以上保持)
- Glacier Deep Archive はテープより低コスト
-
S3 ライフサイクルによる自動階層化
- アプリケーション変更なし
- 「90 日後に Instant Retrieval → 365 日後に Deep Archive」のように自動移行
- 運用負荷なしに段階的にコスト削減
-
S3 Intelligent-Tiering との併用
- アクセスパターンに応じた自動遷移
- 30 日未アクセス → IA tier
- 90 日未アクセス → Archive Instant(Glacier Instant と同等)
- 最大 92% のコスト削減を自動実現
このサービスを選ばない理由
- 頻繁なアクセス: S3 Standard 推奨
- 数日以内の取り出し不要: Glacier Deep Archive 推奨(取り出し時間 12-48 時間)
- ホットデータ: EBS/EFS が適切
- ミリ秒応答が必須: S3 Standard が必須
アーキテクチャ
Glacier の位置付け(S3 ストレージクラスの階層)
┌─ S3 Standard(即時アクセス)
│ └─ データ可用性: 99.99%
│ └─ 取り出し: ミリ秒
│ └─ コスト: 最高
│
├─ S3 Standard-IA(低頻度アクセス)
│ └─ 最小保存: 30 日
│ └─ 取り出し: ミリ秒(ただし取り出し料金あり)
│
├─ S3 Intelligent-Tiering(自動最適化)
│ └─ アクセスパターン学習
│ └─ 自動遷移: Frequent → Infrequent → Archive Instant → Deep Archive
│
├─ S3 Glacier Instant Retrieval(アーカイブ: ミリ秒)
│ └─ 最小保存: 90 日
│ └─ 取り出し: ミリ秒
│ └─ 用途: 年数回アクセスだが即時取り出し必須
│
├─ S3 Glacier Flexible Retrieval(アーカイブ: 時間単位)
│ └─ 最小保存: 90 日
│ └─ 取り出し: Expedited(1-5分) / Standard(3-5時間) / Bulk(5-12時間)
│ └─ 用途: 年 1-2 回のアクセス、数時間以内で許容
│
└─ S3 Glacier Deep Archive(最深アーカイブ)
└─ 最小保存: 180 日
└─ 取り出し: Standard(12時間) / Bulk(48時間)
└─ 用途: 長期保管、即座な取り出し不要
mermaid ダイアグラム: Glacier ライフサイクルフロー
graph TB
subgraph DataLifeCycle["データライフサイクル"]
Start["新規データ作成"]
Standard["S3 Standard<br/>ホットデータ"]
IA["S3 Standard-IA<br/>低頻度"]
Instant["Glacier Instant<br/>年数回"]
Flexible["Glacier Flexible<br/>年1回"]
DeepArchive["Deep Archive<br/>コンプライアンス"]
Delete["削除"]
end
subgraph Transition["移行ポリシー(日数)"]
Days0["0日"]
Days30["30日"]
Days90["90日"]
Days180["180日"]
Days2555["2555日<br/>7年"]
end
Start -->|即座| Standard
Standard -->|Days: 30| IA
IA -->|Days: 90| Instant
Instant -->|Days: 180| Flexible
Flexible -->|Days: 2555| DeepArchive
DeepArchive -->|Days: 2920| Delete
Days0 -.-> Start
Days30 -.-> IA
Days90 -.-> Instant
Days180 -.-> Flexible
Days2555 -.-> DeepArchive
Glacier クラスの詳細比較
全 4 クラスの詳細
| 項目 | Instant Retrieval | Flexible Retrieval | Deep Archive | Standard(非 Glacier) |
|---|---|---|---|---|
| 取り出し時間 | ミリ秒 | Expedited: 1-5分 Standard: 3-5時間 Bulk: 5-12時間 |
Standard: 12時間 Bulk: 48時間 |
ミリ秒 |
| 最小保存期間 | 90 日 | 90 日 | 180 日 | なし |
| ストレージコスト | `0.004/GB/月 | `0.0036/GB/月 | `0.00099/GB/月 | `0.023/GB/月 |
| 取り出し料金 | 無料 | Expedited: 20/TB<br/>Standard: 10/TBBulk: `2.50/TB |
Standard: `10/TB Bulk: $2.50/TB |
無料 |
| 用途 | 年 2-3 回、ミリ秒取り出し | 年 1 回、数時間で許容 | 年 1 回未満、即座不要 | 日常使用 |
| メタデータオーバーヘッド | 40 KB | 40 KB | 40 KB | 0 |
ユースケース別選択
| ユースケース | 推奨クラス | 理由 |
|---|---|---|
| 医療画像(7 年保持) | Deep Archive | 最低コスト、アクセス少ない |
| 金融取引ログ(6 年) | Deep Archive | 規制要件、アクセス稀 |
| バックアップ(月 1 回確認) | Flexible Retrieval | Standard 取り出しで数時間許容 |
| アクティブなコンテンツ AR | Instant Retrieval | ミリ秒応答必須 |
| 動画素材(編集時のみ取り出し) | Flexible Retrieval | Expedited で数分で取り出し可 |
| ログファイル(検索用) | Intelligent-Tiering | 自動最適化で従量課金 |
取り出しオプション
Flexible Retrieval の 3 段階
1. Expedited(緊急)
aws s3api restore-object \
--bucket archived-data \
--key "critical-file.zip" \
--restore-request '{"Days": 1, "GlacierJobParameters": {"Tier": "Expedited"}}'
- 時間: 1-5 分
- コスト: 最高($20/TB)
- 用途: 本当に急ぎの場合のみ
- 制限: 超高頻度利用は制限されることがある(AWS 側スロットリング)
2. Standard(標準)
aws s3api restore-object \
--bucket archived-data \
--key "monthly-data.tar.gz" \
--restore-request '{"Days": 1, "GlacierJobParameters": {"Tier": "Standard"}}'
- 時間: 3-5 時間
- コスト: 中($10/TB)
- 用途: 通常の復旧
- 推奨: ほとんどの場合ここで十分
3. Bulk(大量・低コスト)
# 100 GB 以上の大容量復旧向け
aws s3api restore-object \
--bucket archived-data \
--key "annual-archive-2024.tar" \
--restore-request '{"Days": 1, "GlacierJobParameters": {"Tier": "Bulk"}}'
- 時間: 5-12 時間
- コスト: 最安($2.50/TB)
- 用途: 大容量データの低コスト復旧
- 推奨: 月次や年次のバッチ復旧
Deep Archive の 2 段階
Deep Archive は Expedited をサポートしない。Standard と Bulk のみ。
# Deep Archive からの復旧(Standard)
aws s3api restore-object \
--bucket archived-data \
--key "compliance-archive.zip" \
--restore-request '{"Days": 1, "GlacierJobParameters": {"Tier": "Standard"}}'
# → 12 時間で復旧開始
# Deep Archive からの復旧(Bulk)
aws s3api restore-object \
--bucket archived-data \
--key "compliance-archive.zip" \
--restore-request '{"Days": 1, "GlacierJobParameters": {"Tier": "Bulk"}}'
# → 48 時間で復旧開始($2.50/TB)
課金の仕組み
1. ストレージ課金
月間コスト = ストレージサイズ GB × 月間単価
例:1 TB (1024 GB) を Deep Archive で 1 年保管
= 1024 × $0.00099 × 12
= $12.19/年
2. 最小保存期間の課金
重要: 最小保存期間内に削除すると、残り期間分が課金される。
# 例 1: Flexible Retrieval(最小 90 日)で 60 日後に削除
削除時課金 = (90 - 60) × (月額単価 / 30日)
= 30日分 × ($0.0036 / 30)
= $0.0036
# 例 2: Deep Archive(最小 180 日)で 30 日後に削除
削除時課金 = (180 - 30) × ($0.00099 / 30日)
= 150日分 × ($0.00099 / 30)
= $0.00495
対策: 最小保持期間を超えてから削除することを設計時に考慮
3. ストレージオーバーヘッド(40 KB)
各オブジェクトに追加で 40 KB が課金される。
- 内訳:
- 32 KB: メタデータ(Glacier 料金率)
- 8 KB: ユーザー定義メタデータ(S3 Standard 料金率)
小さいオブジェクトは圧縮してまとめるべき:
# 非効率: 1000 個の 100 KB ファイル
総容量 = 1000 × 100 KB = 100 MB
オーバーヘッド = 1000 × 40 KB = 40 MB
合計課金 = 140 MB
# 効率的: TAR.GZ で 1 つに
総容量 = 100 MB(圧縮後)
オーバーヘッド = 1 × 40 KB
合計課金 ≈ 100.04 MB(大幅削減)
4. 取り出し課金
復旧費用 = 復旧サイズ GB × 取り出し単価
例: 500 GB を Bulk で復旧
= 500 × $2.50/TB
= 500 × $2.50/1024
= $1.22
vs Standard 復旧
= 500 × $10/TB
= $4.88
5. 総コスト試算(医療画像 7 年保管)
シナリオ: 10 TB の医療画像を Deep Archive で 7 年保管
年間ストレージコスト
= 10 TB × 1024 GB/TB × $0.00099/GB/月 × 12 月
= 10240 × $0.00099 × 12
= $121.85/年
7 年間の総ストレージコスト
= $121.85 × 7
= $852.95
取り出し(年 1 回、Bulk)
= 10 TB × $2.50/TB × 7 年
= $175/年 × 7
= $1,225
総 7 年コスト
= $852.95 + $1,225
= $2,077.95
vs テープバックアップ
= 毎年 1 台(10 TB テープ:$5,000)× 7 年
= $35,000
削減: $32,922(94% 削減)
ライフサイクル統合
S3 ライフサイクルポリシー(重要)
{
"Rules": [
{
"Id": "ArchiveOldObjects",
"Status": "Enabled",
"Prefix": "data/",
"Transitions": [
{
"Days": 30,
"StorageClass": "STANDARD_IA"
},
{
"Days": 90,
"StorageClass": "GLACIER_IR" // Instant Retrieval
},
{
"Days": 180,
"StorageClass": "GLACIER" // Flexible Retrieval
},
{
"Days": 365,
"StorageClass": "DEEP_ARCHIVE"
}
],
"Expiration": {
"Days": 2555 // 7年後に削除
}
}
]
}
適用方法(AWS CLI)
# 1. ライフサイクルポリシーを JSON ファイルに保存
cat > lifecycle.json << 'EOF'
{
"Rules": [
{
"Id": "ArchivePolicy",
"Status": "Enabled",
"Transitions": [
{"Days": 30, "StorageClass": "STANDARD_IA"},
{"Days": 90, "StorageClass": "GLACIER_IR"},
{"Days": 365, "StorageClass": "DEEP_ARCHIVE"}
],
"Expiration": {"Days": 2555}
}
]
}
EOF
# 2. バケットに適用
aws s3api put-bucket-lifecycle-configuration \
--bucket my-archive-bucket \
--lifecycle-configuration file://lifecycle.json
# 3. 確認
aws s3api get-bucket-lifecycle-configuration \
--bucket my-archive-bucket
Terraform による IaC
resource "aws_s3_bucket_lifecycle_configuration" "archive" {
bucket = aws_s3_bucket.data_archive.id
rule {
id = "ArchiveOldObjects"
status = "Enabled"
transition {
days = 30
storage_class = "STANDARD_IA"
}
transition {
days = 90
storage_class = "GLACIER_IR"
}
transition {
days = 365
storage_class = "DEEP_ARCHIVE"
}
expiration {
days = 2555 # 7年
}
}
}
S3 Intelligent-Tiering
概要
アクセスパターンを学習して、自動的にストレージクラスを遷移。従量課金で月額固定なし。
アーキテクチャ
アップロード直後(Frequent Tier)
↓ 30 日未アクセス
Infrequent Access Tier(IA) - $0.0125/GB/月
↓ 90 日未アクセス
Archive Instant Access Tier - $0.004/GB/月(Instant Retrieval と同等)
↓ 180 日未アクセス
Deep Archive Access Tier - $0.00099/GB/月(Deep Archive と同等)
課金
基本料金
= ストレージサイズ GB × 該当 tier の単価
例: 100 GB
- Frequent: 50 GB × $0.023/GB/月 = $1.15
- IA: 30 GB × $0.0125/GB/月 = $0.375
- Archive Instant: 20 GB × $0.004/GB/月 = $0.08
月額合計 = $1.605
+ モニタリング料金
= 100 GB × $0.0025 per 1,000 objects
Glacier vs Intelligent-Tiering
| 項目 | Glacier | Intelligent-Tiering |
|---|---|---|
| 設定方法 | ライフサイクルで明示的に指定 | 自動学習 |
| 最小保存 | 90/180 日 | なし |
| 取り出し | 手動で明示的に Restore | 自動(読み出し時) |
| 料金体系 | ストレージ単価固定 | 従量課金 + 監視料金 |
| 用途 | 保管期間が決まっているアーカイブ | アクセスパターンが不定 |
| 経済効果 | 予測可能 | 最大 92% 削減(自動) |
どちらを選ぶ?
Glacier を選ぶべき場合:
- 保管期間が決まっている(7 年など)
- アクセスパターンが予測可能
- 最小保存期間を活用したい
Intelligent-Tiering を選ぶべき場合:
- アクセスパターンが不確定
- アクセス頻度の高い/低いデータが混在
- 自動最適化で手間を減らしたい
- 最大コスト削減を優先
Object Lock との組み合わせ
WORM(Write-Once-Read-Many)実装
Glacier + Object Lock で、削除・上書き防止のコンプライアンスアーカイブを実現。
# Bucket 作成時に Object Lock 有効化
aws s3api create-bucket \
--bucket compliance-archive \
--object-lock-enabled-for-bucket \
--region ap-northeast-1
# ライフサイクルで Glacier に移行
aws s3api put-bucket-lifecycle-configuration \
--bucket compliance-archive \
--lifecycle-configuration '{
"Rules": [{
"Id": "GlacierAfter90Days",
"Status": "Enabled",
"Transitions": [{
"Days": 90,
"StorageClass": "DEEP_ARCHIVE"
}],
"NoncurrentVersionTransitions": [{
"NoncurrentDays": 30,
"StorageClass": "DEEP_ARCHIVE"
}]
}]
}'
# オブジェクトに retention 設定
aws s3api put-object \
--bucket compliance-archive \
--key "important-data.zip" \
--body important-data.zip \
--object-lock-mode COMPLIANCE \
--object-lock-retain-until-date 2026-12-31T23:59:59Z
規制要件への対応
対応可能な規制:
- SEC 17a-4: 金融記録 6 年保持(削除防止)
- FINRA: 金融規制(改ざん防止)
- HIPAA: 医療データ保護(アクセス監査)
- GDPR: 個人データ保護(保持期間管理)
主要ユースケース
1. 医療画像の 7 年コンプライアンス保管
要件: HIPAA 準拠で 7 年保持
Solution:
- S3 Glacier Deep Archive で保管
- Lifecycle で 90 日後に自動移行
- Object Lock で削除防止
- CloudTrail で監査ログ有効化
費用削減: テープ管理コスト vs S3 → 90% 削減
2. 大規模動画素材のアーカイブ
要件: 年 1-2 回の編集時のみ取り出し
Solution:
- アップロード直後は S3 Standard
- 180 日後に Glacier Flexible Retrieval へ移行
- 編集時は Bulk 取り出し(5-12 時間)で対応
コスト: 月額 5,000 → 500 以下
3. 金融取引ログの 6 年保持
要件: SEC 17a-4 対応、監査可能
Solution:
- Glacier Deep Archive + Object Lock
- WORM で削除防止を技術的に保証
- CloudTrail + S3 Access Logging で全アクセス記録
メリット: 規制監査時に 1 クリックで証拠提出
4. マシンラーニング学習用データセット
要件: 数百 GB のデータを長期保管、月 1 回学習実行
Solution:
- Intelligent-Tiering で自動最適化
- Lambda で月 1 回の復旧・学習を自動化
- EventBridge でスケジュール実行
費用削減: 自動階層化で手間なく 70% 削減
5. DC 統合後の古いバックアップ保管
要件: 昔のバックアップを保管するがアクセス予測不可
Solution:
- Intelligent-Tiering で自動分類
- アクセス少ないデータは自動的に Deep Archive へ
結果: 予測不可な場合でも自動的に最適化
6. 規制監査対応の証拠保管
要件: ISO 27001・SOC 2 監査対応
Solution:
- Glacier + AWS Backup Audit Manager
- 日次レポートで「全バックアップが Glacier に保管」を証明
- CloudTrail で全削除・復旧を記録
7. 段階的なオンプレミスからクラウド移行
要件: 古いストレージシステムをクラウドに段階移行
Solution:
- Year 1: S3 Standard(移行データ)
- Year 2: S3 Standard-IA(低頻度)
- Year 3+: Glacier Deep Archive(アーカイブ)
メリット: 段階的移行で初期投資を抑制
設定・操作の具体例
AWS CLI による復旧フロー
# 1. Deep Archive にある重要ファイルを復旧
aws s3api restore-object \
--bucket compliance-data \
--key "2023-audit-report.pdf" \
--restore-request '{"Days": 1, "GlacierJobParameters": {"Tier": "Standard"}}'
# → 12 時間で復旧
# 2. 復旧ステータス確認
aws s3api head-object \
--bucket compliance-data \
--key "2023-audit-report.pdf"
# Restore セクションで進捗確認
# 3. 復旧完了後にダウンロード
aws s3 cp s3://compliance-data/2023-audit-report.pdf ./
Python による自動復旧スクリプト
import boto3
import time
from datetime import datetime
s3 = boto3.client('s3')
def restore_and_wait(bucket, key, restore_days=1):
"""Glacier から復旧待機"""
# 1. 復旧リクエスト
restore_request = {
'Days': restore_days,
'GlacierJobParameters': {
'Tier': 'Bulk' # 低コスト
}
}
s3.restore_object(
Bucket=bucket,
Key=key,
RestoreRequest=restore_request
)
print(f"[{datetime.now()}] 復旧リクエスト送信: {key}")
# 2. 復旧完了まで待機(ポーリング)
max_wait = 48 * 3600 # 48時間まで待機
start_time = time.time()
poll_interval = 60 # 1分ごとにチェック
while time.time() - start_time < max_wait:
response = s3.head_object(Bucket=bucket, Key=key)
if 'Restore' in response:
restore_info = response['Restore']
if 'true' in restore_info and 'ongoing-request="false"' in restore_info:
# 復旧完了
print(f"[{datetime.now()}] 復旧完了: {key}")
return True
time.sleep(poll_interval)
print(f"[{datetime.now()}] タイムアウト: {key}")
return False
# 実行
restore_and_wait('archive-bucket', 'monthly-backup-2023.tar')
Terraform による完全な構成
# S3 バケット
resource "aws_s3_bucket" "archive" {
bucket = "my-archive-bucket"
}
# ライフサイクルポリシー
resource "aws_s3_bucket_lifecycle_configuration" "archive" {
bucket = aws_s3_bucket.archive.id
rule {
id = "ArchiveOldData"
status = "Enabled"
# 30日後に IA へ
transition {
days = 30
storage_class = "STANDARD_IA"
}
# 90日後に Glacier Instant へ
transition {
days = 90
storage_class = "GLACIER_IR"
}
# 365日後に Deep Archive へ
transition {
days = 365
storage_class = "DEEP_ARCHIVE"
}
# 7年後に削除
expiration {
days = 2555
}
}
}
# バージョニング(復旧用)
resource "aws_s3_bucket_versioning" "archive" {
bucket = aws_s3_bucket.archive.id
versioning_configuration {
status = "Enabled"
}
}
# 暗号化
resource "aws_s3_bucket_server_side_encryption_configuration" "archive" {
bucket = aws_s3_bucket.archive.id
rule {
apply_server_side_encryption_by_default {
sse_algorithm = "aws:kms"
kms_master_key_id = aws_kms_key.s3.arn
}
}
}
# ブロックパブリックアクセス
resource "aws_s3_bucket_public_access_block" "archive" {
bucket = aws_s3_bucket.archive.id
block_public_acls = true
block_public_policy = true
ignore_public_acls = true
restrict_public_buckets = true
}
# CloudTrail ログ(監査)
resource "aws_s3_bucket_logging" "archive" {
bucket = aws_s3_bucket.archive.id
target_bucket = aws_s3_bucket.logs.id
target_prefix = "glacier-access-logs/"
}
output "bucket_name" {
value = aws_s3_bucket.archive.id
}
類似サービス比較
| 項目 | S3 Glacier | Azure Archive | GCP Archive | Backblaze B2 |
|---|---|---|---|---|
| ストレージ単価 | `0.00099/GB | `0.002/GB | `0.004/GB | `0.003/GB |
| 取り出しレイテンシ | 12-48時間 | 15時間 | 24時間 | 可変(数時間) |
| 最小保存期間 | 180日 | 30日 | 365日 | なし |
| 取り出し料金 | Tier別 | Tier別 | 低($0.012/GB) | なし |
| 規制対応 | SEC, HIPAA | HIPAA, PCI | SOC 2 | 限定 |
| 統合 | AWS 完全統合 | Azure 統合 | GCP 統合 | S3 互換 |
選択基準
- AWS 環境: S3 Glacier(ネイティブ統合)
- Azure 環境: Azure Archive(コスト最適)
- マルチクラウド: Backblaze B2(S3 互換 API)
ベストプラクティス
✅ 推奨事項
-
ライフサイクル自動化で段階移行
- 手動操作なし
- 90日→Instant、180日→Flexible、365日→Deep Archive
-
小さいオブジェクトは圧縮してまとめる
- TAR.GZ で複数ファイル統合
- 40 KB オーバーヘッドの影響を低減
-
取り出しは事前計画
- Bulk(5-12時間)で十分か検討
- 緊急時のみ Expedited(高コスト)
-
Intelligent-Tiering で不確実性対応
- アクセスパターン不定な場合は自動化
- 最大 92% 削減
-
Object Lock で規制対応
- WORM 要件の技術的保証
- 削除防止で監査対応
-
CloudTrail + Access Logging で監査
- 全アクセス・復旧を記録
- コンプライアンス証拠
-
バージョニング有効化
- 誤削除対応
- 特定時点への復旧
-
段階的移行で初期投資抑制
- Year 1: Standard
- Year 2-3: IA
- Year 3+: Glacier
❌ アンチパターン
-
小さいオブジェクトを大量に保管 → 40 KB オーバーヘッドで非効率 → 対策: まず圧縮・統合
-
最小保存期間無視で早期削除 → 残り期間分が課金されて割高 → 対策: 最小期間カレンダーを管理
-
Glacier にアップロード後、すぐ削除 → 最小保存期間課金が発生 → 対策: ライフサイクルで段階移行
-
テスト用に Expedited 多用 → 取り出し料金が高額 → 対策: Bulk で計画的に復旧
-
バージョニングなしでアーカイブ → 誤上書き時の復旧不可 → 対策: バージョニング有効化
-
監査ログなし → コンプライアンス要件未達成 → 対策: CloudTrail + Access Logging
トラブルシューティング
| 症状 | 原因 | 対策 |
|---|---|---|
| 復旧リクエスト失敗 | ストレージクラスが Glacier でない | head-object で確認、Glacier へ移行待機 |
| 復旧が 48 時間以上待機 | Bulk 取り出しで Deep Archive | 仕様。待機必須(Expedited は Deep Archive 未対応) |
| 最小保存期間課金発生 | 最小期間内に削除 | 計算式確認、残り期間分の課金が正当 |
| オーバーヘッド課金が高い | 小さいオブジェクト多数 | 事前に圧縮・統合 |
| ライフサイクル移行が遅い | バッチ処理の遅延 | 24-48 時間待機(AWS 側のスケジュール) |
| 取り出し料金が予想より高い | Tier 指定ミス | Bulk($2.50/TB)確認 |
| Intelligent-Tiering が想定より高い | 監視料金を見落とし | 月額 + 監視料金 = 合計コスト計算 |
2025-2026 最新動向
1. Intelligent-Tiering の Deep Archive 対応拡大
Deep Archive Tier へのアクセスが自動化。180 日以上のデータは自動的に最深層へ。
2. S3 ライフサイクルポリシーの UI 改善
AWS コンソール上でより直感的にルールを設定できるように改善(2025 予定)。
3. Restore 待機時間の短縮
新しいハードウェア・インフラで、Deep Archive の Standard 復旧が 12 時間 → 6 時間に短縮される見込み(2026 予定)。
4. コスト再評価(2025-2026)
ストレージコスト競争力強化のための価格見直し検討中。現在が最安値保証。
学習リソース
公式ドキュメント
AWS ブログ・リソース
相互比較
- Azure Archive Storage: コスト比較対象
- Google Cloud Archive: マルチクラウド環境
- Wasabi: S3 互換の低コストアーカイブ
実装例
小規模(年 100 GB 増)
# シンプルなライフサイクル: 1 年後に Deep Archive
aws s3api put-bucket-lifecycle-configuration \
--bucket small-archive \
--lifecycle-configuration '{
"Rules": [{
"Id": "SimpleArchive",
"Status": "Enabled",
"Transitions": [
{"Days": 365, "StorageClass": "DEEP_ARCHIVE"}
]
}]
}'
# monthly cost: 100 GB × $0.00099 ≈ $0.10
中規模(年 10 TB 増、規制対応)
# Terraform: Glacier + Object Lock + Audit
resource "aws_s3_bucket" "medical_data" {
bucket = "hospital-medical-archives"
object_lock_enabled = true
}
resource "aws_s3_bucket_lifecycle_configuration" "medical" {
bucket = aws_s3_bucket.medical_data.id
rule {
id = "HIPAA7YearRetention"
status = "Enabled"
transition {
days = 90
storage_class = "GLACIER_IR"
}
transition {
days = 365
storage_class = "DEEP_ARCHIVE"
}
expiration {
days = 2555 # 7年
}
}
}
# monthly cost: 10 TB × $0.00099 ≈ $100/月
大規模エンタープライズ
#!/bin/bash
# 1000+ TB の段階的アーカイブ + 監査
# ストレージクラス別ライフサイクル
for dept in medical financial legal; do
aws s3api put-bucket-lifecycle-configuration \
--bucket "$dept-archives" \
--lifecycle-configuration '{
"Rules": [{
"Id": "EnterpriseRetention",
"Status": "Enabled",
"Transitions": [
{"Days": 30, "StorageClass": "STANDARD_IA"},
{"Days": 90, "StorageClass": "GLACIER_IR"},
{"Days": 365, "StorageClass": "DEEP_ARCHIVE"}
],
"Expiration": {"Days": 2555}
}]
}'
done
# CloudTrail で全アクセス記録
aws cloudtrail put-event-selectors \
--trail-name archive-trail \
--event-selectors '[{
"ReadWriteType": "All",
"IncludeManagementEvents": true,
"DataResources": [{
"Type": "AWS::S3::Object",
"Values": ["arn:aws:s3:::*/*"]
}]
}]'
# monthly cost: 1000 TB × $0.00099 ≈ $1,000/月(95% 削減)
導入ロードマップ
Phase 1: 計画(2-4 週間)
- [ ] 現行ストレージ構成把握
- [ ] アクセスパターン分析
- [ ] 保持期間・規制要件確認
- [ ] ライフサイクル戦略設計
- [ ] コスト試算
Phase 2: パイロット(1-2 か月)
- [ ] テスト用バケットで Lifecycle 検証
- [ ] 復旧フロー確認
- [ ] パフォーマンス測定
- [ ] コスト実績確認
Phase 3: 本番展開(1-3 か月)
- [ ] 本番バケットで Lifecycle 有効化
- [ ] 既存データの段階移行
- [ ] CloudTrail・監査ログ設定
- [ ] チーム トレーニング
Phase 4: 最適化
- [ ] Intelligent-Tiering 検討
- [ ] Object Lock による規制対応
- [ ] 定期的なコスト見直し
- [ ] 復旧テスト実施
まとめ
Amazon S3 Glacier は長期保管データのコストを最大 95% 削減する超低コストアーカイブ層。
主な価値
- コスト削減: 最大 95% の削減で大規模データ保管を経済化
- 自動化: ライフサイクルで手動操作なし
- 規制対応: Object Lock で WORM 要件を技術的に保証
- 柔軟性: Intelligent-Tiering で不確実性対応
- 可視化: CloudTrail で監査ログ完全記録
次のステップ
- ライフサイクル設計: 保持期間・段階移行を決定
- パイロット実施: テストで復旧フロー検証
- 本番化: ポリシー適用、既存データ移行
- 監査設定: CloudTrail + Access Logging 有効化
注意事項
- 最小保存期間内の削除は課金対象
- 小さいオブジェクトは圧縮推奨
- Expedited は高額(緊急時のみ)
- Deep Archive は 12-48 時間待機必須
最終更新: 2026-04-26 バージョン: v2.0