{S3}ストレージクラス分析の設定

この新しい 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. バケットポリシーの追加

vim policy01.json

{
    "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