我想在使用Pluralith创建的EC2环境的配置图中显示成本
首先
我在工作中使用Terragrunt来管理AWS配置的一部分,但随着配置的复杂化,阅读代码并理解配置变得困难,难以直观地判断是否达到了预期的配置,这是一个问题。
为了解决这个问题,本文是Terraform学习系列的第四篇,同时也尝试使用Plulalith。
我创建了一个Terraform的.tf文件,可以使用它来创建EC2、VPC、子网、互联网网关等网络环境。我还使用了Pluralith来根据创建的环境生成配置图,并且现在它可以显示成本。所以我想将这个作为备忘录保存下来。
再次,我按照之前同样的步骤参考了《TerraformではじめるAWS構成管理》这本书中的操作进行了实施。对于Terraform初学者来说,我推荐这本书。
- ソフトウェアデザイン 2022年1月号
我所做的一切
第一弾は準備編ということでインストールを実施しました。
https://qiita.com/yuuun/items/33f2217072818516ee56
第二弾は実際にTerraformでEC2のみの作成と構成図を作成するというところまで行いました。
https://qiita.com/yuuun/items/b4f57aa17833dcd7e990
第三弾は基本的なEC2環境をTerraformで作成し、Pluralithで構成図を作成し、「Changes」のグレースケールをカラーで表示する方法を発見しました。
https://qiita.com/yuuun/items/ef9366112ce438b9d822
我想做的事
我想显示Pluralith创建的构图中的“Costs”部分!
环境
操作系统:Windows11专业版
Terraform版本:v1.5.2
pluralith CLI版本:0.2.2
pluralith Graph模块版本:0.2.1
AWS CLI版本:2.4.23
这次我们创建的环境的代码
实际上,我写的代码与上次的代码相同。
以下是链接。
我会省略关于我写的代码的详细信息。
另外,我在存储库中创建了一个名为”pluralith_graph”的目录,其中还放置了Pluralith创建的组成图。
为了在使用Plulalith创建的配置图中显示”Costs”,需要考虑以下要点。
-
- ポイント1.infracostの導入
- ポイント2.Terraformへの設定
引入infracost的步骤
请按照以下步骤进行操作:从infracost的官方文档下载zip文件,解压缩后将其与pluralith和terraform一样放置在Windows/System32目录下,并设置环境变量。
顺便说一下,只安装了infracost.exe会出现以下错误(执行pluralith graph操作是成功的)
PS C:\Users\ユーザー名\workspace\learn_terraform\terraform-chapter2> pluralith graph
⠿ Initiating Graph ⇢ Posting Diagram To Pluralith Dashboard
→ Authentication
✔ API key is valid, you are authenticated!
→ Plan
✔ Local Execution Plan Generated
✔ Local Plan Cache Created
✔ Secrets Stripped
⠏ Calculating Infrastructure CostsError: No INFRACOST_API_KEY environment variable is set.
We run a free Cloud Pricing API, to get an API key run infracost auth login
running infracost breakdown failed -> CalculateCost: exit status 1
✘ Couldn't Calculate Costs
✔ Costs Calculated
→ Graph
✔ Local Diagram Generated
✔ Diagram Posted To Pluralith Dashboard
→ Diagram Pushed To: https://app.pluralith.com/.../pluralith-local-project/runs/.../
取得免费的API密钥的步骤2。

首先,需要在GitHub上配置infracost作为一个应用程序,以便在GitHub上可以使用infracost。
此外,为了实际使用infracost,需要在Git上发送拉取请求并尝试运行,因此需要一个试验性的代码库(正好我已经在GitHub上上传了配置图。。。)。
因此,在我准备的试验性代码库中发送拉取请求后,infracost会自动开始运行,并根据拉取请求的差异生成成本差异。
一旦确认了这些步骤,就准备好获取免费的API密钥了。
之后可以通过执行以下命令来获取API密钥。
infracost configure get api_key
对于Terraform的设置
将获得的API密钥注册到Terraform中
接下来是向Terraform注册API密钥。
# cdでterraformリポジトリのディレクトリに移動
cd my-terraform-project
# Terraform variables can be set using --terraform-var-file or --terraform-var
infracost breakdown --path .
問題點在哪裡
–对于”path”中的”path”,我不知道它是什么,所以陷入了困境。
简而言之,就是通过infracost configure get api_key命令获取的API密钥。
当我正确指定了API密钥并执行时,成功地运行了。
PS C:\Users\ユーザー名\workspace\learn_terraform\terraform-chapter2> infracost breakdown --path=(APIキー)
终于可以使用infracost了,所以我试着运行了pluralith graph。
PS C:\Users\ユーザー名\workspace\learn_terraform\terraform-chapter2> pluralith graph
⠿ Initiating Graph ⇢ Posting Diagram To Pluralith Dashboard
→ Authentication
✔ API key is valid, you are authenticated!
→ Plan
✔ Local Execution Plan Generated
✔ Local Plan Cache Created
✔ Secrets Stripped
✔ Costs Calculated
→ Graph
✔ Local Diagram Generated
✔ Diagram Posted To Pluralith Dashboard
→ Diagram Pushed To: https://app.pluralith.com/.../pluralith-local-project/runs/.../
看起来成功创建了无事构成图。
那么,关于令人担心的“费用”显示呢…

我能够表达出来!下面是每月成本和按时间成本的图像输出结果!



感受到的
我可以显示无事项费用,并且在本地运行时,显示模式(变更、费用、视图)都可以一并显示出来。
虽然本次只涉及到EC2费用(其他服务是根据请求计费),但我还想创建包含多个费用的配置,并尝试显示其配置图。
请提供更多上下文,以便为您提供合适的翻译。
2022年1月号的软件设计杂志