본문 바로가기
INFRA/Operation

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

by BTC_지수 2022. 9. 3.

안녕하세요! 하씨가문의 영광입니다.

오늘은 저번에 이어서 Azure 3편! 을 시작해보도록하겠습니다~ 고고!!

 

Public ip

azurerm_public_ip는 Public ip 주소를 관리합니다.

resource "azurerm_public_ip" "example" {
  name                = "acceptanceTestPublicIp1"
  resource_group_name = azurerm_resource_group.example.name
  location            = azurerm_resource_group.example.location
  allocation_method   = "Static"

  tags = {
    environment = "Production"
  }
}

"azurerm_public_ip" 블록에서 사용되는 인수는 다음과 같습니다.

 

< 필수 >

  • name : 공용 IP의 이름을 지정합니다. 이를 변경하면 새 공용 IP가 생성됩니다.
  • resource_group_name : 공개 IP가 위치하고 있는 리소스 그룹의 이름입니다. 이를 변경하면 새로운 공용 IP가 생성됩니다.
  • location : 공용 IP가 있어야 하는 지원되는 Azure 위치를 지정합니다. 예를 들면 Korea Central과 같은 한국중부를 의미합니다. 이를 변경하면 새 리소스가 지원됩니다.
  • allocation_method : IP 주소에 대한 할당 방법을 정의합니다. 가능한 값은 Static(고정) 또는 Dynamic(동적) 입니다.

< 선택 사항 >

  • zones : 공용 IP를 할당할 가용성 영역이 포함된 컬렉션입니다.

가용 영역은 현재 표준 SKU 및 일부 지역 에서만 지원됩니다. 영역을 지정하지 않는 표준 SKU 공용 IP주소는 기본적으로 영역이 중복되지 않습니다.

  • domain_name_label : 도메인 이름에 대한 레이블입니다. FQDN을 구성하는데 사용됩니다. 도메인 이름 레이블이 지정되면 Microsoft Azure DNS 시스템의 공용 IP에 대해 A DNS 레코드가 생성됩니다.
  • edge_zone : 공용 IP가 위치하고 있는 Azure 지역 내의 edge  zone을 지정합니다. 이를 변경하면 새 공용 IP가 생성됩니다.
  • ip_version : 사용할 IP 버전, IPv6 또는 IPv4 을 사용합니다.
  •  sku : 공개 IP의 SKU입니다. 사용되는 값은 Basic 및 Standard 입니다. 기본값은 Basic으로 사용됩니다.
  • sku_tier : 공용 IP에 사용해야 하는 SKU 계층입니다. 사용되는 값은 Regional 및 Global 입니다. 기본값은 Regional 입니다.

만약 sku_tier을 Global로 설정한다면, sku는 Standard로 세팅해줘야만 합니다.

  • tags : 리소스에 할당할 태그 매핑입니다.

 

Network Interface
resource "azurerm_network_interface" "example" {
  name                = "example-nic"
  location            = azurerm_resource_group.example.location
  resource_group_name = azurerm_resource_group.example.name

  ip_configuration {
    name                          = "internal"
    subnet_id                     = azurerm_subnet.example.id
    private_ip_address_allocation = "Dynamic"
  }
}

 

"azurerm_network_interface" 블록에 사용되는 인수는 다음과 같습니다.

 

< 필수 >

  • name : 네트워크 인터페이스의 이름입니다. 이를 변경하면 새 리소스가 생성됩니다.
  • location : 네트워크 인터페이스가 있어야하는 위치를 말합니다. 이를 변경하면 새 리소스가 생성됩니다.
  • resource_group_name : 네트워크 인터페이스를 생성할 리소스 그룹의 이름입니다. 이를 변경하면 새 리소스가 생성됩니다.

< 선택 사항 >

  • dns_servers : 네트워크 인터페이스에 사용해야 하는 DNS 서버를 정의하는 IP 주소 목록입니다.

네트워크 인터페이스에서 DNS 서버를 구성하면 가상 네트워크에 정의된 DNS 서버가 재정의됩니다.

  • edge_zone : 네트워크 인터페이스가 있어야 하는 Azure 지역 내의 edge zone을 지정합니다. 이를 변경하면 새 네트워크 인터페이스가 생성됩니다.
  • enable_ip_forwarding : IP 포워딩을 활성화할것인지를 지정합니다. 기본값은 false 입니다.
  • enable_accelerated_networking : 가속 네트워킹을 활성화할것인지 지정합니다. 기본값은 false입니다.

가속 네트워킹에는 특정 가상 머신 크기만 지원됩니다. 또한 가용성 집합에서 가속 네트워킹을 사용하려면 가용성 집합을 가속 네트워킹 사용 클러스터에 배포해야 합니다.

  • internal_dns_name_label : 동일한 가상 네트워크에 있는 가상머신 간의 내부 통신에 사용되는 (관계있는) DNS 이름입니다.
  • tags : 리소스에 할당할 태그 매핑입니다.

 

이번에는 ip_configuration {} 블록에 사용되는 인수를 한번 알아보도록 하겠습니다.

 

< 필수 >

  • name : 이 IP 구성에 사용되는 이름입니다.
  • private_ip_address_allocation : Private IP Address에 사용되는 할당방식입니다. 사용되는 값은 Dynamic 및 Static 입니다.

Dynamic 은 "네트워크 인터페이스를 생성하는 동안 IP가 자동으로 할당되는것"을 의미합니다. 이에 반해 Static은 "사용자가 제공한 IP 주소가 사용되는것" 을 의미합니다.

 

< 선택 사항 >

  • gateway_load_balancer_fronted_ip_configurtaion_id : 게이트웨이 SKU 로드 밸런서의 프런트엔드 IP 구성 ID입니다.
  • subnet_id : 네트워크 인터페이스가 있어야 하는 서브넷의 ID입니다.
  • private_ip_address_version : 사용할 IP 버전입니다. 가능한 값은 IPv4 또는 IPv6 입니다. 기본값은 IPv4 입니다.
  • public_ip_address_id : 이 NIC와 연결할 공용 IP 주소에 대한 참조를 뜻합니다.
  • primary : 이것이 기본 IP 구성인지를 의미합니다. 여러 개가 지정되는 경우 첫 번째 ip_configuration에 대해서는 true여야 합니다. 기본값은 false입니다.

 

이외에도 많은 선택사항 인수들이 있지만 지금까지 다뤄본것은 많이 사용되는 인수들과 필수적인 인수를 다루어보았습니다. 다음편에서는 VM 배포에 대한 내용을 포함하니 많이 봐주세요

 

그럼 다음주에 뵈요!

 

댓글