본문 바로가기
CSP (Cloud Service Provider)/Azure

Azure terraform 3tier(네트워크 및 VMSS구축)

by BTC_김현빈 2022. 7. 15.

안녕하세요 베~하 BetterMonday팀입니다!! 지난주에 Azure Terraform 3Tier개요에 이어서 본격적으로 테라폼을 사용하여 3tier 구축을 진행해 보도록 하겠습니다!!!!

그럼~~~~슈~~웃~~~~~~!

 


Terraform으로 Azure 3tier를 구축하려면 설치 및 환경 구성이 필요합니다.이미 같은 내용으로 BTC블로그에 포스팅 되어 있는게 있어 공유드립니다!

https://btcd.tistory.com/184?category=927626 

 

Azure Terraform 설치

안녕하세요! 하씨가문의 영광팀입니다! 지난 주제로 Linux를 기반으로 Terraform과 Ansible를 설치해보았는데요! 오늘은 클라우드에서도 Azure를 기반으로 Terraform과 Ansible를 통해 리소스를 만들어보겠

btcd.tistory.com

환경설정은 하씨가문의 영광팀의 포스팅을 참고하시면 될거같습니다!

 


위에 포스팅을 보시구 설정을 완료하셨으면 테라폼을 이용하여 리소스들을 만들 수 있다는것을 아셨을거라고 생각합니다!

이제 이어서 테라폼을 이용하여 3Tier의 필요한 리소스들을 구축하는 시간을 알아보도록 하겠습니다.

 

 

 

 

 

위의 과정을 진행하셔서 리소스그룹을 만드셨으니 이어서 가상 네트워크와 서브넷,가상머신을 만드는법을 알아보도록 하겠습니다!

먼저 가상 네트워크를 만드는 코드입니다.

resource "azurerm_virtual_network" "vnet" {
  name                = "better-vnet" #가상 네트워크의 이름입니다.
  location            = azurerm_resource_group.rg.location #형식입니다.
  resource_group_name = azurerm_resource_group.rg.name #형식입니다.
  address_space       = ["10.0.0.0/16"] #주소공간을 설정합니다.
}

위와 같이 간단하게 가상 네트워크를 구성할 수 있습니다.


이어서 서브넷 구성을 해보도록 하겠습니다.

resource "azurerm_subnet" "alb_subnet" {  
  name                 = "alb-subnet"#alb subnet이름을 지정합니다.
  resource_group_name  = azurerm_resource_group.rg.name
  virtual_network_name = azurerm_virtual_network.vnet.name
  address_prefixes     = ["10.0.1.0/28"] #alb subnet cidr를 필요한만큼 지정합니다.
}

resource "azurerm_subnet" "web_subnet" {
  name                 = "web-subnet"
  resource_group_name  = azurerm_resource_group.rg.name
  virtual_network_name = azurerm_virtual_network.vnet.name
  address_prefixes     = ["10.0.10.0/28"]
}

resource "azurerm_subnet" "ilb_subnet" {
  name                 = "ilb-subnet"
  resource_group_name  = azurerm_resource_group.rg.name
  virtual_network_name = azurerm_virtual_network.vnet.name
  address_prefixes     = ["10.0.2.0/29"]
}

resource "azurerm_subnet" "was_subnet" {
  name                 = "was-subnet"
  resource_group_name  = azurerm_resource_group.rg.name
  virtual_network_name = azurerm_virtual_network.vnet.name
  address_prefixes     = ["10.0.20.0/28"]
}

위와 같이 필요한 서브넷을 만들 때 코드 몇줄만 입력해주면 서브넷이 금방 완성되는것을 알 수 있습니다.


이어서 가상머신확장집합(VMSS)을 만들어 보도록 하겠습니다.

resource "azurerm_linux_virtual_machine_scale_set" "web_vmss" {
name = "better-web-vmss"
location                        = azurerm_resource_group.rg.location
resource_group_name             = azurerm_resource_group.rg.name
sku                             = "Standard_DS1_v2" #머신 디스크 크기 선xor
instances                       = 1  #vmss 가상머신 개수
admin_username = "example" # 접속할때 아이디
admin_password = "exapmple"# 접속할때 비밀번호(비밀번호는 대문자와 소문자가 들어가야하며 
6글자에서 72글자까지 가능합니다.)
 disable_password_authentication = false # VMSS에서 암호 인증을 비활성해야합니까? 저희는 비밀번호로 인증해서 들어가기 떄문에 false로합니다.


 source_image_reference {
    # VM OS 설정및 변경
    publisher = "OpenLogic"
    offer     = "CentOS" # Centos를 사용하여 진행합니다.
    sku       = "7.5" #centos의 sku입니다.
    version   = "latest"#version은 최신버젼을 사용합니다.



}
 os_disk {
    caching              = "ReadWrite" #osdisk를 읽고쓰기가 가능합니다.
    storage_account_type = "Standard_LRS" #storage의 형식을 지정합니다.
  }
   network_interface { #네트워크 인터페이스 설정입니다.
    name    = "example"
    primary = true
    ip_configuration {
        name = "IPconfiguration"
        subnet_id = azurerm_subnet.web_vmss.id
        primary = true
    }
   }



    

  data_disk { # datadisk의 형식을 지정합니다.
    lun     = 0
    caching = "ReadWrite" #읽고쓰기가 가능합니다
    disk_size_gb         = 10 #data의 크기는 10gb로 지정합니다
    storage_account_type = "Standard_LRS" #storage의 형식을 지정합니다.
  }
  }

이제 VSCODE 터미널 창에서 terraform plan과 apply를 진행해 보도록 하겠습니다.

plan을 실행한 후 문제가 없으니 apply도 진행합니다.
apply를 진행한 후 환경에 따라 다르지만 3분 내외로 리소스들이 완성됩니다.

자 이제 리소스들이 포탈에서 잘 만들어졌는지 확인해 보도록 하겠습니다.

 

저희가 설정한 대로 잘 적용 되어 있는것을 확인할 수 있습니다.


이번주는 Terraform을 이용하여 가상네트워크(Vnet),서브넷,VMSS등을 만들어 봤습니다! 다음주에도 3tier의 리소스들을 구축해보도록 하겠습니다.

 

다음주에 만나요 베~바~

 

'CSP (Cloud Service Provider) > Azure' 카테고리의 다른 글

Terraform으로 3Tier구축(NSG와 DB생성)  (0) 2022.07.22
Microsoft 365 Business 구독 모델 (Office 365)  (0) 2022.07.20
Azure Table Storage  (0) 2022.07.12
Azure Blob Storage  (0) 2022.07.08
Azure Terraform 3tier(개요)  (0) 2022.07.06

댓글