S3のライフサイクルルールでファイルを自動管理

 「Amazon S3にファイルを保存しているけど、古いファイルもずっと同じストレージに保存しておく必要があるのかな…」と思ったことはありませんか?そんな時は、Amazon S3のライフサイクルルールを利用することで、一定期間が経過したファイルを低コストなストレージクラスへ自動的に移行したり、不要になったファイルを自動的に削除したりすることができます。

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

【エンジニア募集中】フルリモート可◎、売上/従業員数9年連続UP、平均残業8時間、有給取得率90%、年休124日以上 etc.  詳細はこちらから>

Amazon S3には、用途に応じて複数のストレージクラスがあります。

例えば、普段から頻繁にアクセスするファイルには「S3 Standard」を利用し、長期間アクセスしないファイルについては「S3 Glacier」などの低コストなストレージクラスを利用できます。

S3のライフサイクルルールを設定すると、オブジェクトを作成してから一定期間が経過したタイミングで、自動的にストレージクラスを変更することができます。

今回は、次のようなルールを設定してみます。

  • ファイル作成から60日後:S3 Standard-IAへ移行
  • ファイル作成から180日後:S3 Glacier Flexible Retrievalへ移行
  • ファイル作成から540日後:ファイルを削除

このようにすることで、古くなってアクセス頻度が低くなったファイルのストレージ料金を抑えることができます。

 

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

それでは、Amazon S3のライフサイクルルールを作成してみましょう。

  1. AWSマネジメントコンソールから「Amazon S3」に移動します。
  2. ライフサイクルルールを設定したいS3バケットを選択します。
  3. 「管理」タブを開きます。
  4. 「ライフサイクルルールを作成」をクリックします。
  5. ライフサイクルルール名を入力します。
  6. ルールを適用する対象を設定します。



バケット内のすべてのファイルを対象にすることもできますが、プレフィックスやタグを指定することで、特定のファイルだけを対象にすることもできます。

例えば、”logs/”というプレフィックスを指定すると、logs/application.logやlogs/access.logなど、「logs/」配下に保存されているオブジェクトだけにライフサイクルルールを適用できます。

 

ストレージクラスを自動的に変更

続いて、「ライフサイクルルールのアクション」でオブジェクトのストレージクラスを変更する設定を行います。

今回は、「現行バージョンのオブジェクトをストレージクラス間で移行する」を選択します。

まず、ファイル作成から60日後に「Standard-IA」へ移行するように設定します。

さらに移行設定を追加して、ファイル作成から180日後に「Glacier Flexible Retrieval」へ移行するように設定します。

イメージとしては次のようになります。

S3 Standard
↓ 60日後
S3 Standard-IA
↓ 180日後
S3 Glacier Flexible Retrieval


最近作成されたファイルはアクセスしやすいS3 Standardに保存し、時間が経過してアクセスする可能性が低くなったファイルは、より低コストなストレージクラスへ自動的に移行できます。

 

古いファイルを自動削除

長期間保存する必要がないファイルについては、ライフサイクルルールを利用して自動的に削除することもできます。

「ライフサイクルルールのアクション」で、「オブジェクトの現行バージョンを有効期限切れにする」を選択します。

今回は、オブジェクト作成から540日後に削除されるように設定します。


これで、

S3 Standard
↓ 60日後
S3 Standard-IA
↓ 180日後
S3 Glacier Flexible Retrieval
↓ 540日後
自動削除

という流れになります。

一度ライフサイクルルールを設定しておけば、ユーザーが手動でファイルを移動したり削除したりする必要はありません。

ただし、ストレージクラスによって最低保存期間やデータ取り出し料金などが設定されているため、ファイルの利用頻度や保存期間に合わせて設定することが重要です。

以上、Amazon S3のライフサイクルルールを利用して、ストレージ料金を節約する方法について紹介しました。

長期間保存するログファイルやバックアップファイルなどがある場合は、ぜひ活用してみてください!

【エンジニア募集中】フルリモートも◎(リモート率85.7%)、平均残業8時間、年休124日以上、有給取得率90% etc. 詳細はこちらから>

Smallitのサービス