https://qiita.com/fkooo/items/9c49a084a1926def627b
https://dev.classmethod.jp/articles/glacier-instructions-001/
※インベントリ(アーカイブ一覧)取得やアーカイブダウンロードの処理の流れ
①該当のジョブタイプ(とアーカイブダウンロードの場合はアーカイブID)を指定してinitiate-jobを実行
②ジョブ完了を待つ。list-jobsで状況を確認できる
③ジョブが完了したらそのジョブIDを指定してget-job-outputを実行
S3 Glacier は、出力を取得する前にジョブを完了している必要があります。
ジョブは、完了から少なくとも 24 時間は有効です。
つまり、ジョブが完了してから 24 時間は、出力をダウンロードできます。
-- 1. コマンド等のインストール
-- 1.1 aws cli version 2 インストール
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install
aws --version
-- 1.2 jqインストール
sudo yum -y install jq
-- 2. ボールトを作成
aws glacier create-vault \
--account-id 999999999999 \
--vault-name vault01
aws glacier describe-vault \
--account-id 999999999999 \
--vault-name vault01
-- 3. ボールトにアーカイブをアップロードする
アーカイブとは、写真、動画、ドキュメントなど、ボールトに保存するオブジェクトを指します。これは、S3 Glacier のストレージの基本単位です。
echo test01 > test01.txt
echo test02 > test02.txt
aws glacier upload-archive \
--account-id 999999999999 \
--vault-name vault01 \
--body test01.txt \
--archive-description "test01.txt"
aws glacier upload-archive \
--account-id 999999999999 \
--vault-name vault01 \
--body test02.txt \
--archive-description "test02.txt"
aws glacier describe-vault --vault-name vault01 --account-id 999999999999
※ボールトのステータスは約 1 日 1 回更新されます。
-- 4. SNSトピック作成
aws sns list-topics
aws sns list-subscriptions
aws sns create-topic --name topic01
aws sns subscribe \
--topic-arn arn:aws:sns:ap-northeast-1:999999999999:topic01 \
--protocol email \
--notification-endpoint admin@example.com
-- 5. ボールト通知の設定
vim sns.json
{
"SNSTopic": "arn:aws:sns:ap-northeast-1:999999999999:topic01",
"Events": ["ArchiveRetrievalCompleted", "InventoryRetrievalCompleted"]
}
aws glacier set-vault-notifications \
--account-id 999999999999 \
--vault-name vault01 \
--vault-notification-config file://sns.json
aws glacier get-vault-notifications \
--account-id 999999999999 \
--vault-name vault01
-- 6. ボールトインベントリ(アーカイブ一覧)取得
最初のアーカイブをボールトにアップロードすると、Amazon S3 Glacier(S3 Glacier)により、
ボールトインベントリが自動的に作成され、インベントリが約 1 日 1 回のペースで更新されます。
S3 Glacier が最初のインベントリを作成した後、そのインベントリを取得できるようになるまで、通常半日から最大 1 日かかります。
★アーカイブのアップロードがインベントリに反映されるまで1日程度待つ。
-- 6.1 アーカイブ一覧取得のジョブ実行
aws glacier initiate-job \
--account-id 999999999999 \
--vault-name vault01 \
--job-parameters '{"Type": "inventory-retrieval"}'
-- 6.2 ジョブ確認
aws glacier list-jobs --account-id 999999999999 --vault-name vault01
★ジョブが完了するまで6時間程度待つ。
-- 6.3 アーカイブ一覧取得
aws glacier get-job-output \
--account-id 999999999999 \
--vault-name vault01 \
--job-id='-aBkgbwQoxyguOhnyKnVX2JuP_1j44OCHsa7QMqUGIjjGwW7qs7QHmnssOmS7ZYHbOPTr5ypUCPN6-zJgveBPftXT1oe' \
archivelist.txt
cat archivelist.txt | jq
-- 7. ボールトからアーカイブをダウンロードする
迅速取り出しでアクセスしたデータは通常 1-5 分以内で使用可能になります。
標準取り出しを使用したアーカイブの取得は、通常 3-5 時間で完了します。
通常、大容量取り出しは 5-12 時間で完了します。
-- 7.1 アーカイブダウンロードのジョブ実行
vim a.json
{
"Type": "archive-retrieval",
"ArchiveId": "X8ibHLj5zoXW53i7gHvDs3c7J7qkwJLuuWTRgxCJcyNfJQ_aEIeErPB9k7ZCkZ8qE11igEtiTFAa0UmBO7V1qV49o-cMqXjSYldZYIiK-DlacWpZ0HxkbZGHpY67BJVqHfFpvPiXdA",
"Description": "retrieval_20211125_001"
}
aws glacier initiate-job \
--account-id 999999999999 \
--vault-name vault01 \
--job-parameters file://a.json
-- 7.2 ジョブ確認
aws glacier list-jobs --account-id 999999999999 --vault-name vault01
★ジョブが完了するまで6時間程度待つ。
-- 7.3 アーカイブダウンロード
aws glacier get-job-output \
--account-id 999999999999 \
--vault-name vault01 \
--job-id='YMoCk3Iqqq4FonMEtuzfRkyD-JY4Sc4WXHp9fB-jFH1_shWkfcl4uqi5hu8IjARoh64s4k89WGsaDfPKzs7OP3LMNgWz' \
test11.txt
cat test11.txt
-- 8. ボールトからアーカイブを削除する
aws glacier delete-archive \
--account-id 999999999999 \
--vault-name vault01 \
--archive-id "X8ibHLj5zoXW53i7gmvDs3c7J7qkwJLuuWTRgxCJcyNfJQ_aEIeErPB4k7ZCkZ8qE11igEtiTFAa0UmBO7V1qV49o-cMqXjSYldZYIiK-DlacWpZ0HxkbZGHpY67BJVqHfFpvPiXdA"
★アーカイブ削除がインベントリに反映されるまで1日程度待つ。
aws glacier describe-vault \
--account-id 999999999999 \
--vault-name vault01
-- 9. クリーンアップ
-- SNSトピック削除
aws sns unsubscribe --subscription-arn arn:aws:sns:ap-northeast-1:999999999999:topic01:11111111-2222-3333-4444-555555555555
aws sns delete-topic --topic-arn arn:aws:sns:ap-northeast-1:999999999999:topic01
aws sns list-topics
aws sns list-subscriptions
-- ボールトを削除
S3 Glacier では、最後にインベントリを計算した時点でボールト内にアーカイブがなく、
また、最後にインベントリを計算してからボールトへの書き込みがない場合にのみ、
ボールトを削除できます。
aws glacier delete-vault \
--account-id 999999999999 \
--vault-name vault01
aws glacier list-vaults \
--account-id 999999999999