【问题标题】:dynamic ec2 resourcing in declarative cloud formation/terraform声明性云形成/terraform 中的动态 ec2 资源
【发布时间】:2021-07-14 16:27:16
【问题描述】:

我们正在将我们的基础架构迁移到云形成,因为以一种很好的方式描述基础架构要容易得多。这对于安全组、路由、VPC、中转网关等非常有效。

但是,我们有两个问题正在努力解决,我认为不符合 terrafrom 和云形成之类的声明式基础架构即代码范式。

(1) 我们有一个业务需求,即我们在一天中的特定时间运行预定批次。这些是非常计算密集型的。为了节省成本,我们在当时启动的 EC2 上运行这些,然后在批处理完成时将其拆除。但是,这似乎需要对 terraform/CF 文件进行临时更改,然后再进行更改。有没有更本地的方式来做到这一点?

(2) 我们在负载均衡器 (ALB) 上动态存储并允许客户端对其防火墙规则进行编辑。此信息不能存储在 terraform/CF 文件中,因为它可以由客户端按需更改。

有没有办法在 CF/Terraform 中正确地做这些事情?

【问题讨论】:

    标签: amazon-ec2 terraform cloud amazon-cloudformation


    【解决方案1】:

    (1) 如果您必须使用 EC2,您可以创建一个 Lambda 来启动您的 EC2 实例。然后,创建在您指定的日期/时间触发 Lambda 的 CloudWatch 事件。更多详情可以查看https://aws.amazon.com/premiumsupport/knowledge-center/start-stop-lambda-cloudwatch/。工作完成后,让您的 EC2 使用 awssdk 或 awscli 自行关闭。

    或者,您可以使用 AWS Lambda 来运行您的批处理作业。只有在 Lambda 运行时您才需要付费。同样,创建一个调度 Lambda 的 CloudWatch Event 规则。

    (2) 您可以将防火墙规则存储在自己的数据库中,并使用 awssdk 修改实际的 ALB SG 规则。我认为将这些东西存储在 Terraform/CF 中不是一个好主意。恕我直言,Terraform/CF 非常适合声明基础设施,但对于动态变化的资源来说不是一个好的解决方案,尤其是像您的客户这样的第三方。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-05-31
    • 2019-03-11
    • 2020-06-30
    • 1970-01-01
    • 1970-01-01
    • 2021-10-28
    • 2020-08-27
    • 1970-01-01
    相关资源
    最近更新 更多