この新しい Amazon S3 分析機能は、アクセス頻度の低い STANDARD ストレージをいつ STANDARD_IA (IA: 小頻度アクセス) ストレージクラス
に移行すべきかを判断できるように、データアクセスパターンを確認します。
ストレージクラス分析は ONEZONE_IA または S3 Glacier ストレージクラスへの移行に関する推奨事項を提供しません。
-- 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
-- 2. S3 バケットを作成する
aws s3 mb s3://bucket123
aws s3 ls
-- 3. テストファイルアップロード
echo test01 > test01.txt
aws s3api put-object --bucket bucket123 --key target/test01.txt --body test01.txt --content-type text/plain
aws s3api put-object --bucket bucket123 --key target/test02.txt --body test01.txt --content-type text/plain
aws s3api put-object --bucket bucket123 --key target/test03.txt --body test01.txt --content-type text/plain
aws s3 ls s3://bucket123 --recursive
-- 4. ストレージクラス分析の設定
vim a.json
{
"Id": "ba01",
"Filter": {
"Prefix": "target"
},
"StorageClassAnalysis": {
"DataExport": {
"OutputSchemaVersion": "V_1",
"Destination": {
"S3BucketDestination": {
"Format": "CSV",
"Bucket": "arn:aws:s3:::bucket123",
"Prefix": "report"
}
}
}
}
}
aws s3api put-bucket-analytics-configuration \
--bucket bucket123 \
--id ba01 \
--analytics-configuration file://a.json
aws s3api list-bucket-analytics-configurations \
--bucket bucket123
aws s3api get-bucket-analytics-configuration \
--bucket bucket123 \
--id ba01
-- 5. バケットポリシーの追加
{
"Version": "2012-10-17",
"Id": "0001",
"Statement": [
{
"Sid": "S3PolicyStmt",
"Effect": "Allow",
"Principal": {
"Service": "s3.amazonaws.com"
},
"Action": "s3:PutObject",
"Resource": "arn:aws:s3:::bucket123/report/*",
"Condition": {
"StringEquals": {
"s3:x-amz-acl": "bucket-owner-full-control",
"aws:SourceAccount": "999999999999"
},
"ArnLike": {
"aws:SourceArn": "arn:aws:s3:::bucket123"
}
}
}
]
}
aws s3api put-bucket-policy \
--bucket bucket123 \
--policy file://policy01.json
aws s3api get-bucket-policy \
--bucket bucket123
-- 6. 動作確認
2日程度待つ
aws s3 ls s3://bucket123 --recursive
aws s3 cp s3://bucket123/report/bucket123_ba01.csv -
-- 7. クリーンアップ
-- バケットの削除
aws s3 ls
aws s3 rb s3://bucket123 --force