안녕하세요!
하씨가문의 영광입니다!
지난 편 Terraform 리소스의 Azure편을 다루었는데요!
오늘은 2편을 시작하겠습니다!
Don't have a good day, Have a great day!
※ 목차
1. Vnet
resource "azurerm_virtual_network" "example" {
name = "example-network"
location = azurerm_resource_group.example.location
resource_group_name = azurerm_resource_group.example.name
address_space = ["10.0.0.0/16"]
dns_servers = ["10.0.0.4", "10.0.0.5"]
subnet {
name = "subnet1"
address_prefix = "10.0.1.0/24"
}
subnet {
name = "subnet2"
address_prefix = "10.0.2.0/24"
security_group = azurerm_network_security_group.example.id
}
tags = {
environment = "Production"
}
}
<필수>
- name : 가상 네트워크의 이름입니다! 이름을 변경해서 apply를 할시 새로운 리소스가 생성됩니다!
- resource_group_name : 가상 네트워크를 생성할 리소스 그룹의 이름입니다.
- address_space : 가상 네으워크에서 사용되는 주소 공간입니다. 2개 이상의 주소 공간을 제공할 수 있습니다.
- location : 가상 네트워크가 생성되는 위치/지역입니다. 이것도 마찬가지로 변경하면 새 새로운 지역의 리소스가 생성됩니다.
<옵션>
- bgp_community : BGP 커뮤니티 속성입니다. 여기서 BGP란 라우팅을 넘겨 받는 필터링 또는 우선순의 조정 등을 뜻합니다.
- ddos_protection_plan : DDoS를 방어하기 위한 옵션입니다.
- id : DDos 보호 계획의 ID는 필수값입니다.
- enable : 가상 네트워크에서 DDoS 보호 계획을 활성화/비활성화를 선택하는 필수값입니다.dns_servers : DNS 서버의 IP 주소 목록입니다.
- edge_zone : Azure 지역 내의 Edge 영역을 지정합니다. Edge_zone이란 대기 시간이 짧은 네트워킹, 애플리케이션 및 서비스를 지원하는 영역입니다.
- subnet : 여러 서브넷을 정의하기 위해 여러 번 지정할 수 있습니다.
- name : 서브넷의 필수 이름값입니다.
- address_prefix : 서브넷에 사용할 주소 접두사인 필수값입니다.
- security_group : 서브넷과 연결할 네트워크 보안 그룹으로 옵션값입니다.
- tags : 리소스에 할당할 태그를 지정합니다.
2. Subnet
resource "azurerm_subnet" "example" {
name = "example-subnet"
resource_group_name = azurerm_resource_group.example.name
virtual_network_name = azurerm_virtual_network.example.name
address_prefixes = ["10.0.1.0/24"]
delegation {
name = "delegation"
service_delegation {
name = "Microsoft.ContainerInstance/containerGroups"
actions = ["Microsoft.Network/virtualNetworks/subnets/join/action", "Microsoft.Network/virtualNetworks/subnets/prepareNetworkPolicies/action"]
}
}
}
<필수>
- name : 서브넷의 이름이고, 이를 변경하면 리소스가 새로 생성됩니다!
- resource_group_name : 서브넷을 생성할 리소스 그룹의 이름이며, 이거 또한 변경하면 다른 리소스 그룹으로 변경됩니다.
- virtual_network_name : 서브넷을 연결할 가상 네트워크의 이름이고, 이 또한 변경하면 다른 가상 네트워크로 변경됩니다.
- address_prefixes : 서브넷에 사용할 주소 접두사입니다.
<옵션>
- delegation : Azure PaaS 서비스에 대해 가상 네트워크에 삽입해야 하는 특정 서브넷을
지정합니다.
- name : 이름은 필수값입니다.
- service_delegation : delegate할 서비스의 필수값 이름입니다.
- 몇가지 값의 종류를 뽑자면 이렇게 존재합니다.
Microsoft.ApiManagement/service
Microsoft.AzureCosmosDB/clusters
Microsoft.ContainerInstance/containerGroups
Microsoft.MachineLearningServices/workspaces
Microsoft.ServiceFabricMesh/networks
PaloAltoNetworks.Cloudngfw/firewalls
값을 자세히 보고 싶다면 다음 사이트를 참조하시면 됩니다.
https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/resources/subnet
- actions : delegate할 작업 목록이고 옵션값입니다.
Microsoft.Network/networkinterfaces/*
Microsoft.Network/virtualNetworks/subnets/action
Microsoft.Network/virtualNetworks/subnets/join/action
- private_endpoint_network_policies_enabled : 서브넷의 프라이빗 엔드포인트에 대한 네트워크 정책을 활성화 또는 비활성화하며 true/false 로 지정합니다.
- private_link_service_network_policies_enabled : 서브넷의 개인 링크 서비스에 대한 네트워크 정책을 활성화 또는 비활성화하며 true/false로 지정합니다.
- service_endpoints : 서브넷과 연결할 서비스 엔드포인트 목록이며 다음과 같은 값을 가지고 있습니다.
Microsoft.AzureActiveDirectory
Microsoft.AzureCosmosDB
Microsoft.ContainerRegistry
- service_endpoint_policy_ids : 서브넷과 연결할 서비스 엔드포인트 정책 ID 리스트이며 옵션값입니다.
3. NSG-Assosiation
resource "azurerm_subnet_network_security_group_association" "example" {
subnet_id = azurerm_subnet.example.id
network_security_group_id = azurerm_network_security_group.example.id
}
<필수>
- network_security_group_id : 서브넷과 연결해야 하는 네트워크 보안 그룹의 ID이며 변경할 시 다른 보안 그룹과 연결됩니다.
- subnet_id : 서브넷의 ID값이며, 이를 변경하면 다른 서브넷을 연결합니다.
이렇게 오늘은 Terraform기반 Azure의 리소스들을 살펴보았는데요!
Network부분의 리소스들은 초반 인프라를 구성하는 작업에서 가장 중요한 작업이니
리소스를 생성할 때 신중하게 생각하고 만드시길 바라겠습니다!
오늘도 읽어주셔서 감사합니다:)
'INFRA > Operation' 카테고리의 다른 글
Terraform 리소스에 대한 이해 - Azure 3편 (0) | 2022.09.03 |
---|---|
쿠버네티스 이론 STEP8 RBAC (0) | 2022.08.29 |
쿠버네티스 이론 STEP7 PV, PVC (1) | 2022.08.23 |
쿠버네티스 이론 STEP6 Service (3) Ingress - 2 (0) | 2022.08.23 |
Terraform 리소스에 대한 이해 - Azure 1편 (0) | 2022.08.21 |
댓글