Database JUNKY

MySQL,MariaDBを中心としたブログです

aws s3のファイル大量削除は、ライフサイクルルールでやりましょう!

awsバケットの削除、もしくは、フォルダの中身の削除、s3のコンソールからでも行えるのですが、この中身が大量にあると一苦労。あっさり消えてくれません。もしくは、webのセッションがタイムアウトしてしまって、作業時間の無駄になってしまいますw

ここは、もっと効率よく、ライフサイクルルールで大量削除を実施しましょう!ただし、取り扱い注意!!

f:id:hit10231023:20180309123622p:plain

ライフサイクルルールとは

単純にいうと、s3内のファイルライフサイクル管理ですかね。(そのまま

ライフサイクルルールには、2種類ありまして。。。

1.移行アクション – 別のストレージクラスにオブジェクトを移行するタイミングを定義します。たとえば、作成後 30 日目に STANDARD_IA (IA、少頻度アクセス) ストレージクラスにオブジェクトを移行し、作成後 1 年目に GLACIER ストレージクラスにオブジェクトをアーカイブするよう選択することができます。

2.失効アクション – オブジェクトの有効期限日を指定します。これにより、Amazon S3 はユーザーに代わって有効期限切れのオブジェクトを削除します

今回の主題で、2.失効アクションをライフサイクルルールでやれば、1日あと、きれーいに削除できるのではないかと考え、それを設定してみました。

設定手順

対象のバケットを選択

ここでは、とある、バケットのvideosというフォルダを選択しています。ここから管理というタブをクリックします

f:id:hit10231023:20180327131637j:plain

ライフサイクルルール作成

ライフサイクルルールの追加をクリックします

f:id:hit10231023:20180327131840j:plain

対象のオブジェクト(フォルダ)を入力

今回は、バケット全体を削除するわけではなく、とあるバケットのvideosの中を削除したいので、プレフィックスを設定します。ここ、すごく危険なので、設定が間違っていないか何回も確認してください。間違っていたら大事故になるかもしれません。

f:id:hit10231023:20180327132034j:plain

移行の設定

今回、移行ではなく削除なので、チェックを入れないで次に進みます

f:id:hit10231023:20180327132415j:plain

失効の設定

ここが今回のメインになります。以下のように設定しました。全て消し去って、使われていない、オブジェクトの削除を実施したかったので、赤枠のほとんどにチェックを入れました、そして、大事なのは、この日数の部分ですね。1日に設定しました。 つまり、1日経過したあと、ルールが適用されるとかそんなイメージです

f:id:hit10231023:20180327132626j:plain

確認画面

自身が設定したものが間違いないか、何回もチェック!!!

f:id:hit10231023:20180327132948j:plain

ルール反映

ルールが反映され、一覧に表示されているかと思います。

f:id:hit10231023:20180327133058j:plain

以上、こんな感じで、翌日、中のファイル(オブジェクト)がきれいさっぱり削除されているか、確認したいと思います。

いかがでしょうか?設定は簡単なんだけど、やるのは、すごーく怖い設定の話でしたw