記事:
Glacierは、StorageClass:Glacierになっている。
S3に戻して、ダウンロード可能になるにはTier=Standardの場合、3〜5時間かかる。
指定時間経過後、Glacierに移動する時間を指定できる。
S3 objectが大量の場合:
S3 objectが少数の場合:
aws --profile test-user --region us-east-1 s3api restore-object --bucket mybucket --key logs/host1/access.log-20140101.gz --restore-request '{"Days": 1}'
aws --profile test-user --region us-east-1 s3 cp s3://mybucket/logs/host1/access.log-20140101.gz ./host1/
AWS_PROFILE=default AWS_REGION=ap-northeast-1 S3_BUCKET=mybucket S3_PREFIX=prefix/AWSLogs/123456789/elasticloadbalancing/ap-northeast-1/2024/01/ RESTORE_DAYS=3 aws s3api list-objects --profile $AWS_PROFILE --region $AWS_REGION --bucket $S3_BUCKET --prefix $S3_PREFIX --query 'Contents[].Key' --output text | tr '\t' '\n' \ | parallel \ aws s3api restore-object --profile $AWS_PROFILE --region $AWS_REGION --bucket $S3_BUCKET --key "{1}" --restore-request "Days=$RESTORE_DAYS,GlacierJobParameters={Tier=Standard}"
aws s3api head-object --profile $AWS_PROFILE --region $AWS_REGION --bucket $S3_BUCKET --key $key --output json | jq -r .Restore
S3_INCLUDE='access.log-2017050[8-9]*' for i in $(seq -w 0001 $END_HOST); do \ prefix=$(echo $S3_PREFIX | perl -pe "s/\\$\i/$i/" ); \ aws s3 cp s3://$S3_BUCKET/$(dirname $prefix)/ ./$(dirname $prefix)/ \ --profile $AWS_PROFILE --region $AWS_REGION \ --recursive --exclude "*" --include "$S3_INCLUDE" --force-glacier-transfer; \ done
デフォルトでは 月のストレージ容量の5%まで無料。以下の方法で確認できる。
AWS_PROFILE=default; AWS_ACCOUNT_ID=12345467890; \ for region in $(aws --profile $AWS_PROFILE ec2 describe-regions --query "Regions[].[RegionName]" --output text); do \ echo "---- $region"; aws --profile $AWS_PROFILE --region $region glacier get-data-retrieval-policy --account-id $AWS_ACCOUNT_ID; \ done >> $AWS_PROFILE.glacier.$(date +%Y%m%d-%H%M%S).log
aws --profile default --region us-east-1 glacier set-data-retrieval-policy --generate-cli-skeleton > glacier-policy.json