コンクリートファイブジャパン岩本です。
当サイトでも「Storage for Amazon S3 アドオン」を用いて、ファイルマネージャーにアップロードされるファイルをAmazonS3上に保存しています。
※Storage for Amazon S3 アドオンの詳しい利用方法はこちらをご覧ください。
オペレーションミスやS3以外でのシステム不具合によるデータの損失の際にも、Amazon S3の機能のVersioningとLifecycleを用いることで、S3上に保存されるファイルを世代化することで回避できます。
ただし、Lifecycleで管理できるのは「現行バージョン」と「以前のバージョン」の2世代となります。
それでは、設定方法を交えて詳しく見ていきます。
S3バケットへVersioningの設定
AWS ManagementConsoleから、対象となるバケットのプロパティを選択し、「バージョニング」セクション内の「バージョニングの有効化」を選択します。
これで、S3上のファイルが更新されるたびに、ファイルバージョンが生成されるようになります。
ただし、このままでは無尽蔵にファイルが生成され続けるため、S3利用料が増え続けるので、不要なファイルを削除する設定(Lifecycle)を行います。
S3バケットへLifecycleの設定
AWS ManagementConsoleから、対象となるバケットのプロパティを選択し、「ライフサイクル」セクション内の「ルールの追加」を選択します。
続いて、ライフサイクルを適用する範囲を選択します。
バケット以下のディレクトリに対しても個別の設定が行えますが、今回はバケット全体とします。
続いて、Lifecycleのルールの設定を行います。
この際、ライフサイクルの対象として設定できるのはVersioningで生成された「以前のバージョン」と「最新バージョン」のみになります。
「5世代より以前のものを削除する」というような設定が行えません。
今回の目的は不慮の事故によるファイルの損失を防ぐ目的であるため、最新バージョンのファイルが損失したとしても、前バージョンがS3上に存在すれば良いと、以前のバージョンの保存期間を60日としました。保存期間などはシステムに合わせて設定ください。
ルールに間違いがなければ、「ルールの作成と有効化」を選択し、完了となります。
この設定により、不慮の事故が発生しても、60日間はS3上に以前のバージョンとしてファイルが保存されます。
AmazonS3を用いれば、以前のような、サーバー上でバックアップ元、バックアップ先それぞれのストレージ容量や、バックアップの成功・失敗の心配することなく、単一のストレージ上で容量の心配もなく簡単にファイルのバックアップが行えます。