Veeam v13でAWS S3 Object Lockを利用した不変バックアップを構成する

AWS S3 のバケットに、オブジェクトロック(WORM)のバックアップデータを保存するためには、S3 のオブジェクトロックを有効にしなければなりません。この有効化はバケット作成後に変更ができません。そのため、S3 バケットの再作成が必須となります。
本記事ではバックアップ途中から、S3 バケットをオブジェクトロックに変更する流れを共有します。
本記事の検証構成
オンプレミスのローカルリポジトリを一次バックアップ(イミュータブル)、AWS S3 バケットを二次バックアップ(ノン・イミュータブル)として構成しています。

変更の流れ
オブジェクトロック(WORM)が有効になったAWS S3 のバケットに対して、Veeam Backup & Replication(以降VBR)から不変バックアップのデータ転送を再開させる段取りは、ざっくり以下のとおりです。VBR には一次バックアップ用のジョブと、二次バックアップ(S3 へのデータ転送)用のジョブの2つのジョブが登録されています。
- VBR の S3 リポジトリから既存のバックアップデータを削除する
- VBR の既存二次バックアップジョブで S3 リポジトリを別のリポジトリに変更、ジョブを disable にする
- VBR で既存 S3 リポジトリを削除する
- AWS で既存 S3 バケットを削除(実務上は別名で先に新規作成を勧めます)
- AWS で新たな S3 バケットをオブジェクトロック(WORM)を有効にして作成する
- VBR に新たな S3 リポジトリを登録する
- VBR の既存二次バックアップジョブで新しい S3 リポジトリに変更、ジョブの disable を解除する
S3 のオブジェクトロックの設定
AWS S3 のオブジェクトロック(WORM)バケットを作成する時の必須の設定箇所は以下のとおりです。
・バケットのバージョニング:有効
・オブジェクトロック(WORM):有効

S3 内のデータの確認
二次バックアップのジョブの実行完了後に、S3 バケット内のデータがオブジェクトロックされているか確認します。S3 バケット内の個別のデータまで掘り下げていきます。任意のデータのプロパティを確認します。
“オブジェクトロックの保持” 内の “保持モード” が「コンプライアンスモード」になっていれば、問題ありません。

・リーガルホールドについて
管理者が手動で「有効」にすると、手動で「無効」に戻すまで、永遠にデータが保護されます。コンプライアンスモードとは違い、権限さえあればいつでも途中変更(解除)が可能です。
用途として、企業の法的監査や不正調査など、「いつまで保管するか現時点で決められないが、とりあえず今すぐデータを保全したい」という特殊なケースで使用します。そのため、VBR の通常運用では「無効」のままで問題ありません。
・オブジェクトロックの保持モードについて
一度設定した保持期限(図の例では7月28日)が来るまでは、AWS のルートアカウントであっても、誰もこのデータを削除・変更することはシステム的に不可能です。VBR の不変バックアップでは、このモードで間違いありません。
・保持期限について
評価環境の VBR では保持期間を「7日間」と設定しています。一方、不変バックアップのデータをコピーしたのは 6月21日 ですが、S3 バケット内のデータの保持期日は 7月28日 になっています。
厳密な計算式は不明ですが、VBR では30日間程度のマージンを追加する仕様になっているようです。
保持期日を超過しない限り、バックアップデータは削除できませんので、注意が必要です。
S3 コストの節約
以下の観点で設計時に考慮が必要です。
・一次バックアップで Fast Clone を使用することで、二次バックアップにおいて S3 に転送されるデータサイズを常に最小となるようにできます。
・S3 Standard-Infrequent Access (IA) や、アーカイブ向けの Amazon S3 Glacier Instant Retrieval を、VBR では直接リポジトリとして指定できます。オブジェクトロックの期間に注意しながら活用すればさらに容量単価を下げることが可能です。
・AWS 用の Helper Appliance を使用することにより、定期的なバックアップデータの健全性チェック(Health Check)において、オンプレミスの VBR に対してのアウトバウンド転送量を抑制できます。この対応は、S3 上の保存データが巨大であればより効果がでます。
以上です。
