阅读时间: 5 分钟
云计算已经使基础设施的增长和扩展变得非常容易。基础设施的设置使微服务的工作变得非常容易,但成本呢?
弹性和灵活性使生活更容易。但它的代价是我们不能忽视的。云基础设施有一个成本,在使用结束时显示出来。
大多数情况下,基础设施作为代码(IaC)被雇用来保护和促进这个基础的发展。就像另一种语言一样,它需要遵守相同的真实做法,并通过与不同的贡献者跳过代码评估步骤。如前所述,云计算基础设施是有成本的,而且在这个阶段,发票并不总是不断地强调。贡献者需要与外部资源商议,自己进行估算。这并不总是自动的,而且随着时间的推移可能会很笨重。
基于成本驱动的基础设施: - INFRACOST
什么是infracost?
Infracost有助于估算基于云的部署的成本。它支持terraform作为IAC项目。
Infracost帮助确定开发、建设、构建基础设施的成本,通过terraform。
"它可以让DevOps、SRE和工程师看到成本明细,并在做出改变之前了解成本,无论是在终端还是拉动请求。"
infracost支持哪些工具?
- Terraform
使用terracost安装infracost。
下面给出了安装infracost的步骤。
1- 首先使用下面的命令安装软件包。
curl -fsSL https://raw.githubusercontent.com/infracost/infracost/master/scripts/install.sh | sh
2- 其次,检查版本:
infracost --version
注册以生成API密钥。
1- 要生成API密钥,请按照以下步骤进行。
运行下面的命令来验证这个过程。
infracost register

注册生成API密钥的Infracost
终端显示api密钥的路径,它被储存在所示的路径中。
~/.config/infracost/credentials.yml
使用infracost来估计基础设施的成本。
先决条件:-
- 当前基础设施设置的terraform项目。
- 安装了Terraform。
以下是之前的几个必要的步骤
1 - 首先运行下面的命令。
terraform init
这将初始化terraform repo,并进一步运行计划,生成tfplan.binary。
terraform plan -out tfplan.binary
2 - 接下来我们要生成一个json文件,在infracost命令中传递,以便进行成本估算。
terraform show -json tfplan.binary > plan.json
上述命令将生成一个json文件,infracost将进一步使用该文件来检查设置的成本。它将产生一个完整的估算流程。
让我们深入了解一下。在继续前进之前,请完成上述步骤,并遵循接下来的步骤。
使用infracost检查成本。
现在,下面的步骤将指导如何生成成本。
估计成本的全部细目
为了估计成本的全部细目,请运行以下命令。
infracost breakdown --path plan.json
注意:plain.json是在初始化为terraform目录的同一目录下生成的。

成本的全部细目
上面的图片显示了infracost是如何显示成本明细的。人们可以通过修改代码和重新运行来玩弄它。这有助于减少成本和处理复杂的问题。
使用diff估计成本比较
diff命令是比较成本的最佳命令。diff的使用是完美的,可以添加到代码审查的补充中,以证明和论证一个变化的成本。每当一个人按照要求修改代码时,可以根据diff命令对前者和后者进行比较。
下面的命令有助于实现这一目的。
infracost diff --path .
输出显示如下:-

使用diff命令进行成本比较。
使用使用情况文件进行成本估算。
用法文件
使用文件是一个有助于细化成本的yml文件。它建立了需要精炼的资源。它是包含所有资源声明的文件,用于建立信息库。下面的代码块显示了该文件。
version: 0.1
resource_usage:
aws_autoscaling_group.webserver:
instances: 15 # Number of instances in the autoscaling group.
operating_system: linux # Override the operating system of the instance,
can be: linux, windows, suse, rhel.
reserved_instance_type: standard # Offering class for Reserved Instances.
monthly_cpu_credit_hrs: 350 # Number of hours in the month where the instance is expected to burst.
vcpu_count: 2 # Number of the vCPUs for the instance type.
aws_lb.this:
new_connections: 20000 # Number of newly established connections per second on average.
active_connections: 30000 # Number of active connections per minute on average.
因此,上述文件是使用文件。它的传递方式如下。
要传递上述文件,只需遵循以下命令。
infracost breakdown --path . --usage-file=usageinfra.yml
下面是输出结果。

用使用情况文件进行成本估算
生成所有估算的报告。
infracost最好的部分是,它最后帮助生成报告。报告是html形式的。让我们现在就生成报告。
使用下面的命令来生成报告。
infracost breakdown --path . --format html > report.html
下面的图片显示了该文件。

总结
在上面的博客中,我讨论了如何使用Infracost。基本上,这是目前规划基础设施的最佳做法。最好的部分是,它提供了基础设施的事前和事后成本估算。因此,对于建立基础设施,这是一个最好的做法。