こんにちは。初投稿するアスクルの荒木(@news_it_enj)です。
先日第1回 AWSコスト削減 天下一武道会で登壇した「VPCエンドポイントを活用したコスト削減」について泣く泣く削った内容などを補足した記事になります。
ブログ慣れするために、前編・後編に分けてお届けさせてください。
はじめに
私は2023年5月にアスクルのジョインしました。
それまではいくつかのベンチャー企業等を渡り歩き、主にJava(Spring Boot)のアプリケーション開発やAWSのインフラ構築やCI/CD構築などをしていました。
ジョインしてから1ヶ月ほどたった頃にVPCエンドポイントを活用したコスト削減の話に遭遇できました。
その話ではログ出力構成がポイントになってくるのですが
実はその話の前に、旧ログ出力構成の話があるので、今回はそれを前編としました。
VPCエンドポイントを活用したコスト削減の話は後編にご期待ください。
旧ログ出力構成
アスクルでは、システムによっては監視・ログ保管のSaaSとしてNew Relicを使っています。
また、マイクロサービスアーキテクチャも採用しており、サービスごとにAWSアカウントも分かれ、さらに開発環境・本番環境に分かれています。
旧ログ出力構成としては次のように、ECSアプリケーションのログをCloudWatch Logsに保存し、サブスクリプションフィルタでKinesis Data Firehoseを経由してS3とNew Relicに出力していました。
ちなみにKinesis Data Firehoseは2024年2月9日からAmazon Data Firehoseに名称変更となりました。
Kinesisファミリーから旅立って寂しいものです。
お気づきかもしれないですが、CloudWatch Logsはログを収集する部分の料金が高いです。
そのためログを多く出力するアプリケーションでは油断するとログ収集料金が跳ね上がります。
アカウントによってはCloudWatchのログ収集料金が 月額 $10,000 以上になるときもあり、コストが高い状態になっていました。
(ちなみに2023/12/7に低頻度アクセス版が利用できるようになり、料金が半額になり、ちょっと嬉しいアップデートがありました)
この状況を打破すべく、CloudWatchにログを出力しない構成となったのが新ログ出力構成になります。
新ログ出力構成
新しい構成ではCloudWatch Logsは使用せず、コンテナのサイドカーとしてFireLens(Fluent Bit)を使うようになりました。
これによってCloudWatchの料金がガクッ! と減りました。
Cost Explorer イメージ
項目 | 月額 |
---|---|
旧ログ出力構成のCloudWatch料金 | $10,000 |
新ログ出力構成のCloudWatch料金 | $300 |
コスト削減額 | $9,700 |
コスト削減率は驚異の 97% になりました。
AWSアカウントは複数あり、同様の構成になっているアプリケーションがあるので、合算するとさらに凄まじいことになっていました。
(驚異的な削減率なのでこちらも天下一武道会で話していた方が良かったと痛感しました)
これでハッピーエンドです。
〜完〜
・・・とはならず、EC2 その他
の料金に異変が?
後編に続きます。