2016-11-04 2 views
1

초기에 인스턴스를 1 개만 사용하여 ASG를 생성하려고합니다.ELB와 자동 스케일링 그룹을 결합 할 때 Terraform의 사이클 오류

이 ASG의 모든 인스턴스가 ELB 뒤에 있도록하고 싶습니다.

그래서 resource "aws_autoscaling_group" "ProductionWeb-ScalingGroup"load_balancers = ["${aws_elb.Production-Web-ELB.name}"]을 설정합니다.

지금, 나는이 resource "aws_elb" "Production-Web-ELB"에 대한 코드를 작성, 나는 instances = ["${aws_autoscaling_group.ProductionWeb-ScalingGroup.*.id}"]를 설정할 때, 나는 오류 ...

나는이 오류가 하나의 자원이 원에 다른 사람을 참조하는 것을 의미 이해
Error configuring: 1 error(s) occurred: 

* Cycle: aws_autoscaling_group.ProductionWeb-ScalingGroup, aws_elb.Production-Web-ELB 

. 확인하기 위해 나는 load_balancers = ["${aws_elb.Production-Web-ELB.name}"] 부분과 terraform plan 부분을 오류없이 주석 처리합니다.

내 질문은 : Terraform을 사용하여 첨부 된 ELB가있는 ASG를 만들 수없고 그 내부에 스폰되는 모든 EC2를 자동으로 ELB 뒤에 게시 할 수 있습니까?

내가 놓친 문서가 있습니까?

해결 방법이 있습니까?

답변

2

terraform의 ELB 정의에서 ELB와 연결할 인스턴스를 명시 적으로 정의 할 필요가 없습니다. load_balancers 인수를 사용하면 ELB를 AutoScaling 그룹에 연결하고 AutoScaling 그룹이 해당 인스턴스를 시작할 때 AutoScaling이 해당 ELB에 생성 된 모든 인스턴스를 연결한다는 것을 알게됩니다.

Terraform은이 경우 인스턴스의 상태를 직접 관리하지 않습니다. AWS 자동 크기 조정은 실행 구성을 정의하고이를 자동 크기 조정 그룹에 연결하는 것 이상의 상태를 테라 폼에서 정의 할 필요가 없습니다.

단일 인스턴스로 AutoScaling 그룹을 시작하도록 terraform에 알리려면 min_size 인수를 1로 설정하고 크기 조정 정책에서 원하는 용량을 처리하도록하십시오. 대안으로 desired_capacity을 1로 설정할 수 있지만 계획을 적용 할 때마다 desired_capacity가 1로 설정되기 때문에 terraform에서 해당 상태를 관리하는 데주의하십시오.

+1

고맙습니다. 안토니. 그건 의미가 있습니다. '테라 폼 계획'은 오류를 발생시키지 않습니다. 다음 날에 '신청'으로 확인하겠습니다. –