💵

Infracost で Terraform コードからコストを試算してみる

2023/12/09に公開

Infracost

Infracost は IaC コードからクラウドサービスの利用料を試算するツール/サービスです。執筆時点では Terraform のみの対応ですが、ロードマップでは Pulumi, CDK, Bicep に対応予定のようです。

https://www.infracost.io/
https://github.com/infracost/infracost

導入

VSCode および Infracost Cloud での利用法を記載します。

VSCode の拡張機能から Infracost を検索してインストールします。その後画面の指示に従いサインアップします。私は GitHub アカウントを利用しました。後述の Infracost Cloud でのコスト試算を行う場合は、連携する VCS を選択するまで実施してください。

セットアップ画面



VSCode でコスト試算

Terraform コードを含むフォルダを VSCode で開くと自動でコスト試算を表示してくれます。


Infracost Cloud でコスト試算

Infracost Cloud ではより詳しく確認できます。サインアップしてから 2 週間無料で利用できます。期限を過ぎると CLI を除く機能は有料のサブスクリプションが必要になるようです。

https://www.infracost.io/pricing/

ダッシュボードでは 5 項目について、コスト最適化設定の達成率を表示してくれます。

以下リポジトリを調査してみます。もちろんコスト試算はしてくれるのですが、なにやら FinOps policies と Tagging policies に違反するリソースがあることが分かりました。

https://github.com/teradatky/aws-network-firewall-sample




Infracost が用意するポリシーが気になるので、調べてみましょう。画面上部の Governance から FinOps policies をクリックします。指摘済みの CloudWatch Logs のログ保持期間以外にも様々なポリシーがあることが分かります。個別にポリシーの ON/OFF もできるようです。





Tagging policies も確認します。デフォルト設定は以下の通りです。タグ付けの強制はクラウドサービス側で行うのが定石かと思いますが、Infracost 側から行うこともできそうです。


まとめ

Infracost を利用すると、IaC 化さえしていればコスト試算が簡単に行えます。一方で VSCode の拡張機能はワークスペース利用時に正常動作しなかったり、一部計算の表示がおかしかったりすることが分かりました。改善に期待です。

Infracost Cloud はコスト試算に加え、コスト最適化のベストプラクティスを指摘してくれるのため、一度目を通す価値はあると思います。ただしあくまでコスト影響のあるパラメータに対する指摘であり、ワークロードに対する最適なアーキテクチャを教えてくれるわけではありません。これは業務の中で身につけていきたいです。

GitHubで編集を提案

Discussion