반응형
1. Terraform Docs 예시
https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/lb
예시:
인수 등:
2. Terraform 코드 작성
# 12_alb.tf
resource "aws_lb" "pmh_alb" {
name = "pmh-alb"
internal = false
security_groups = [aws_security_group.pmh_sg.id]
subnets = [aws_subnet.pmh_puba.id,aws_subnet.pmh_pubc.id]
tags = {
Name = "pmh-alb"
}
}
output "alb_dnsname" {
value = aws_lb.pmh_alb.dns_name
}
resource "aws_lb" "pmh_alb"
pmh_alb 라는 이름의 ALB를 생성
name = "pmh-alb"
ALB의 이름을 "pmh-alb"로 설정
internal = false
ALB를 내부 또는 외부에 생성할지 여부를 설정
(false는 외부에 생성)
security_groups = [aws_security_group.pmh_sg.id]
ALB에 할당할 보안 그룹 ID
(앞서 만들었던 보안 그룹)
subnets = [aws_subnet.pmh_puba.id, aws_subnet.pmh_pubc.id]
ALB를 배치할 서브넷 ID 지정
(가용영역 a, c에 있는 public subnet)
tags = { Name = "pmh-alb" }
리소스에 태그 지정
(ALB에 식별 가능한 이름 지정)
3. Terraform 분석 및 적용
terraform 파일이 있는 위치에서 아래 명령어 실행
# 변경 사항 검토 및 확인
terraform plan
# (대화형 승인 없이)변경 사용항 적용
terraform apply -auto-approve
4. 결과
+ 변수처리하는 방법
tag 변수 파일 생성
# var.tf
variable "tag" {
type = string
default = "pmh"
}
# 12_alb.tf
resource "aws_lb" "pmh_alb" {
name = "${var.tag}-alb"
internal = false
security_groups = [aws_security_group.pmh_sg.id]
subnets = concat(aws_subnet.pmh_pub[*].id)
tags = {
Name = "${var.tag}-alb"
}
}
output "alb_dnsname" {
value = aws_lb.pmh_alb.dns_name
}
반응형
'AWS > Terraform' 카테고리의 다른 글
[AWS Terraform 기초]15. ALB Listener 생성 (0) | 2023.07.12 |
---|---|
[AWS Terraform 기초]14. ALB Target Group 생성 (0) | 2023.07.12 |
[AWS Terraform 기초]12. EC2 인스턴스 생성 (0) | 2023.07.12 |
[AWS Terraform 기초]11. Security Group 생성 (0) | 2023.07.12 |
[AWS Terraform 기초]10. 라우팅 테이블과 서브넷 연결(private) (0) | 2023.07.11 |