19
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

画像サイズがでかくなってることに気づかずAWSのコストで有り金溶かした顔になった話

Last updated at Posted at 2022-03-31

期末なので、今期有り金溶かした話をば

アウトバウントコストがやばい

image.png

円安の影響もやばいですが、今回はその話とは別です。
上記の画像を見てもらうと分かる通り、11月-12月のコストが跳ねました。

アウトバウンドのデータ通信量です。
コストが1.X倍になっていました。

やばくなった根本原因

  • SVGのファイルサイズが原因です
    • とある画像(png)をsvg形式のものに変更した
    • そのsvgが800KB程度あった
    • 以前までは10KB程度だった
    • 80倍の容量の差だった

ちょっと計算してみましょう。
※実際にかかったコストではなく概算です。
※0.114USD/GBで計算します
※簡単にするためにGiB計算はしていません

800kBの場合
800,000(B) * 1,000,000,000(リクエスト/月) = 800(TB/月)
800,000(GB/月) * 0.114(USD/GB) = 91,200(USD/月)

10kBの場合
10,000(B) * 1,000,000,000(リクエスト/月) = 10(TB/月)
10,000(GB/月) * 0.114(USD/GB) = 1,140(USD/月)

差額:91,200(USD/月) - 1,140(USD/月) = 90,060(USD/月)

いかがでしたか?有り金が溶けますね。

どう解決したのか

  • もともとsvgに向いていないものをsvgにしてしまっていたので、pngに戻しました。

どういう状況だったの?(Q&A)

  • なぜ気づくのに遅れたの?
    • コストの予実管理を1か月毎に行っており、確認するタイミングで気づきました
  • なんで1か月の間確認してなかったの?
    • 毎日どのくらいコストがかかってるかslackに出しているけど、確認はほぼ形骸化していました
  • AWSのコスト異常検知設定していなかったの?
    • 検証用に私のところにだけメールが来るよう設定していました
    • しかし閾値が高くて引っかかりませんでした
  • なんで異常検知をちゃんと調整していなかったの?
    • 他の業務優先してて忘れてました
  • 画像ファイル大きいのに気づく人いなかったの?
    • いなかったですねぇ・・・
  • チェック機構みたいなの無かったの?
    • 少なくともこれが起きるまでは無くても問題なく、特に入れようとする人もいなかったので入ってませんでした
  • なんでSVGファイルにしたの?
    • SVGファイルのメリットを享受したかったからです
  • SVGファイルがなんでそんな大きいの?
    • 画像のグラデーションが影響していました
  • CloudFront通せばもっと安く済んだんじゃないの?
    • とある仕様の問題でCloudFrontを通せない状態にあります

どうすればよかったか

いろいろ対策案はあると思いますが

  • AWSの異常検知を導入する
  • CDパイプラインにチェック機構を設ける
  • slack通知が文字列だけで視覚情報としての差分が出てなかったため、日々の動向をグラフにして出力する
  • 大きいファイルを返すとコストに影響するということをナレッジとして共有する

まとめ

  • 定期的に有り金溶かした顔してる気がする・・・
19
8
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
19
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?