Terraform 配置ECS

最近在学习ECS和Terraform,于是用Terraform配置了一个基本的ECS Cluster,Cluster里面有2个EC2,上面跑了4个Nginx的容器。

整个配置的流程用resource 完成,并未使用Module,思路和用AWS Console手动创建的过程一一匹配。

https://github.com/beanxyz/ecs

执行terraform apply的效果

Terraform 配置ECS

基本流程:

  1. 配置基本的VPC网络,包括VPC,公网,私网,路由表,NGW, IGW
  2. 配置一个launch-configuraion 和 Autoscaling Group,放置我们的EC2 host
  3. 配置一个ALB,但是不要配置Target Group
  4. 配置一个Cluster
  5. 配置一个Task definition,这里面就是容器镜像相关的配置
  6. 配置一个service,调用上面的Cluster和Task, 关联我们的ALB和 容器,注意在配置service的时候,我们还可以配置ECS 容器级别的Auto scaling,不要和EC2的 Auto Scaling搞混了

效果:

两个容器跑在两个不同的EC2 host

Terraform 配置ECS

ALB 指向 Target Group , 可以看见他有不同的端口,这里用的是Docker的Bridge网络模式,ALB端口转发 从 80端口指向EC2的 32768端口,然后 EC2 再次端口转发到容器的80端口
Terraform 配置ECS

访问 ALB 的DNS 看看

Terraform 配置ECS

成功

上一篇:Terraform模块Module管理,聚合资源的抽取与复用


下一篇:Terraform,基本语法