Codable Tech Blog

iPhoneアプリケーション開発と AWS(Amazon Web Service)活用に関する記事を配信

S3とGlacierの連携

ユースケース

重要度が低くほとんど参照されることのないファイル(ex.1年前のログファイルとか)をS3に保存していてはコストがもったいないのでGlacierに移動することでコスト削減を図る。また、手動での移動は管理工数を増やすのでS3のライフサイクルを利用して運用を自動化する。

事前準備

  1. S3上にバケットを作成する
  2. 適当なオブジェクトをバケットにアップロードする

ライフサイクルの設定

バケットを選択し管理タブを開き、ライフサイクル > ライフサイクルルールの追加を選択
ルール名とフィルターを入力する

ルール名:任意
フィルター:空白
フィルターはライフサイクルを適用する範囲。なにも入力しなければバケット全体にライフサイクルが適用される。フィルターに「test/」と指定するとtest/a.txtやtest/b.txtのようにtest/以降オブジェクトだけにライフサイクルが適用される。

次に移行の設定を行う
まず、現行バージョンにチェックをつける(※)

(※)
バージョニング機能を有効にしていれば現行バージョンと以前のバージョンでそれぞれライフサイクルを設定することが可能。
バージョニング機能を利用することで以前のバージョンだけGlacierに保管するように設定できる。

次に移行を追加するをクリックし、「Amazon Glacierへの移行期限」を選択し、オブジェクトの作成からの日数に「1」を指定。(これでオブジェクト作成から1日後にAmazon Glacierへ移行する)
設定の失効はオブジェクトの削除に対する設定を行う。今回はなにも指定せずに次に進む。
設定が完了したらライフサイクルルールを保存する。

動作確認

1日後にライフサイクルを指定したバケットにアクセスする。
ストレージクラスが「Glacier」変更されていたらOK!