いくつか把握していなかったS3の機能詳細について覚書としてまとめておこうかと。
低冗長化オプション(RRS)
S3でデータ可用性の低い、料金の安いオプションを指定できることは知っていたけど、バケット単位で指定するものだと思い込んでいた。最近流行りのオブジェクト単位の管理方式で、階層的には管理はしてくれない。アップロード時にAPIからRRS指定でアップロードをするか、アップロード済みのオブジェクトに対してRRSに変更をする必要がある。S3だけでも十分に安いので、敢えて利用する実装をすることの方がコストが大きい気がする。
バージョニング設定
バージョニング指定で何をどこまでバージョン管理をしてくれるのやら検証をしたことが無かった。削除ファイルがバージョン管理されるのか、世代管理されたオブジェクト達はどのように利用可能なのか、を確認してみた。意識したことが無かったが、Management ConsoleでHideからShowに変更すると参照できた。
同一ファイルを上書きアップロードした後に削除するとこんな感じで見える。
Delete Markerが付いたオブジェクトを削除すれば元通りにできた。あと、Cyberduckでは「不可視ファイルを表示」というオプションからバージョニングされたファイルを参照することもできた。消し忘れに注意しないと気がつかないかも。
ライフサイクル設定
バージョニングも合わせて利用するとかなり複雑。GlacierアーカイブとPermanently Deleteを、Previous(旧)バージョンのオブジェクトにのみ設定することも可能。IAMで権限管理している場合には、Glacierへのアクセス権が無いと、触れなくなるとの噂も聞いたので、今度検証してみようかと。正確に理解しておかないと説明できない。
・Archive to the Glacier Storage: 1day →1日後にGlacierにアーカイブされ、S3上はStorage Class:Glacierとなり、復旧リクエストしない限り参照操作も不可となる ・Permanently Delete: 2day →2日後にGlacierにアーカイブされたオブジェクトが削除され、S3からも参照不可となる
ライフサイクルされるタイミングもCreateTimeから24h刻みぴったりとかではない模様。メンテナンスフリーなのは素晴らしいけど、細かいところが雑なのがUSサービスっぽい。
結果62%で不合格だったけど、今日ソリューションアーキテクトのプロフェッショナルも受験してきた。S3のMFA delete(APIからしか見えない模様)とかRequester Paysとかも意識したことが無かったし、各種認証方法も未だにわからないことが多く、S3は奥が深い。。。