elasticsearch - 使用 Terraform 配置 ECS、Elastic、SQS、Lambda

标签 elasticsearch amazon-ec2 terraform amazon-ecs

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

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

接近这个基础设施的更好方法是什么?

最佳答案

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

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

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

关于elasticsearch - 使用 Terraform 配置 ECS、Elastic、SQS、Lambda,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59383009/

相关文章:

elasticsearch - 结合 Neo4j 和 Elasticsearch

java - 无法使用 Java 高级 Rest 客户端创建索引

wordpress - 通过 filezilla 和 php(wordpress) 上传文件的正确/wp-content 文件夹权限是什么?

sdk - dynamodb 教程

ssl - 如何为 AWS 负载均衡器生成证书链?

terraform - 如何将 terraform 与 hashicorpVault 一起用于 openstack?

amazon-web-services - Terraform:cat 命令问题

elasticsearch - 如何在ElasticSearch char_filter中使用多个值映射?

elasticsearch - elasticsearch max聚合返回多个结果

terraform - AWS Codepipeline with Terraform - 如何动态创建阶段