Qiita社では現在インフラコストの削減するための取り組みを段階的に行っております。
この記事では、この数年でやった施策のうちいくつかを公開します。
今後インフラコストを削減したい方の参考になれば幸いです。
データ基盤の変更
Qiita社では2019年よりTreasure Dataを中心としたデータ基盤を構築していました。
しかし、Treasure Dataの料金形態が利用状況とあっていないことを理由として、データ基盤をGoogle Cloud中心の構成に変更しました。
大幅な費用の削減に成功しましたが、この記事で紹介するには規模が大きすぎるため別記事で紹介する予定です。
BigQueryのストレージ料金タイプの変更
2023年に、BigQueryの新料金が発表されましたが、ストレージ料金は新料金(物理ストレージ)と旧料金(論理ストレージ)で選択できるようになっています。
大抵の場合は、新料金形態の方が安いため、以下のページにある確認用のクエリでどれくらい安くなるか確認して、問題なければサッと変えてしまいましょう。
Qiita社でも全データセットの料金形態を変更して、ストレージ費用を大幅に削減することができました。
基本的どのデータセットに適用しても費用が安くなりますが、気を付けるべきデータセットも存在します。
Embulkなどを使って定期的にデータを全更新しているようなテーブルを持つデータセットでは、タイムトラベルなどの課金仕様の都合上旧料金の方が高い可能性もあります。
タイムトラベル期間を短くするかそのデータセットだけ旧料金にするなどの工夫をしましょう。
CloudWatchに保存していたRDSのAuditログのS3移行
RDSのAuditログをこれまでCloudWatch logに保存していましたが、非常に大きな料金がかかっていました。
これをAWS Lambdaを利用することで、直接S3へアップロードするようにし大幅に料金を削減することができました。
詳細は担当してくれたメンバーから記事が上がるかもしれないので、そちらへ任せることにします。
RDSインスタンスタイプ・台数の見直し
RIの購入タイミングで、RDSやOpensearchのサイズを小さくしたりstaging環境の過度な冗長化を排除しました。これにより、無駄な料金がかかっていた場所を適正化することができました。
また、インスタンスの世代が古かったもの(r4やt2等)は極力r6gやt4g等にすることで、Gravtion化によるインスタンス費用削減も行っています。
特にRDSに関してはクエリの負荷を改善を行うことで、負荷を下げインスタンスサイズの縮小を行うと同時に、レスポンスタイムの改善を行うことができました。
AWS Configの記録頻度抑制
EC2からECSに移行したタイミングで、AWS Confogの料金が数倍に跳ね上がりました。
記録を止めるのは最終手段にしたかったため、記録頻度をにContinuous
(連続)かからDaily
(日時)にすることで費用の抑制を行っています。
Fargate移行
Qiita/Qiita Teamは2024年にEC2からECS on EC2へ移行を行いました。
そこから更に、ECS on Fargateへ移行を現在進めており、費用の削減を行っています。
インスタンス費用自体はほぼかわらないか若干増加の見込みですが、それ以上に削減されると見込んでいるのがDatadogの料金です。
以下が製品サイトに記載されたDatadogの料金です。
製品 | 請求単位 | 料金(オンデマンドの場合) |
---|---|---|
インフラストラクチャー Pro | インフラホストあたり、1か月 | 22.50$ |
APM | APMホスト毎、1か月 | 45.00$ |
Fargate (Infra) | Fargate タスクあたり、1か月 | 1.75$ |
Fargate (APM) | Fargate タスクあたり、1か月 | 3.63$ |
どの程度ECS taskを一つのインスタンスに詰め込んでいたか等で変動率は変わりますが、インスタンス料金が高いからとFargate化を試算せず見送っていてる方は、監視サービスも加味して計算してみると持つ印象が変わるかもしれません。
これからやっていきたいこと
ここまで複数の施策を紹介してきましたが、まだ対応完了できていないこともあります。
そのうちのいくつかを紹介します。
- ECS taskをArmインスタンスで動かすようにする
- 同時に移行する予定のCIで利用しているsetup-rubyのArm対応を待っている状態です
- 料金の監視体制の構築
- 現在はAWSやBigQueryの料金を毎日コンソールから確認していますが、Slackへ流せるようにして、料金が大きく変動したときにコンソールを見なくても気が付けるようにしたい
- Amazon Auroraのストレージ構成をAurora I/O-Optimizedに変更
まとめ
今回はQiita社で行ったインフラコストの削減施策を紹介しました。
他にも大小様々な取り組みを行っていますが、段々安くなっていく領収書を眺めるのは楽しいです。
是非皆様の参考になれば幸いです。