■目的
ファイルサーバとしてS3を利用する場合,古いファイルは消して節約を図りたいです.
その際に取る方法とてして,
1.シェルで定期的に消す
2.S3のLifeCycle設定を利用
2の場合,短い期間は設定できず,30日は残さないといけません.
まぁ,30日あった方が良いので,S3を使うなら極力LifeCycleを設定する方向で.
■設定方法
LifeCycleを設定する対象には,
バケット全体とバケットの中の一部
があります.
前者は,何も考えずそのまま設定で良いですが,後者の場合はPrefixを用いて設定します.
例)imagesディレクトリ以下を対象とする.
あるバケットに,imagesのディレクトリがあって,そこにたまっている画像は30日過ぎれば消す仕様とします.ただし,そのバケットには他にも,worksやらlogsやら色々ある状況です.
(logsも消せよって話はおいておいて)
その場合設定する方法としては,
prefixの設定で,"images"を設定
することです.
この設定を行うことによって,同じバケットにあるworksやlogs以下は対象外となります.
■過去のファイルは?
過去LifeCycleを設定せずファイルを放置してきており,途中から設定を行った場合はどうなるのか?
試したところ,過去のファイルもルールが適用され,仮に90日でExpireであれば,90日前のファイルは削除されます.
なので途中でルールを設定しても,キチンと過去のファイルも適用してくれるので安心です.