S3 バージョニングとクロスリージョンレプリケーション

前回に続きS3の機能を見ていきますが、 今回はS3のバージョニング機能の使い方とライフサイクルを中心に勉強していきます。

###S3バージョニング機能

バージョニング機能を有効にすると変更を保存してくれてどのバージョンのファイルでもアクセスできるようになります。 バージョニング機能を使うのは至って簡単で、バケットのプロパティのバージョニング項目からバージョニングを有効にするボタンをクリックするだけです。ただし注意なければいけないのは、一度有効にすると無効にできないので必要か考慮してから有効にしましょう。

Enable versioning

さて、バージョニングを有効にしたら、バージョン管理を実際に試してみます。 1つファイルをアップロードしてみるとバージョンのタブでバージョン作成時、バージョンID、サイズが確認できます。

Show versioning

同じファイルを編集して再度アップロードすると、変更したファイルとオリジナルファイルが並んで確認できます。 バージョン作成時、IDとサイズが違うのが確認できます。ちゃんとバージョン管理ができていますね。

versioning detail

試しにバージョンタブを隠してファイルを削除してみます。そうするとバケットからはindex.htmlファイルは削除されますが 、バージョンを表示するとバージン管理されたファイルが残っているのが分かります。ファイルを見るとわかりますが実際には削除されていなくて削除マークが付いているだけです。

Delete Marker

削除したファイルを戻したい場合には、削除マークが付いているファイルをアクションメニューから削除すれば、もとに戻すことができます。 また、バージョン詳細の画面で、ファイルを削除するとそのバージョンのファイルを削除したことになり、1つ前のバージョンのファイルにリバートすることになります。削除マークはつかずに永久的にに削除されますので注意が必要です。

バージョニングは間違って削除してしまったり変更管理に大変便利ですが、全てのバージョンファイルのサイズが使用料として課金ます。 ですので、例えば上のバージョンファイルの例ですと、546バイトと614バイトの2つのファイルを保存している事になります。これが1GBのファイルとなると2GB使用していることになりますので、ファイルサイズが大きい場合には注意する必要があります。

###クロスリージョンレプリケーション クロスリージョンレプリケーションを有効にすると、S3に保存んしたファイルが別の任意のリージョンにコピーされるようになります。 使用するにはバージョニングを有効にしておく必要があります。 複製先のリージョンとバケットを選び、セキュリティアクセスロールを選びます。 ロールはIAMで勉強しましたが、リソースにアクセス権を付与できるセキュリティポリシーです。

Cross-Region-Replication

ロールが何もない場合には、新規作成して設定することができます。IAMロールは新しく作成すると自動的に、複製元と複製先のみアクセスが許可されたロールが作成されるので毎回個別に作成すると良いでしょう。

AM role for replication

設定が完了するとバックアップ用のバケットが作成されて、新規にアップロードされたファイルから複製されていきます。

New bucket on destination region

有効後のファイルからのみ自動でコピーされるので、すでに保存されているファイルに関しては手動でコピーする必要があります。(Copy APIを使用可能。) 2つのバケットにファイルを保存するので、その分の料金が発生します、また転送した分のデータ通信も費用が発生します。費用を抑えるために、複製先はストレージタイプを、RRSにすることも可能です。またライフサイクルを有効にしてGlacierに移動することも可能です。