Amazon S3 Glacier ストレージクラスで保存したオブジェクトをダウンロードする流れを体験してみた
はじめに
Amazon S3には複数のストレージクラスがありますが、
その中でもコストパフォーマンスに優れた Glacier ストレージクラス はアーカイブ用途でよく使われます。
Glacier系と聞くと「復元操作が必要で、すぐにはダウンロードできない」というイメージを持つ方も多いかもしれません。
実際には、復元操作が不要なGlacierストレージクラス(Instant Retrieval)も存在しますが、
操作の流れについて具体的な体験がイメージしづらい部分もあるのではないでしょうか。
そこで今回は、S3コンソール(GUI)からGlacier ストレージクラス3種類(Instant / Flexible / Deep Archive)を必要に応じて復元・ダウンロードしてみた様子を、スクリーンショット付きでご紹介します。
※ 今回はバルク(Bulk)での復元やバッチオペレーションは実施しておらず、1ファイルずつの復元操作を行っています。
対象読者
- S3のGlacier ストレージクラスを使っている or 導入を検討している方
- 復元操作の手順や実際の操作感を知りたい方
S3のGlacier ストレージクラスとは
Amazon S3のストレージクラスの中には、アーカイブ用途に特化したGlacier系ストレージクラスが3種類あります。
それぞれの復元方法や所要時間、想定されるアクセス頻度は以下の通りです。
クラス名 | 復元操作 | 復元時間の目安(標準) | 推奨アクセス頻度 |
---|---|---|---|
Glacier Instant Retrieval | 不要(即時アクセス可) | - | 四半期に一度 |
Glacier Flexible Retrieval(旧Glacier) | 必要 | 3〜5時間 | 半年に一度 |
Glacier Deep Archive | 必要 | 〜12時間 | 1 年に一度 |
出典: 長期データ保存のための S3 Glacier ストレージクラスについて - Amazon Simple Storage Service
各ストレージクラスの復元体験
準備
それぞれのストレージクラスで .jpg ファイルをアップロードしておきました。
(画像はすべて猫ちゃんです。 ファイルサイズに差がありますがご容赦ください)
Glacier Instant Retrieval
このクラスは復元操作が不要で、通常のS3オブジェクトと同じようにすぐにダウンロードできます。
GUIでもCLIでも、特別な操作は必要ありません。
$ aws s3 cp s3://glacier-sample-test/Glacier-Instant-Retrieval.jpg .
download: s3://glacier-sample-test/Glacier-Instant-Retrieval.jpg to ./Glacier-Instant-Retrieval.jpg
$ ls
Glacier-Instant-Retrieval.jpg
Glacier Flexible Retrieval(旧Glacier) および Glacier Deep Archive
このクラスでは、オブジェクトをダウンロードする前に 復元が必要 です。
復元が完了するまでオブジェクトにアクセスすることはできません。
復元前の挙動
S3コンソール(GUI)上では「ダウンロード」「開く」ボタンがグレーアウトされており、クリックできません。
CLIで s3 cp
を実行するとエラーになります。
$ aws s3 cp s3://glacier-sample-test/Glacier-Flexible-Retrieval.jpg .
warning: Skipping file s3://glacier-sample-test/Glacier-Flexible-Retrieval.jpg. Object is of storage class GLACIER. Unable to perform download operations on GLACIER objects. You must restore the object to be able to perform the operation. See aws s3 download help for additional parameter options to ignore or force these transfers.
$ aws s3 cp s3://glacier-sample-test/Glacier-Deep-Archive.jpg .
warning: Skipping file s3://glacier-sample-test/Glacier-Deep-Archive.jpg. Object is of storage class GLACIER. Unable to perform download operations on GLACIER objects. You must restore the object to be able to perform the operation. See aws s3 download help for additional parameter options to ignore or force these transfers.
復元操作
オブジェクトを選択 → 「アクション」→「復元を開始」 を選択し、
「復元されたコピーが利用可能な日数」と「取得階層」を選んで実行します。
※ 今回は「標準取り出し」を使用しています。一括取得 や 迅速取り出し は試していません。
CLIで復元する場合は以下のように s3api restore-object
を使用します。
$ aws s3api restore-object \
--bucket glacier-sample-test \
--key Glacier-Flexible-Retrieval.jpg \
--restore-request '{"Days":3,"GlacierJobParameters":{"Tier":"Standard"}}'
復元進行状況の確認
復元を実行すると、オブジェクトの詳細画面に「復元が進行中」と表示され、
復元が完了すると通常のダウンロードボタンが有効になります。
CLIでは head-object
コマンドで確認できます。
$ aws s3api head-object --bucket glacier-sample-test --key Glacier-Flexible-Retrieval.jpg
{
"AcceptRanges": "bytes",
"Restore": "ongoing-request=\"true\"",
"LastModified": "2025-06-10T04:31:04+00:00",
"ContentLength": 26933,
"ETag": "\"f1dee12f2d509270ac09ed1cdb7fe839\"",
"ContentType": "image/jpeg",
"ServerSideEncryption": "AES256",
"Metadata": {},
"StorageClass": "GLACIER"
}
出力の "Restore"
フィールドが "ongoing-request=\"false\""
になれば復元完了です。
復元後のダウンロード
復元が完了すると、GUIでもCLIでも通常のオブジェクトと同じようにダウンロード可能になります。
ただし、復元時に設定した復元期間を過ぎると再びアクセス不可になるため、
必要なファイルは早めに取得しておきましょう。
おわりに
復元操作の有無や手順を実際に試すことで、Glacier系ストレージクラスの違いがより明確になりました。
用途に応じて適切なクラスを選べるようになると、運用もスムーズになりそうです。