본문 바로가기
INFRA/Operation

Terraform 리소스에 대한 이해 - Azure 4편

by BTC_Dana 2022. 9. 6.
안녕하세요!
하씨가문의 영광입니다!
지난 편 Terraform 리소스의 Azure 3편을 다루었는데요!
오늘은 4편을 시작하겠습니다!
Don't have a good day, Have a great day!

목차

  1. LB
  2. LB - Probe
  3. LB - Rule

1. LB
resource "azurerm_lb" "example" {
  name                = "TestLoadBalancer"
  location            = azurerm_resource_group.example.location
  resource_group_name = azurerm_resource_group.example.name

  frontend_ip_configuration {
    name                 = "PublicIPAddress"
    public_ip_address_id = azurerm_public_ip.example.id
  }
}

<필수>

  • name : 로드 밸런서의 이름을 지정합니다.
  • resourece_group_name : 로드 밸런서를 생성할 리소스 그룹의 이름입니다.
  • location : 로드 밸런서를 생성할 Azure 지역을 지정합니다.

 

<옵션>

  • edge_zone : Azure 에지 영역을 지정합니다.
  • frontend_ip_configuration
    • name : 프런트엔드 IP 구성 이름을 지정합니다.
    • zones : 로드 밸런서의 IP 주소가 있어야 하는 가용 영역 목록을 지정합니다.
    • subnet_id : IP구성과 연결되어야하는 서브넷의 ID입니다.
    • gateway_load_balancer_frontend_ip_configuration_id : 게이트웨이 SKU 로드 밸런서의 프런트엔드 IP 구성 ID 입니다.
    • private_ip_address : 로드 밸런서에 할당할 사설 IP 주소입니다.
    • private_ip_address_allocation : 로드 밸런서에서 사용하는 사설 IP 주소에 대한 할당 방법입니다.
    • private_ip_address_version : 사설 IP 주소가 있는 IP의 버전입니다.
    • public_ip_address_id : 로드 밸런서와 연결되어야 하는 공용 IP 주소의 ID입니다.
    • public_ip_prefix_id : 로드 밸런서와 연결되어야 하는 공용 IP 접두사의 ID입니다.
  • sku : 비용 계층으로 basic, standard, gateway
  • sku_tier : global, regional이 있습니다.
  • tags : 리소스에 할당할 태그 매핑입니다.
2. LB - Probe
resource "azurerm_lb_probe" "example" {
  loadbalancer_id = azurerm_lb.example.id
  name            = "ssh-running-probe"
  port            = 22
}

<필수>

  • Name : 프로브의 이름을 지정합니다.
  • loadbalancer_id : NAT 규칙을 생성할 LoadBalancer의 ID입니다.
  • protocol : 전송 프로토콜입니다. 가능한 값은 Tcp, Udp또는 All입니다.
  • port : 프로브가 백엔드 엔드포인트를 쿼리하는 포트입니다.

 

<옵션>

  • request_path : 백엔드 엔드포인트에서 상태를 요청하는 데 사용되는 URI입니다.
  • interval_in_seconds : 상태에 대한 백엔드 엔드포인트에 대한 프로브 사이의 간격(초)입니다.
  • number_of_probes : 백엔드 엔드포인트가 회전에서 제거된 후 실패한 프로브 시도 횟수입니다. 기본값은 2입니다.

 

3. LB - Rule
resource "azurerm_lb_rule" "example" {
  loadbalancer_id                = azurerm_lb.example.id
  name                           = "LBRule"
  protocol                       = "Tcp"
  frontend_port                  = 3389
  backend_port                   = 3389
  frontend_ip_configuration_name = "PublicIPAddress"
}

<필수>

  • name : LB 규칙의 이름을 지정합니다.
  • loadbalancer_id : 규칙을 생성할 로드 밸런서의 ID입니다.
  • frontend_ip_configuration_name : 규칙이 연결된 프런트엔드 IP 구성의 이름입니다.
  • protocol : 전송 프로토콜입니다. 가능한 값은 Tcp, Udp또는 All입니다.
  • frontend_port : 포트로써, 각 규칙의 포트 번호는 로드 밸런서 내에서 고유해야 합니다.
  • backend_port : 엔드포인트에서 내부 연결에 사용되는 포트입니다.

<옵션>

  • backend_address_pool_ids : 부하 분산 규칙이 작동하는 백엔드 주소 풀에 대한 참조 목록입니다.
  • probe_id : 로드 밸런싱 규칙에서 사용하는 프로브에 대한 참조입니다.
  • enable_floating_ip : 유동IP는 기본 서버에 장애가 발생할 경우 보조 서버에 재할당됩니다.
  • idle_timeout_in_minutes : TCP 연결에 대한 유휴 시간 초과를 분 단위로 지정합니다.
  • load_distribution : 로드 밸런서에서 사용할 로드 밸런싱 배포 유형을 지정합니다.
  • disable_outbound_snat : 로드 밸런서 규칙에 대해 snat이 활성화여부입니다.
  • enable_tcp_reset :  로드 밸런서 규칙에 대해 TCP 재설정이 활성화여부입니다.

 

이렇게 오늘은 Terraform 기반 Azure의 LB 부분을 살펴보았는데요!
Load Balancer 부분도 찾아봐야할게 확실히 많은 거 같아요!

오늘 읽어주셔서 감사합니다:)

댓글