我使用Terraform创建AWS ECS资源。我计划将两个应用程序部署为共享相同ECS群集的Docker容器,以便我可以在EC2实例上实现多租户。
我有三个单独的Git repos,里面有相应的Terraform文件:
在两个应用程序中共享的基础ECS资源 - 即ECS群集,ec2实例,安全组,ASG,启动配置等。
首次申请。除了源代码,我还有Terraform配置,它们创建了依赖于repo 1创建的资源的ECS服务,任务,ELB,ELB的安全组等。
第二次申请。类似的repo 2创建了相同的AWS资源集,并利用repo 1创建的AWS资源。
Repos 2和3取决于repo 1.具体来说,repo 1创建ECS Cluster。在repos 2和3中创建ECS服务时引用了这一点。现在我已经对ARN进行了硬编码,但我想删除硬编码值。这可能吗?我是否需要单独或不同地构建我的项目和Terraform?
此外,实际上存在循环依赖,因为理想情况下repo 1也会知道在repos 2和3中创建的资源。具体来说,我希望ec2安全组(SG)为ELB打开端口SG。如果这也是可能的,那就太棒了。