AWS/Terraform / / 2023. 7. 12. 23:28

[AWS Terraform 기초]13. Application Load Balancer(ALB) 생성

반응형

이번 포스팅까지의 진행 구성도

 

 

1. Terraform Docs 예시

https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/lb

 

Terraform Registry

 

registry.terraform.io

 

 

예시:

 

 

인수 등:

 

 

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
}

 

 

반응형
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유