← ハンズオン一覧に戻る

AWS Hands-on / Storage

古いファイルを自動で安く保管し、いずれ自動で消す

S3 の「ライフサイクルルール」を作り、置いてから時間がたったファイルを、より安いストレージクラスへ自動で移したり、決めた日数で自動的に削除したりする設定を組みます。手作業に頼らず、保管コストを自動で抑える運用の入口を体験します。

● Lv.2 基本的なリソースを作れる人 ⏱ 所要 30〜50 分 すべてコンソールで完結
01 — Prerequisites

はじめる前に

  • 必須AWS アカウントを持っていること
  • 必須マネジメントコンソールにサインインできること
  • 必須S3 でバケットを作り、ファイルをアップロードした経験があること
  • あると良い「データには、よく使うものとめったに使わないものがある」という感覚
  • あると良いS3 に「ストレージクラス(保管の種類)」が複数あることを聞いたことがある(本文で説明します)

※ このハンズオンは すべてコンソールだけで完結します。ライフサイクルによる移行・削除は日数をかけて自動で起きるため、ここでは「ルールを正しく設定できた」ところまでをゴールとします。

02 — References

参照する公式ドキュメント

手順に迷ったときや、用語の意味を確かめたいときに開きましょう。

※ リンク切れの場合は、ページタイトルで検索してください。

03 — Background

背景・シナリオ

ファイルは、置いた直後はよく使っても、時間がたつとだんだんアクセスされなくなるものです。たとえばログや古い資料は、最初の数日は見るかもしれませんが、数か月後にはほとんど開きません。それでも「念のため」残しておきたい——そんなデータを、ずっと一番高い保管方法で持ち続けるのは、もったいない話です。

S3 には、アクセス頻度に応じて使い分けるストレージクラス(保管の種類)が複数あります。よく使う標準クラスは取り出しが速い代わりに割高、めったに使わないデータ向けのクラスは安い代わりに取り出しに手間や時間がかかる、といった違いです。ライフサイクルルールを使うと、「置いてから N 日たったら安いクラスへ移す」「M 日たったら自動で削除する」といった整理を自動で行えます。今回はこのルールを作ります。

なぜ古いデータを「安いクラス」に移すの?

アクセスが減ったデータには、取り出しの速さより保管の安さが向いているからです。すぐ取り出す必要がなくなったものを安いクラスへ移すと、同じデータを持ち続けても保管料金を下げられます。「使う頻度に保管方法を合わせる」という考え方です。

設定したら、すぐ移行や削除が起きるの?

いいえ。ライフサイクルは日数を基準に、AWS が一日一回ほどのペースで自動処理します。設定した瞬間に移動・削除されるわけではありません。そのため今回は、ルールを正しく作れたことをゴールにします。

Goal

バケットにライフサイクルルールを作り、一定日数が過ぎたオブジェクトを安いストレージクラスへ自動で移行し、さらに一定日数後に自動で削除(有効期限切れ)する設定が、正しく保存されている状態にする。

04 — Architecture

つくる構成

アップロードしたオブジェクトは、置いてからの日数に応じて、安いストレージクラスへ段階的に移っていき、最後は自動で削除されます。下は設定の一例です(日数やクラスは自分で決められます)。

S3 標準
アップロード直後
よく使う・取り出し速い
標準 — 低頻度アクセス
たまに使う
保管が安い
Glacier
めったに使わない
さらに安い・取り出しに時間
削除(有効期限)
役目を終えたら
自動でなくなる
矢印の日数は「アップロードしてからの経過日数」の例です。実際の値は自分で決められます。
※ 安いクラスへの移行には最短日数の決まりがある場合があります(例:標準 → 標準-IA は 30 日以上)。
05 — Requirements

要件

以下の要件を満たすライフサイクルルールを作成してください。日数やクラスは例を参考に、自分で決めて構いません。

No要件
1リージョンは「東京(ap-northeast-1)」を使用する。
2S3 バケットを 1 つ作成し(名前は世界で一意。例:my-lifecycle-yourname-20260620)、確認用にファイルをいくつかアップロードする。
3ライフサイクルルールを 1 つ作成する。適用範囲は、バケット全体か、特定のプレフィックス(例:logs/)のどちらでもよい。
4ルールに、一定日数後に安いストレージクラスへ移行するアクションを入れる(例:30 日後に「標準 — 低頻度アクセス」、90 日後に「Glacier Flexible Retrieval」)。
5ルールに、さらに一定日数後に有効期限切れ(自動削除)するアクションを入れる(例:365 日後に削除)。
6ルールが「有効」として保存され、移行・有効期限の内容と日数、適用範囲が確認できる。
06 — Steps

構築の進め方

「バケットを用意 → ルールの適用範囲 → 移行のアクション → 削除のアクション」の順に組み立てます。日数の意味を意識しながら設定しましょう。

  1. マネジメントコンソールにサインインし、リージョンを合わせる

    ブラウザで AWS マネジメントコンソールにサインインし、画面右上のリージョンが「アジアパシフィック(東京)ap-northeast-1」になっていることを確認します。

  2. バケットを作り、確認用のファイルを置く

    S3 コンソールで「バケットを作成」し、世界で一意な名前を付けます。ルールの対象を分かりやすくするため、いくつかファイルをアップロードしておきます(特定範囲に適用したい場合は、logs/ のようなフォルダを作ってその中に置きます)。

    プレフィックスで対象を絞れる

    ライフサイクルルールは、バケット全体だけでなく logs/ のようなプレフィックス(先頭の名前)で対象を絞れます。「ログだけ古くなったら整理したい」といった使い分けができます。

  3. ライフサイクルルールの作成を開始し、適用範囲を決める

    バケットの「管理」タブ →「ライフサイクルルールを作成」を開きます。ルール名(例:archive-and-expire)を付け、適用範囲を選びます。バケット全体に適用するか、プレフィックス(例:logs/)で絞るかを決めます。

    ライフサイクルルールを作成 — ルールの範囲(イメージ)

    ルールの範囲

    このバケット内のすべてのオブジェクトに適用
    バケット全体に同じルールをかける
    1 つ以上のフィルターを使用してルールの範囲を限定する
    プレフィックスやタグで対象を絞る

    今回はバケット全体に適用するため「このバケット内のすべてのオブジェクトに適用」を選びます

    全体に効かせるときは確認が入る

    バケット内のすべてに適用する場合、影響範囲が広いため確認のチェックを求められます。意図した範囲かどうかを、ここで一度立ち止まって確かめましょう。

  4. 「安いクラスへ移行」するアクションを設定する

    ルールのアクションで「オブジェクトの現行バージョンをストレージクラス間で移行する」を選びます。移行先のクラスと日数を、例を参考に設定します。

    移行 1作成から 30 日後 → 標準 — 低頻度アクセス(Standard-IA)
    移行 2(任意)作成から 90 日後 → Glacier Flexible Retrieval
    移行には最短日数の決まりがある

    たとえば「標準 → 標準-IA」は、作成から30 日以上たってからでないと移行できません。日数を小さくしすぎると設定できないことがあるので、例の値を目安にしましょう。クラスごとの特性は、参照ドキュメントで確認できます。

  5. 「有効期限(自動削除)」のアクションを設定する

    同じルールの中で「オブジェクトの現行バージョンを有効期限切れにする」を選び、削除までの日数を設定します(例:作成から 365 日後)。これで、役目を終えたデータが自動で削除されるようになります。

    有効期限は「自動で消える」

    有効期限切れのアクションは、指定日数が過ぎたオブジェクトを自動で削除します。便利な反面、必要なものまで消さないよう、対象範囲と日数は慎重に決めましょう。移行の日数より後ろに設定するのが基本です。

  6. 内容を確認して保存する

    ルールの「概要」で、適用範囲・移行(クラスと日数)・有効期限(日数)の内容を確認し、「ルールを作成」で保存します。一覧でルールのステータスが「有効」になっていれば設定完了です。

    移行・削除はこれから自動で起きる

    ルールは保存した時点から働き始めますが、実際の移行・削除は指定した日数が経過したオブジェクトに対して、後日自動的に適用されます。今すぐ画面上で移動が起きるわけではない点に注意しましょう。

07 — Pitfalls

つまずきポイント

初学者がよく引っかかる箇所を先回りでまとめました。答えそのものは載せていませんが、「どこを見直せばよいか」の手がかりとして使ってください。

Pitfall 01 — 設定したのに、すぐに移行・削除されない

「ルールを作ったのに、オブジェクトのクラスが変わらない」

これは故障ではありません。ライフサイクルは「アップロードからの経過日数」を基準に、AWS が後日(おおむね一日一回ほどのペースで)自動処理します。設定した瞬間に移動・削除されるものではないため、ルールが「有効」で保存できていれば、このハンズオンとしては達成です。日数や対象範囲が意図どおりかを確認しておきましょう。

Pitfall 02 — 移行の日数が小さすぎて設定できない/削除と前後する

「移行の日数でエラーになる、または削除のほうが先に来てしまう」

①移行先クラスごとの最短日数の決まり(例:標準 → 標準-IA は 30 日以上)を下回っていないか、②有効期限(削除)の日数が、移行の日数より後ろになっているかを確認しましょう。削除のほうが早いと、安いクラスへ移る前に消えてしまい、移行の設定が意味を持ちません。日数は「移行 → 移行 → 削除」と後ろへ進む順に並べます。

08 — Checklist

完了チェック

要件の再確認ではなく、画面のどこを見れば達成を確認できるかをまとめました。S3 コンソールを開いて、次を順に確かめましょう。

  • バケットの「管理」タブに、作成したライフサイクルルールがある。
  • そのルールのステータスが「有効」になっている。
  • ルールの詳細に、ストレージクラスへの移行(クラスと日数)の設定がある。
  • ルールの詳細に、有効期限(削除)の日数の設定があり、移行より後ろの日数になっている。
  • ルールの適用範囲(バケット全体、またはプレフィックス)が意図どおりになっている。
09 — Think

考えてみよう

手を動かすことに加えて、次の問いに自分の言葉で答えられるようにしておくと、理解がより深まります。

  1. 古いデータを安いストレージクラスへ移すと保管料金は下がりますが、いいことばかりではありません。安いクラスには、どんな「引き換え」があるでしょうか。
    ヒント
    安いクラス、とくに Glacier 系は、取り出しに時間がかかったり、取り出し自体に料金がかかったり、最低保存期間が決められていたりします。「保管は安いが、出すのは手間」という性質です。よく出し入れするデータには向かない、という観点で考えてみましょう。
  2. 有効期限(自動削除)はコスト削減に役立ちますが、リスクもあります。どんな点に気をつけて日数や対象を決めるべきでしょうか。
    ヒント
    自動削除は、指定日数が過ぎたものを問答無用で消します。まだ必要なデータが対象範囲に含まれていると、自動で失われてしまいます。「対象範囲(プレフィックス)」と「日数」を、本当に消してよいものだけに合わせる慎重さが必要、という観点で考えてみましょう。
  3. 「アクセス頻度が読めない・ばらばら」というデータの場合、日数で機械的に移行を決めるのが難しいことがあります。アクセス状況に応じて自動でクラスを最適化してくれる仕組みが S3 にないか、調べてみましょう。
    ヒント
    アクセスのパターンを自動で見て、よく使われるか・使われないかに応じてクラスを自動で動かしてくれるストレージクラスがあります。「日数で決め打ちできないデータ」に向いた選択肢です。「Intelligent-Tiering」というキーワードで調べてみましょう。
10 — Clean up

後片づけ

学習で作ったルールとバケットを片づけます。ライフサイクルルール自体には料金はかかりませんが、置いたオブジェクトには保管料金がかかるため、忘れず削除しましょう。

  1. ライフサイクルルールを削除する(任意):バケットの「管理」タブで、作成したルールを選んで削除します(バケットごと消す場合は省略してかまいません)。
  2. オブジェクトを削除する:バケットを開き、アップロードしたオブジェクトをすべて削除します(バケット一覧で「空にする」を使うとまとめて消せます)。
  3. バケットを削除する:中が空になったら、バケットを削除します。
Caution — ルールだけ消してもオブジェクトは残る

料金がかかるのは「保管しているオブジェクト」

ライフサイクルルールを削除しても、すでに置いてあるオブジェクトは残り、保管料金はかかり続けます。コストを止めるには、オブジェクト本体を削除する必要があります。とくに、移行先が Glacier 系のクラスになっているオブジェクトには、最低保存期間に伴う扱いがある点も意識しておきましょう。

コストに関する注意: S3 は、保存しているデータ量・リクエストの回数・データ転送量に応じて課金され、ストレージクラスごとに保管の単価が異なります(標準は割高、低頻度アクセスや Glacier 系は安い)。安いクラスは保管料が下がる代わりに、取り出しにリクエスト料金や時間がかかったり、最低保存期間が設けられていることがあります。ライフサイクルによる移行にも、移行のリクエスト料金が少額かかります。ライフサイクルルールの設定自体に料金はかかりませんが、置いたオブジェクトには保管料金がかかるため、学習が終わったら上の「後片づけ」でオブジェクトとバケットを削除しておきましょう。新規アカウントには無料利用枠(一般的に 5 GB のストレージ)があり、小さなファイルでの学習ならごく少額です。最新の料金やクラスごとの条件は、AWS の公式料金ページで確認してください。