【问题标题】:Using Terraform to provision ECS, Elastic, SQS, Lambda使用 Terraform 配置 ECS、Elastic、SQS、Lambda
【发布时间】:2020-04-10 11:22:34
【问题描述】:

我对 Terraform 还很陌生,有几个问题 - - 我想使用 EC2 启动类型运行容器来配置 ECS 集群。我可以用 Terraform 做到这一点。 - 我还需要一个 SQS,Lambda 与 SQS 对话并将数据提供给 Elastic 集群,然后后者将与另一个微服务交互。

我的问题是,我应该如何提供这个? 是否可以使用 Terraform 在单个 ECS 集群中完成上述所有操作? 将 ECS 集群分开并让 SQS、Lambda、Elastic 集群成为独立组件会更好吗?最终的微服务是否作为单独的 EC2 容器(非 ECS)运行?

处理此基础架构的更好方法是什么?

【问题讨论】:

  • 你可以看看这篇文章,了解如何串联使用 Lambda/SQS/ECS aws.amazon.com/blogs/compute/…
  • 这是一个问题列表,而不是单个问题 - 要成为一个很好的问题,您需要专注于特定的技术问题或可回答的问题。

标签: elasticsearch amazon-ec2 terraform amazon-ecs


【解决方案1】:

这是一个非常开放的问题,因此我可以根据经验提供一些指导,但请根据您的最佳判断将我的经验应用于您的个人用例。

我发现一般来说,试图将不相关的东西放在同一个 Terraform 模块中(我想这就是你说“组件”时的意思)是在自找麻烦。 ECS 集群中有很多东西都属于一起 - IAM 角色和策略、自动缩放组、集群本身......例如参见 this module。但是 SQS、Lambda 和 Elastic 并不觉得它们是相关的。我会把它们分开放置。与您的非 ECS 微服务相同。

我要强调的另一件事是,Terraform 不是部署工具,不应该用于这样做。 Terraform 在定义不经常且独立更改的事物时大放异彩。后者非常重要,因为 Terraform 不是事务性的,如果出现问题也不会回滚任何内容。如果您在 AWS 世界中需要更多动态和更强大的完整性保证,我建议您使用 Terraform 定义 CloudFormation stack 并通过后者运行部署。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-07-31
    • 2021-01-21
    • 2021-04-20
    • 2016-09-12
    • 2020-09-24
    • 2019-06-02
    • 2017-10-26
    • 2017-10-01
    相关资源
    最近更新 更多