반응형
1. Terraform Docs 예시
https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/nat_gateway.html
예시:
인수:
2. Terraform 코드 작성
# 07_natgw.tf
resource "aws_nat_gateway" "pmh_natgw" {
allocation_id = aws_eip.pmh_eip.id
subnet_id = aws_subnet.pmh_puba.id
tags = {
Name = "pmh-natgw"
}
depends_on = [aws_internet_gateway.pmh_ig]
}
resource "aws_nat_gateway" "pmh_natgw"allocation_id
pmh_natgw 라는 이름의 aws_nat_gateway 리소스를 정의
allocation_id
NAT 게이트웨이에 대한 탄력적 IP 주소 할당
subnet_id
NAT 게이트웨이에 연결할 서브넷 ID를 지정
(앞서 만들었던 서브넷의 id)
tags = { Name = "pmh-natgw" }
리소스에 태그 지정
(NAT 게이트웨이에 식별 가능한 이름 지정)
depends_on
NAT 게이트웨이가 만들어지기 전에 선행되어야 될 작업
(인터넷 게이트웨이 먼저 생성)
3. Terraform 분석 및 적용
terraform 파일이 있는 위치에서 아래 명령어 실행
# 변경 사항 검토 및 확인
terraform plan
# (대화형 승인 없이)변경 사용항 적용
terraform apply -auto-approve
4. 결과
+ 변수처리하는 방법
tag 변수 파일 생성
# var.tf
variable "tag" {
type = string
default = "pmh"
}
서브넷 ID 중 puba에 대한 ID는 0번 인덱스에 해당
# 07_natgw.tf
resource "aws_eip" "pmh_eip" {
vpc = true
}
resource "aws_nat_gateway" "pmh_natgw" {
allocation_id = aws_eip.pmh_eip.id
subnet_id = aws_subnet.pmh_pub[0].id
tags = {
Name = "${var.tag}-natgw"
}
depends_on = [aws_internet_gateway.pmh_ig]
}
반응형
'AWS > Terraform' 카테고리의 다른 글
[AWS Terraform 기초]10. 라우팅 테이블과 서브넷 연결(private) (0) | 2023.07.11 |
---|---|
[AWS Terraform 기초]9. NAT Gateway Route Table 생성 (0) | 2023.07.11 |
[AWS Terraform 기초]7. 라우팅 테이블과 서브넷 연결(public) (0) | 2023.07.11 |
[AWS Terraform 기초]6. Route Table 생성 (0) | 2023.07.11 |
[AWS Terraform 기초]5. Internet Gateway 생성 (0) | 2023.07.11 |