最近は余り聞かないのですが、クラウド破産という言葉がありましたが、
そこじゃないけど、高級なランチ代分余計にかかった話。
個人開発のサービスでS3は画像サーバーとして使っていたのですが、最近一寸コストが増えてきてて、「大量の画像があるし基本的に消せないけどめったにアクセスしない画像と頻繁にアクセスする画像」のが混在しててどうしようかと思ってたときに見つけたのがintelligent-tiering(以下IT)なるサービス。
高頻度と低頻度という2つのアクセス階層が組み込まれています。両方の階層とも、Standard(標準)ストレージクラスと同等の低レイテンシーを提供します。モニタリングと自動化の料金を抑えつつ、S3 Intelligent-Tiering はアクセスパターンをモニタし、連続30日間アクセスされていないデータを低頻度のアクセス階層に移動します。もしそのデータがのちにアクセスされた場合は、高頻度アクセス階層に自動的に戻されます。すなわち、アクセスパターンが変化するような状況でも、性能の影響なく、運用のオーバーヘッドもなく、データ取り出しのための料金もなく、利用料金を節約することができるのです。」
と一見おあつらえ向きに見えるサービスだったためにコンソールから標準からITに設定してみましたがそれが落とし穴でした。
落とし穴1 えっ、移行にコストかかるの?
一番最初の落とし穴はこれでした。IT移行させるには1000オブジェクト/0.037ドル分PUTがかかるのです。これでホテルのバイキング代一人前が飛びます。
落とし穴2 えっ、監視コストが結構重い
ITに設定したオブジェクト1,000あたり/0.0025ドル監視コストがかかりますが、私の使っている環境では結構馬鹿にならないコストがかかっています。もちろん、その分安くなれば投資と見なせるのですが・・・。
落とし穴3 結局割高。
監視コストが重なって結局2~3割ほど割高になりました。しばらく様子を見ようかとも思いましたが、損切り万両ということで元通りの設定に戻すことに。結局移行コスト×2でホテルのバイキング代二回分が飛ぶ(飛ぶ見通し)です。払えなくはない額ですがかなり痛い。
コスト計算
Intelligent-Tiering はどんなサイズのオブジェクトにも使用できますが、
128 KB 未満のオブジェクトは高頻度アクセス階層に保持されます
とあるので、まず128 KB以下のデータはとられ損ですが、東京リージョンは50TBまでは0.025ドル/GB、低頻度アクセスは0.019ドル/GBなので、差し引き0.006ドル/GB。監視コストは1000オブジェクトあたり0.0025ドルなので3000オブジェクトを越えると0.0075ドル。
すなわち3000オブジェクトを越えると0.019+0.0075=0.0265ドル/GBとなって割高となりますが、1,048,576Kb/2999=1オブジェクト平均349.64Kb未満でなければ割高のサービスです。
まとめ
やはり、こうしたサービスは適材適所というしかありませんが、オブジェクトの数が少なくて一つ当たりの容量が多いと予算の節約にはなると思うのですが、最適化にはかなり気を遣っていた上に、サムネイルも格納しているのでオブジェクトの数が多くて一つ当たりの容量が少ないので、監視コストが多めにかかってしまって結局コスト効果もなくただただ移行コスト2回分余計にかかる結果となりました。すぐに飛びつかずに事前の検証は本当に重要なのだと痛感しました。
正直払えない額でもないし、ゲームに使う額を思えば・・・ってくらいなんで大人しく払いますが、本当に損をした気分です。