Edited at

Amazon Glacierの一通りの流れ


目的

S3のライフサイクルポリシーでGlacierに移動することはあるが、直接Glacierをさわることがあまりないので再度やってみる。

S3のライフサイクルポリシーでGlacierに移動した場合は、Glacierのコンソールから操作できず、S3のコンソールから操作することになる。

Glacierのコンソール操作は、Vaultの作成、削除が可能

その他、アーカイブのダウンロードや削除はCLIかAPI経由で実施する必要がある

それぞれの操作は、数時間かかるものもある

https://docs.aws.amazon.com/amazonglacier/latest/dev/downloading-an-archive.html


Glacierで使用する用語

ボールト

ボールトは、アーカイブを格納するコンテナ

https://docs.aws.amazon.com/ja_jp/amazonglacier/latest/dev/working-with-vaults.html

アーカイブ

写真、動画、ドキュメントなど、ボールトに格納するオブジェクト

https://docs.aws.amazon.com/ja_jp/amazonglacier/latest/dev/working-with-archives.html

インベントリ

ボールトの情報が格納されている

Amazon Glacier はボールトインベントリを約 1 日 1 回のペースで更新される

ジョブ


ジョブ

Amazon Glacier ジョブを開始して、アーカイブに SELECT クエリを実行したり、アーカイブを取得したり、またはボールトインベントリを取得することができます。

以下は、Amazon Glacier ジョブのタイプです。

select— アーカイブに SELECT クエリを実行。

archive-retrieval— アーカイブを取得。

inventory-retrieval— ボールトのインベントリ。


https://docs.aws.amazon.com/ja_jp/amazonglacier/latest/dev/amazon-glacier-supported-operations.html


流れ

ボールトの作成(管理コンソール/CLI/API)※即時完了

アーカイブの登録(CLI/API)

アーカイブのダウンロード(CLI/API)

アーカイブの削除(CLI/API)

ボールトの削除(管理コンソール/CLI/API)※即時完了


ボールト作成

image.png

image.png

image.png

image.png

ここまでは待ち時間なく終わる


アーカイブの登録

アーカイブとして、CloudFormationのYamlファイルを登録する


test.yml


AWSTemplateFormatVersion: '2010-09-09'
Resources:
SecurityGroupB:
Type: AWS::EC2::SecurityGroup
Properties:
VpcId: vpc-26505643
GroupDescription: SecurityGroupB
SecurityGroupIngress:
- IpProtocol: tcp
FromPort: '80'
ToPort: '80'
CidrIp: 0.0.0.0/0
SecurityGroupC:
Type: AWS::EC2::SecurityGroup
Properties:
VpcId: vpc-26505643
GroupDescription: SecurityGroupC
SecurityGroupIngress:
- IpProtocol: tcp
FromPort: '22'
ToPort: '22'
CidrIp: 172.0.0.0/32

aws glacier upload-archiveコマンドでファイルをアップロードする

$ aws glacier upload-archive --account-id - --vault-name sample-vault --body test.yaml 

{
"archiveId": "85L5vbNDcG7IxIC32_aXfDxoN8WFNkX7qM1XtKvdQhHvbeOlv_brvdS6QysS2oQANkz5bGSYt45bF3uG4WFBNnkYLM3BLeLjMCqTO1Fgi1tu8dYXKqJSJWIE2p0pv_uiM_ckBclsMA",
"checksum": "069ea4906c8c23a7f9a2e87ef6c3c104a10921ed794933d8d874133d7a3f9f6f",
"location": "/*******/vaults/sample-vault/archives/85L5vbNDcG7IxIC32_aXfDxoN8WFNkX7qM1XtKvdQhHvbeOlv_brvdS6QysS2oQANkz5bGSYt45bF3uG4WFBNnkYLM3BLeLjMCqTO1Fgi1tu8dYXKqJSJWIE2p0pv_uiM_ckBclsMA"
}

Glacierのコンソールに表示されるのに数時間がかかる

archiveIdを控えておく。ダウンロードする際に必要となる。


archiveIDを忘れた場合は、インベントリから取得する。

aws glacier initiate-job   --account-id - --vault-name sample-vault --job-parameters '{"Type": "inventory-retrieval"}'

インベントリからarchiveidを確認

aws glacier get-job-output --account-id - --vault-name sample-vault --job-id q14SmZRD91RxroYz08Ck6STEB9yTagRp40a7MMFgz5QGJuo9GweKAHSTZlbWjRDijFM7R9Eh5axgmAJpAm5NSYSNJANq output.json

cat output.json 

{"VaultARN":"arn:aws:glacier:ap-northeast-1:******:vaults/sample-vault","InventoryDate":"2017-03-11T12:17:12Z","ArchiveList":[{"ArchiveId":"85L5vbNDcG7IxIC32_aXfDxoN8WFNkX7qM1XtKvdQhHvbeOlv_brvdS6QysS2oQANkz5bGSYt45bF3uG4WFBNnkYLM3BLeLjMCqTO1Fgi1tu8dYXKqJSJWIE2p0pv_uiM_ckBclsMA","ArchiveDescription":"","CreationDate":"2017-03-11T07:48:53Z","Size":629,"SHA256TreeHash":"5d088045dde3c9025e2a7ab9433834e9119cb2c41a03d6b3e49641145e444233"}]}


アーカイブのダウンロード

$ cat archive.json 

{
"Type": "archive-retrieval",
"ArchiveId": "85L5vbNDcG7IxIC32_aXfDxoN8WFNkX7qM1XtKvdQhHvbeOlv_brvdS6QysS2oQANkz5bGSYt45bF3uG4WFBNnkYLM3BLeLjMCqTO1Fgi1tu8dYXKqJSJWIE2p0pv_uiM_ckBclsMA",
"Description": "download"
}

aws glacier initiate-job --account-id - --vault-name sample-vault --job-parameters file://archive.json

aws glacier list-jobs --account-id - --vault-name sample-vault

{
"ArchiveSHA256TreeHash": "069ea4906c8c23a7f9a2e87ef6c3c104a10921ed794933d8d874133d7a3f9f6f",
"JobDescription": "download",
"ArchiveSizeInBytes": 562,
"Tier": "Standard",
"StatusCode": "Succeeded",
"VaultARN": "arn:aws:glacier:ap-northeast-1:******:vaults/sample-vault",
"StatusMessage": "Succeeded",
"CompletionDate": "2018-11-18T06:19:15.468Z",
"Completed": true,
"SHA256TreeHash": "069ea4906c8c23a7f9a2e87ef6c3c104a10921ed794933d8d874133d7a3f9f6f",
"JobId": "0042iEYqslXqASauSliWh-fUK4ryR3ESBE0allQJlMVSukZCXesyhOy5V0ekXtHIWppFsn2rDaHzk-mWsIm8M5lCx_wu",
"ArchiveId": "85L5vbNDcG7IxIC32_aXfDxoN8WFNkX7qM1XtKvdQhHvbeOlv_brvdS6QysS2oQANkz5bGSYt45bF3uG4WFBNnkYLM3BLeLjMCqTO1Fgi1tu8dYXKqJSJWIE2p0pv_uiM_ckBclsMA",
"RetrievalByteRange": "0-561",
"Action": "ArchiveRetrieval",
"CreationDate": "2018-11-18T02:31:07.857Z"
}

Statusがコンプリートになっていること

JobIDを確認する

ダウンロードする

aws glacier get-job-output --account-id - --vault-name sample-vault --job-id 0042iEYqslXqASauSliWh-fUK4ryR3ESBE0allQJlMVSukZCXesyhOy5V0ekXtHIWppFsn2rDaHzk-mWsIm8M5lCx_wu sample.yaml

{
"acceptRanges": "bytes",
"checksum": "069ea4906c8c23a7f9a2e87ef6c3c104a10921ed794933d8d874133d7a3f9f6f",
"contentType": "application/octet-stream",
"status": 200
}


sample.yaml

AWSTemplateFormatVersion: '2010-09-09'

Resources:
SecurityGroupB:
Type: AWS::EC2::SecurityGroup
Properties:
VpcId: vpc-26505643
GroupDescription: SecurityGroupB
SecurityGroupIngress:
- IpProtocol: tcp
FromPort: '80'
ToPort: '80'
CidrIp: 0.0.0.0/0
SecurityGroupC:
Type: AWS::EC2::SecurityGroup
Properties:
VpcId: vpc-26505643
GroupDescription: SecurityGroupC
SecurityGroupIngress:
- IpProtocol: tcp
FromPort: '22'
ToPort: '22'
CidrIp: 172.0.0.0/32


アーカイブの削除

aws glacier delete-archive --account-id - --vault-name 'sample-vault' --archive-id 85L5vbNDcG7IxIC32_aXfDxoN8WFNkX7qM1XtKvdQhHvbeOlv_brvdS6QysS2oQANkz5bGSYt45bF3uG4WFBNnkYLM3BLeLjMCqTO1Fgi1tu8dYXKqJSJWIE2p0pv_uiM_ckBclsMA

インベントリに反映されるのは最大1日かかる


ボールト削除

GUIで実施


お約束

投稿内容は私個人の意見であり、所属企業・部門見解を代表するものではありません。