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

Terraform으로 3Tier구축(NSG와 DB생성)

by BTC_신지웅 2022. 7. 22.

안녕하세요 베~~하~~  저번주에 이어 terraform으로 3tier구축을 진행해 보겠습니다!! 

이번주는 NSG와DB를 구축해보도록 하겠습니다.

그럼 슈~~~~~우우우웃~~~~


먼저 web,was의 보안규칙을 설정해보도록 하겠습니다!

 

 

resource "azurerm_network_security_group" "web_nsg" {
  name                = "web-nsg" # 리소스의 이름입니다
  location            = azurerm_resource_group.rg.location
  resource_group_name = azurerm_resource_group.rg.name

  security_rule {
    name                       = "HTTP" #보안규칙의 이름입니다
    priority                   = 102 #우선순위입니다
    direction                  = "Inbound"# 인바운드,아웃바운드를 설정합니다
    access                     = "Allow" #접근입니다
    protocol                   = "Tcp" #프로토콜을 설정합니다.
    source_port_range          = "*" 
    destination_port_range     = "80" #포트번호를 설정합니다.
    source_address_prefix      = "*" 
    destination_address_prefix = "*"
  }

  security_rule {
    name                   = "SSH" # SSH접속을 위해 22번 포트를 열어주는 규칙입니다!
    priority               = 101 
    direction              = "Inbound" 
    access                 = "Allow" 
    protocol               = "Tcp" 
    source_port_range      = "*"
    destination_port_range = "22"
    source_address_prefix      = "*" 
    destination_address_prefix = "*" 
  }
}

여기서 우선순위가 중요한 개념이라 한번 알아보겠습니다!

 

NSG 규칙은 100에서 4,096 사이의 우선 순위로 적용되며 각각의 새 규칙이 순차적으로 추가됩니다. 규칙은 세분화된 수준에서 분석되며 트래픽과 일치하는 하나의 규칙이 발견되면 각 규칙은 우선 순위에 따라 확인되며 나머지 규칙은 확인하지 않습니다.

예를 들어 트래픽이 규칙 110과 일치하는 경우 트래픽은 이 규칙을 사용하여 전송을 시도합니다. 이는 여러 규칙이 서로 겹칠 수 있는 경우에 대한 고려 사항일 수 있습니다.

 

쉽게 설명하자면 우선순위가 낮은 숫자부터 실행한다고 생각하시면 될거 같습니다!


DB를 만들어 보도록 하겠습니다!

resource "azurerm_mysql_server" "better_DB" {
  name                = "better-mysqlserver" #리소스의 이름입니다.
  location            = azurerm_resource_group.rg.location
  resource_group_name = azurerm_resource_group.rg.name

  administrator_login          = "bettermonday" #접속시 계정입니다.
  administrator_login_password = "passwordexample"#접속시 비밀번호입니다 대문자 특수문자 포함 12자이상입니다.

  sku_name   = "GP_Gen5_2"
  storage_mb = 5120 #DB의 용량을 설정합니다.
  version    = "5.7"#Mysql의 버젼을 확인합니다.

  auto_grow_enabled                 = true
  backup_retention_days             = 7
  geo_redundant_backup_enabled      = true
  infrastructure_encryption_enabled = true
  public_network_access_enabled     = false
  ssl_enforcement_enabled           = true
  ssl_minimal_tls_version_enforced  = "TLS1_2"
}

resource "azurerm_mysql_database" "bettermonday_database" {
  name                = "better_database"
  resource_group_name = azurerm_resource_group.rg.name
  server_name         = azurerm_mysql_server.better_DB.name
  charset             = "utf8"
  collation           = "utf8_unicode_ci"
}

간단하게 사용할 Mysql PaaS를 만들었습니다.

 

이제 apply를 돌려보도록 하겠습니다!

방금 만든DB가 잘 만들어지고 있는것을 확인하실 수 있습니다.

mysql은 만드는데 3분정도 소요됩니다.

 

nsg가 잘 적용된것을 확인하실수 있습니다.

 

 

정상적으로 생성된것을 확인하실수 있습니다.


여기까지 이번 주 준비한 NSG와 DB 생성을 끝마쳤습니다. 다음주에는 또 무엇을 생성해볼지 기대가 되는군요!

여러분 다음주에 만나요 베바~~~~~~~~~!!

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

MicrosoftLearn이란?  (0) 2022.08.29
Azure Files란?  (0) 2022.08.04
Microsoft 365 Business 구독 모델 (Office 365)  (0) 2022.07.20
Azure terraform 3tier(네트워크 및 VMSS구축)  (0) 2022.07.15
Azure Table Storage  (0) 2022.07.12

댓글