일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- terraform
- pythonpptpdf
- githubbasic
- (user)terminal
- awsworkshop
- pptpdf
- 가시다스터디
- 테라폼조건식
- 테라폼상태
- 깃허브기초
- mac user
- aws
- pptpdf로변환
- Azure
- terraformazure
- terraform_data
- 테라폼스터디
- 테라폼조건문
- (user)없애기
- t103
- macterminal(user)
- mac(user)
- awsglue
- azureterraform
- azureresource
- t101
- 테라폼함수
- data개념
- pptxpdf
- cidrhost로EC2의ENI에10개의ip를 장착
- Today
- Total
fullmoon's bright IT blog
[T101] Terraform study - Azure로 알아보는 간단한 테라폼 배포하기 (2) - Network 1편 본문
[T101] Terraform study - Azure로 알아보는 간단한 테라폼 배포하기 (2) - Network 1편
휘영청 2022. 12. 12. 01:53
안녕하세요 휘영청입니다!
지난 번 기초에 이어서 리소스 그룹과 스토리지 계정을 만들어보았습니다.
추가적으로 네트워킹 부분도 해볼까합니다.
[ 목 차 ]
- 가상네트워크 + 서브넷
- 네트워크 인터페이스
1. 가상네트워크 - azurerm_virtual_network
가상 네트워크를 생성하고 가상 네트워크 내에 2개의 서브넷을 만드는 간단한 테라폼 양식입니다 :)
#프로바이더
terraform {
required_providers {
azurerm = {
source = "hashicorp/azurerm"
version = "3.29.1"
}
}
}
#프로바이더지정및구독아이디
provider "azurerm" {
subscription_id = "bfa5d97b-bcb7-4de5-844e-7412348afdd2"
features {}
}
#리소스그룹지정하기
resource "azurerm_resource_group" "hwi_grp" {
name = "hwi_grp"
location = "koreacentral"
}
기존처럼 프로바이더 설정하고 리소스 그룹을 만들어주고
#가상네트워크
resource "azurerm_virtual_network" "appnetwork" {
name = "app-network"
location = "koreacentral"
resource_group_name = "hwi-grp"
address_space = ["10.0.0.0/16"]
#서브넷
subnet {
name = "subnetA"
address_prefix = "10.0.0.0/24"
}
subnet {
name = "subnetB"
address_prefix = "10.0.1.0/24"
}
}
여기서 현재 서브넷을 볼 때 가상 네트워크 주요 리소스 블록의 일부입니다.
서브넷 자체에 대한 리소스 블록이 별도로 있답니다!
https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/resources/subnet
서브넷 리소스 블록을 별도로 구성하여 서브넷을 정의하고 사용할 수 있습니다.
그리고 의존성까지 추가해줍니다.
depends_on = [
azurerm_resource_group.hwi-grp
]
배포된 후 확인해보면 Address space 안에 서브넷이 배포가 되어있음을 확인할 수 있습니다.
2. 네트워크 인터페이스- azurerm_virtual_network
네트워크 인터페이스를 사용하면 Azure Virtual Machine이 인터넷, Azure 및 온-프레미스 리소스와 통신할 수 있습니다.
기본적으로 내부용으로 사용하는 프라이빗 IP 주소를 만들 수 있습니다.
https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/resources/network_interface
여기서는 변수를 사용해봅니다. 전달할 값을 알려줍니다.
https://developer.hashicorp.com/terraform/language/values
즉, 특정 가치를 입력으로 간주하여 전체적으로 재사용할 필요가 있는 경우에 변수를 정의할 수 있습니다. 변수에 숫자 유형이나 문자열을 지정할 수 있습니다.
리소스 그룹의 이름과 같은 값이 여러 번 사용되면 계속 쓰기 불편하니 변수를 지정해서 이 특정 스크립트 전체에서 재사용할 수 있습니다.
#예시
locals {
resource_group_name=hwi-grp"
location="koreacentral"
virtual_network={
name="app-network"
address_space="10.0.0.0/16"
}
이것을 적용하면 나중에 리소스를 일일히 입력하지 않아도 됩니다 :)
#변수지정_리소스그룹
resource "azurerm_resource_group" "hwi-grp" {
name = local.resource_group_name
location = local.location
}
#변수지정_가상네트워크
resource "azurerm_virtual_network" "appnetwork" {
name = local.virtual_network.name
location = local.location
resource_group_name = local.resource_group_name
address_space = [local.virtual_network.address_space]
depends_on = [
azurerm_resource_group.hwi-grp
]
}
#변수지정_서브넷
resource "azurerm_subnet" "subnetA" {
name = local.subnets[0].name
resource_group_name = local.resource_group_name
virtual_network_name = local.virtual_network.name
address_prefixes = [local.subnets[0].address_prefix]
depends_on = [
azurerm_virtual_network.appnetwork
]
}
resource "azurerm_subnet" "subnetB" {
name = local.subnets[1].name
resource_group_name = local.resource_group_name
virtual_network_name = local.virtual_network.name
address_prefixes = [local.subnets[1].address_prefix]
depends_on = [
azurerm_virtual_network.appnetwork
]
}
#변수지정_네트워크인터페이스
resource "azurerm_network_interface" "appinterface" {
name = "appinterface"
location = local.location
resource_group_name = local.resource_group_name
ip_configuration {
name = "internal"
subnet_id = azurerm_subnet.subnetA.id
private_ip_address_allocation = "Dynamic"
}
depends_on = [
azurerm_subnet.subnetA
]
}
다음 주제는
- 퍼블릭 IP
- 네트워크 보안그룹 으로 올려보겠습니다 :)
'Cloud > Azure' 카테고리의 다른 글
[T101] Terraform study - Azure로 알아보는 간단한 테라폼 배포하기 (3) - Network 2편 (0) | 2022.12.12 |
---|---|
[T101] Terraform study - Azure로 알아보는 간단한 테라폼 배포하기 (1) - 기본 개념, 리소스그룹, 스토리지계정 만들기 (2) | 2022.11.13 |