목차
1. Terraform 운용
- Internet Gateway 생성
- Routing Table 생성
- Subnet 연결(IGW)
- Elastic IP 할당
- NAT Gateway 생성
- NAT Routing Table 생성
- Subnet 연결(NGW)
- Security Group 생성 및 오류해결
- EC2 생성
- Load Balancer 생성
- Target Group 생성
Terraform 운용
- 재사용 가능한 모듈(tf, ansible)을 만들기 위해 변수처리가 필요
- 아직은 변수처리 전단계가 더 중요!
Internet Gaetway 생성
- registry.terraform.io에서 aws_internet_gateway 확인
Routing Table 생성
- registry.terraform.io에서 aws_route_table 확인
- AWS에서 늘 하던대로 하는 것이다!
- 기본으로 주는 10.0.0.0/16 (Local)은 설정안해도 존재!
- Default Routing table을 사용할 수도 있으나 새롭게 생성하는 것이 좋다
Subnet 연결(IGW)
- registry.terraform.io에서 aws_route_table_association 확인
Elastic IP 할당
- registry.terraform.io에서 aws_eip 확인
- 인스턴스에 붙이는 것이 아니기 때문에 instance 구문은 생략
NAT Gateway 생성
- depends_on 확인
- 이것을 생성하기 위한 필수 조건
- IGW의 경우 미리 생성했으므로 생략이 가능하다
NAT Routing Table 생성
- registry.terraform.io에서 aws_route_table 확인
Subnet 연결(IGW)
Security Group 생성 및 오류해결
- registry.terraform.io에서 aws_security_group 확인
- ingress : 들어오는 연결
- egress : 나가는 연결
- -1 : 값 지정 x
- 0 : 모든 것을 의미
- 각 보안그룹 항목별로 전부 추가해 주면 오류해결이 가능하다
EC2 생성
- registry.terraform.io에서 aws_instance 확인
- 완전 자동화를 위해 AWS Machine Image Version2를 검색해 가져온다
Load Balancer 생성
- registry.terraform.io에서 aws_lb 확인
- internal을 false로 설정하여 외부에 공개하는 Load Balancer로 설정
Target Group 생성
- registry.terraform.io에서 aws_lb_target_group 확인
- enabled : 상태확인 활성화 여부(default : true)
- healthy_threshold : 비정상적인 대상을 정상으로 간주하기 전
필요한 연속상태확인 성공횟수(default : 3)
- interval : 대상에 대한 상태 확인 사이 시간(최소 5초 ~ 최대 300초)
- matcher : 대상의 정상적인 응답을 확인할 때 사용하는 응답 코드(200은 정상 페이지 처리)
- path : Health Check 요청 대상
- timeout : 응답이 없는 상대가 상태 확인에 실패했음을 의미하는 시간
- unhealthy_threshold : 대상을 비정상으로 간주하기 전 필요한 연속적인 상태 확인 실패 횟수
ALB Listener 생성
- FrontEnd 부분인 Listener 부분 설정
- registry.terraform.io에서 aws_lb_listener 확인