AWS・GCP等クラウドサーバー従量課金のぼんやりした料金リスクについて

Webディレクターやクライアントから、「従量課金型サーバーって想定外の料金が請求されることがあるんですよね?」と聞かれることが多々あるので、整理して伝えた時のメモです。 同じような境遇の方や、リスクを調べている方は参考にしてみてください。

定額にできないのか?

AWS,GCPといった大手のクラウドサービスに関してはできません。
料金アラーム*1や、バースト*2させない、割り当ての上限を設定する*3等の対応で近いことはできますが、いずれにせよ閾値を設定するので、閾値を超えた場合はインスタンスタイプの調整やリクエストの制御といった対処療法が必要です。

どこに料金が発生し得るのか?

基本的には、一般的なblogサイトを想定すると、ユーザーがページを見た際に発生します。 見られれば見られるほど「データの転送」が行われ、そこに対して従量課金が発生します。 同じサーバーを選択した二つのサイトがあるとします。

  1. 月に10回表示されたサイト
  2. 月に10万回表示されたサイト

この場合、「2. 月に10万回表示されたサイト」の料金が高くなるようになっています。

Dos攻撃のような、スパムとしての大量アクセスがあると跳ね上がるのか?

何も対処されていない場合は、たくさん表示されることになるので跳ね上がります。
ただしCloudFlare等CDNサービスを利用することで、Dos攻撃は回避できるので、対処をすれば予期しない料金の跳ね上がりはありません。

itaoyuta.hatenablog.com

また、選択したサーバースペックによって跳ね上がった場合の料金計算はある程度可能です。*4

仮に定額サーバーのサービスで同様のことが起きると?

さくらサーバーの場合、100MBpsの転送量制限があるので、単純にサイトが重くなります。
そして、攻撃をされているので何らかの対処が必要です。

どのくらいうわぶれるのか?

例として、AWS t3.largeで試算してみます。
基本料金は約9,000円/月。

仮に一般的なCDNを利用したブログサイトが4Mの転送量があり、画像などのリソースを省いたCDN以外は約0.1Mほどに抑えられると想定する場合は以下のようになります。

100万PV/Mだとしたら10万M転送量 -> 100G転送量

10,239円/月

200万PV/Mだとしたら20万M転送量 -> 200G転送量

11,489円/月

くらいの増え方です。

その他

従量課金にばかり目がいきがちですが、クラウドサービスの予想外な料金請求の主な原因は、アクセスキーの漏洩事故です。

参考

結論

心配するほど料金の跳ね上がるリスクは、以下の方法を行うことで防げます

  1. CDNを利用する 
  2. 料金・パフォーマンスアラートを設定して、適切に監視を行う

1については、Dos攻撃とそもそものサーバーの転送量を抑えて跳ね上がった時のリスクを最小限にします。
2については、デイリーで現状の請求額をSlackへ飛ばすように設定する等、運用の仕組みで防げる努力です。

*1:AWSのサービス

*2:AWSのサービス

*3:GCPのサービス

*4:選択したサーバースペックのパフォーマンスによって、捌けるリクエスト数が理論値で決まってくるので