0
0

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

Posted at

Infracost

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

導入

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

CLI 利用や CI/CD ワークフローへの導入も可能です。公式サイトを確認ください。

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

セットアップ画面

vscode_install.png
login.png
integrations.png

VSCode でコスト試算

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

vscode1.png
vscode2.png

VSCode のワークスペース機能で複数のフォルダを開いていると、拡張機能が正しく動作しません。これはかなり残念ポイントです。

https://github.com/infracost/vscode-infracost/issues/1

bug1.png
bug2.png

Infracost Cloud でコスト試算

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

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

dashboard.png

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

repo_overview.png
finops_policy.png
tagging_policy.png
project.png

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

finops_policies1.png
finops_policies2.png
finops_policies3.png
finops_policies4.png
finops_policies5.png

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

tagging_policies1.png
tagging_policies2.png

まとめ

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

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

0
0
0

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
0
0