我想在使用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。

スクリーンショット 2023-08-24 131401.png

首先,需要在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/.../      

看起来成功创建了无事构成图。
那么,关于令人担心的“费用”显示呢…

スクリーンショット 2023-09-09 163906.png

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

project_pluralith-local-project%2Frun_2397461%2Frun_2397461_1692858396573.png
project_pluralith-local-project%2Frun_2397461%2Frun_2397461_1692858417887.png
スクリーンショット 2023-09-15 190144.jpg

感受到的

我可以显示无事项费用,并且在本地运行时,显示模式(变更、费用、视图)都可以一并显示出来。
虽然本次只涉及到EC2费用(其他服务是根据请求计费),但我还想创建包含多个费用的配置,并尝试显示其配置图。

请提供更多上下文,以便为您提供合适的翻译。

2022年1月号的软件设计杂志

 

bannerAds