はじめに
常々知ってはいたS3のバージョニング機能。なんだかんだで利用したことがなかったので、今さらですが試してみました。
今回はhogehoge2017というバケットを作成したので、これを使って試してみたいと思います。
1.バージョニングの有効化
すると バージョニングの有効化 ボタンが現れるのでそれをクリックして有効化します。
以上で設定は完了です。
2.確認
では実際にバージョニングが有効化されているか確認してみます。
バケットが空なので、とりあえず適当に何かアップロードしてみます。
ぱっと見はアップロードされただけで変化がないように見えます。でもよく見るとアップロードとかのボタンが並んでる横にバージョン非表示/表示のボタンがありました。
これを表示にしてみます。
また一段情報が追加されました。こうやってバージョン管理がされているようですね。
実際にバージョニングの変化を視覚的にも確認したいと思います。
先ほどアップロードした画像に修正を加えて再度アップロードします。
そして二つのバージョンのURLにそれぞれアクセスしてみます。
※今回は確認のため、事前にバケットの静的ウェブサイトホスティングを有効にしています。
修正前の画像が表示されるのを確認できました。
3.削除してみる
それではオブジェクトを削除するとどのように扱われるのでしょうか?ということで試してみます。
削除されたものには**(Delete Marker)**となり削除されたオブジェクトに対してもちゃんと管理されています。これならもし間違って削除してしまっても安心ですね。
4.料金課金について
バージョニングを有効にしたら課金料金とかってどういう感じになるのでしょうか?
S3のよくある質問に記載がありました。
Q: バージョニングの使用に関してどのように課金されますか?
通常の Amazon S3 料金は、格納またはリクエストされるオブジェクトの各バージョンについて適用されます。例えば、バージョニングを活用する際のストレージ費用を説明する以下のシナリオを見てみましょう(現在の月は31日まであると想定してください)。
- 月の1日目: お客様のバケット上で、4 GB(または4,294,967,296バイト)の PUT を実行します。
- 月の 16 日目: 1 日目の最初の PUT と同じキーを使用して、同一のバケット内で、5 GB (5,368,709,120 バイト) の PUT を実行します。
上記のオペレーションのストレージ費用を分析する際、5 GB のオブジェクトが15日目に書き込まれた時、初日の 4 GB のオブジェクトが、バケットから削除されるわけではないことにご注意ください。 そうではなく、4 GB のオブジェクトは古いバージョンとして保存され、5 GB のオブジェクトがお客様のバケット内で最も新しく書き込まれたオブジェクトのバージョンとなります。月末において:
総バイト – 時間使用量
[4,294,967,296 バイト x 31 日間 x(24 時間/日)] + [5,368,709,120 バイト x 16 日間 x(24 時間/日)] = 5,257,039,970,304 バイト-時間。
総 GB-月への変換
5,257,039,970,304 バイト-時間 x(1 GB/1,073,741,824 バイト)x(1 か月/744 時間)= 6.581 GB-月
データが米国東部 (バージニア北部) リージョンに保存されると仮定した場合、ストレージ料金は以下のように計算されます。
0~1 TB 利用枠: 6.581 GB x 0.0300 USD = 0.20 USD
つまり差分とかの扱いがないため、それぞれ別オブジェクトという認識で扱われるみたいです。
おわりに
S3のバージョニング機能を利用すると、誤ってファイルを削除しても復元できるのでとても便利だなと感じました。
ただ、バージョニング機能を有効にしているだけだとひたすらオブジェクトが増えて言ってしまうので気がついたらとんでもないことに。。。
なのでバージョニングを有効にしたら忘れずにライフサイクルポリシーも設定するようにしましょう。