🥪

AWS CloudShellでS3バケットのライフサイクルルールをCLIで設定する

2021/08/23に公開

いくつかのS3バケットに同じライフサイクルルールを適用させたかったのですが、検索力の無さから一括でできる方法が見当たらず、コンソールからポチポチやるのも面倒だったのでCLIで設定してみました。

1.ライフサイクルルールのjsonファイルを作成

アップロードした日から60日でGlacierに移行し、180日で有効期限切れになる「glacier60days-expiration180days」というライフサイクルルールを作成しました。

s3-lifecycle.json
{
    "Rules": [
        {
            "Expiration": {
                "Days": 180
            },
            "ID": "glacier60days-expiration180days",
            "Filter": {},
            "Status": "Enabled",
            "Transitions": [
                {
                    "Days": 60,
                    "StorageClass": "GLACIER"
                }
            ]
        }
    ]
}

2.jsonをアップロード

クラウドシェルを立ち上げたら、右側の「Actions」→「Upload file」を選択します。

先ほど作成した「s3-lifecycle.json」を選択してアップロード。

3.コマンド実行

「202108-test-bucket」というS3バケットに適用させたいので以下のコマンドを実行します。
aws s3api put-bucket-lifecycle-configuration --bucket 202108-test-bucket --lifecycle-configuration file://s3-lifecycle.json

S3の画面から確認すると、「glacier60days-expiration180days」が適用されていることがわかります。

Discussion