如何使用Infracost进行基础设施的成本估算

354 阅读4分钟

阅读时间: 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。基本上,这是目前规划基础设施的最佳做法。最好的部分是,它提供了基础设施的事前和事后成本估算。因此,对于建立基础设施,这是一个最好的做法。