Amazon S3 Glacier のアーカイブ戦略 - ストレージクラスの選定と取り出しオプション
Instant Retrieval・Flexible Retrieval・Deep Archive の選定基準を明確にし、ライフサイクルポリシーによる自動階層化と Vault Lock のコンプライアンス対応を紹介します。
Glacier ストレージクラスの全体像
S3 Glacier は長期アーカイブ向けの低コストストレージで、3 つのクラスがあります。Glacier Instant Retrieval はミリ秒単位のアクセスを提供し、S3 Standard-IA と比較して最大 68% 安価です。四半期に 1 回程度アクセスする医療画像や報道写真のアーカイブに適しています。Glacier Flexible Retrieval (旧 S3 Glacier) は迅速取り出し (1-5 分)、標準取り出し (3-5 時間)、大容量取り出し (5-12 時間) の 3 つの取り出しオプションを提供します。年に 1-2 回アクセスするバックアップデータに適しています。Glacier Deep Archive は最安のストレージクラスで、標準取り出しに 12 時間、大容量取り出しに 48 時間かかります。規制要件で 7-10 年の保持が求められるコンプライアンスデータに最適です。
ライフサイクルポリシーによる自動階層化
S3 ライフサイクルポリシーで、オブジェクトの経過日数に基づいてストレージクラスを自動的に移行できます。典型的な設計として、作成後 30 日で Standard-IA に移行、90 日で Glacier Flexible Retrieval に移行、365 日で Deep Archive に移行するポリシーが挙げられます。ライフサイクルポリシーはプレフィックスやタグでフィルタリングでき、バケット内のオブジェクトを種類ごとに異なるポリシーで管理できます。S3 Intelligent-Tiering の Archive Access 層と Deep Archive Access 層を有効にすると、アクセスパターンに基づいて自動的に Glacier 相当の階層に移行されます。日数ベースのライフサイクルポリシーと異なり、実際のアクセス頻度に基づく判断のため、予測困難なアクセスパターンのデータに適しています。
コンプライアンスと Vault Lock
Glacier Vault Lock は WORM ポリシーをボールトに適用し、一度書き込んだデータの削除や変更を防止する機能です。 SEC Rule 17a-4 や FINRA などの金融規制に対応した改ざん防止アーカイブを構築できます。 Vault Lock ポリシーは一度ロックすると変更不可能になるため、設定前にテストモードで検証することを推奨します。 S3 Object Lock も同様の WORM 機能を提供しますが、オブジェクト単位での制御が可能で、 Governance モード (特権ユーザーは解除可能) と Compliance モード (誰も解除不可) を選択できます。 Glacier を深く理解するには、専門書籍 (Amazon)が役立ちます。
Glacier の料金比較
Glacier Instant Retrieval は 1 GB あたり月額約 0.004 ドルで、ミリ秒単位の取り出しが可能です。Glacier Flexible Retrieval は約 0.0036 ドルで、標準取り出し (3〜5 時間) は 1 GB あたり約 0.01 ドル、迅速取り出し (1〜5 分) は約 0.03 ドルです。Glacier Deep Archive は約 0.00099 ドルで最安ですが、標準取り出しに 12 時間かかります。最小保存期間は Instant Retrieval が 90 日、Flexible Retrieval が 90 日、Deep Archive が 180 日で、早期削除には残存期間分の料金が課金されます。ライフサイクルポリシーで自動階層化する際は、最小保存期間を考慮した設計が重要です。
取り出しコストとリードタイムの設計
Glacier はストレージ単価が安い反面、データの取り出しには時間と費用がかかります。アーカイブ設計では、保管コストだけでなく、いざ取り出すときのリードタイムと取り出し料金まで見込んでおくことが重要です。緊急で素早く取り出す方式は高速ですが割高で、時間をかけてまとめて取り出す方式は安価です。復元の頻度や許容できる待ち時間を踏まえてクラスを選びます。大量のデータを一度に取り出すと費用がかさむため、どの程度の頻度で何を戻す可能性があるかを事前に見積もっておくと、想定外の出費を避けられます。
バックアップと災害対策での活用
Glacier は、長期保管が必要なバックアップや災害対策のデータ保管先として有効です。日常的に参照しないが、規制や事業継続のために保持しなければならないデータを、低コストで安全に保管できます。重要なデータは別リージョンへの複製と組み合わせ、地理的な冗長性を確保します。バックアップ管理サービスと連携すれば、保持ポリシーに沿って自動的にアーカイブ階層へ移し、世代管理まで一元化できます。復旧手順を定期的に確認し、いざというときに想定時間内にデータを戻せることを検証しておくことが肝心です。
最小保存期間と移行コストの注意
Glacier 系のクラスには最小保存期間が定められており、それより早く削除すると、残り期間分の料金が早期削除手数料として課金されます。短期間で消す可能性のあるデータを安易に深いアーカイブ階層へ移すと、かえって割高になることがあります。ライフサイクルで自動階層化を設計する際は、この最小保存期間を踏まえ、移行のタイミングを慎重に決めます。階層を移すこと自体にもリクエスト料金がかかるため、小さなオブジェクトを大量に移行する場合は、まとめて扱うなどの工夫でコストを抑えます。
アクセスパターンの見極め
適切なクラス選定の鍵は、データへのアクセス頻度と、許容できる取り出し時間を正しく見極めることです。たまに即座に参照する可能性があるなら、ミリ秒で取り出せる階層を選びます。年に数回しか触らず、数時間待てるならより安価な階層が適し、ほぼ参照せず長期保存するだけなら最安の階層が向きます。アクセスパターンが読みにくいデータには、利用状況に応じて自動で階層を移す仕組みが便利です。データの性質ごとに要件を整理し、保管コストと取り出し性のバランスが取れたクラスを割り当てることが、最適なアーカイブ戦略になります。
まとめ
Glacier はアクセス頻度の低いデータを極めて低コストで保存するアーカイブストレージです。Instant Retrieval (ミリ秒取得)、Flexible Retrieval (数時間取得)、Deep Archive (12 時間取得) の 3 クラスをアクセス頻度と取得時間の要件に応じて使い分けます。S3 ライフサイクルルールで自動移行を設定し、Vault Lock で WORM コンプライアンスを実現します。