あのときの、ほら!あれ、あれ!

SIer勤務のAWSなエンジニア(父)が好きなことをアウトプットして人生のなにがしかに役立てたり役立てなかったりするブログ

S3 Glacierのボールトロック

昨日の記事にてAWS SOAに向けた勉強に少しばかりエンジンがかかった気がしています。

コロナウィルスで外出を控えている方が多いのを狙ってWhizlabsから50%OFFクーポンが届いていたので
「え~~い!やったるわ~!」とAWS SOAの問題集を購入しました(1000円くらい)

www.whizlabs.com

これから毎日少しずつ勉強時間確保して、4月上旬くらいまでには取りたいなと思っています。

で、今日の本題なんですが、SOAの問題集を解いていてS3 Glacierについて知らない概念があったので
AWS SAAのおさらいがてらS3 Glacierについてざっと大事な要素をまとめておきたいと思います。

そもそもS3 Glacierってなに?

データのアーカイブ/バックアップ用に最適化されたストレージサービスです。
基本的にほとんど参照する必要はないが、残しておかなければいけないデータを格納しておく用途を想定されています。
○○ヵ月経過したら参照する頻度が下がるが残しておかないといけないデータが格納されている
S3オブジェクトにライフサイクルを設定しておくことで、自動的にS3Glacierにデータを内部的に移動するなどといったことが可能で
S3よりデータ保持にかかるコストが安価です。その代わり頻繁なデータの取り出しなどは基本的に想定されていないので
データの取り出しには長時間かかり、コストも高いので、使用する際は注意が必要です。

S3 Glacierのデータモデルの主要概念

上記のように基本的にはS3とセットで使うというくらいにしかGlacierの知識はなかったのですが この機会にGlaicerを使う上で出てくる用語くらいは抑えておこうと思います。

写真・動画・ログファイルなどの任意のデータのこと(S3でいうところのオブジェクト)
アーカイブには一位のIDとオプションが割り当てられます

  • ボールト

アーカイブを格納するコンテナ(S3でいうところのバケット

  • ジョブ

アーカイブに対する処理をジョブと呼びます。アーカイブをダウンロードする際は
まず、ジョブでアーカイブを取得し、ジョブの出力結果をダウンロードするという流れになります

  • 通知設定

S3 Glacierのアーカイブに対するジョブ実行は完了まで長時間かかるため完了通知機能をサポートしています
ジョブの完了時に、AmazonSNSに通知を送信するようにボールトを設定できます

S3 Glacierのボールトロック

S3 Glacierに格納されているアーカイブデータに対して、書き込み処理ができないように
ロックをかけるオプションがボールトロックです
S3 Glacierに格納されているデータはその性質上、改ざんされないようにプロテクトする必要があるケースが多いと思います

ボールトに対してボールトロックポリシーを設定することで
「Write once Read Many」などコンプライアンスに即したデータ保護を設定することができるようです。

ボールトロックをかけるまでのステップ

  • ステップ1

ボールトロックポリシーをボールトに関連付けます。
これによってロックが「InProgress」の状態になり、ポリシー内容が適切か検証できる状態になります。
InProgress状態になった際に、ロックIDが払い出されます。(ロックIDの有効期限は24時間)


  • ステップ2

ステップ1の検証の結果、ポリシー内容が問題なければ、ロックIDを使用してロックをかけます。
ステップ1でポリシーに不備があれば、ロックを中止することが可能です。


おわりに

S3 Glacierについて、超基本的なことをおさらいしました。
正直、S3Glacierって実際にAWSを使っていてもほとんど意識しないんですよね(ユースケース的に当然ですが)
ボールトロックという機能については、コンプライアンス要件が厳格なプロジェクトは使用するケースがあると思うので
覚えておいて損はないですね。

参考