한윤석 개발 블로그

배운 것을 적는 블로그입니다.

Terraform에서 Azure VM리소스를 한 번에 여러개 작성하려면 어떻게 해야 하나요?

등록일: 2024-06-20
수정일: 2024-06-20
resource "azurerm_linux_virtual_machine" "vm" {
  name = "my-server"
  
  # ... 생략
}

이런 리소스를 정의했다고 가정해 보겠습니다. 동일한 리소스를 여러 개 만들고 싶다면 다음과 같이 count를 사용할 수 있습니다.

resource "azurerm_linux_virtual_machine" "vm" {
  name = "my-server"

  count = 5

  # ... 생략
}

그러면 동일한 스펙으로 5개가 생깁니다. 하지만 그대로 실행해 보면 다음과 같이 에러가 발생합니다.

already exists - to be managed via Terraform this resource needs to be imported into the State. # ... 생략

namemy-server로 고정되어 있어서 동일한 이름으로 4개를 더 만들려고 하니 에러가 발생합니다. 이럴 경우 index를 사용해서 이름을 고유하게 만들 수 있습니다.

resource "azurerm_linux_virtual_machine" "vm" {
  name = "my-server-${count.index}"

  count = 5

  # ... 생략
}

참고


자바스크립트로 직접 만들면서 배우는 - 자료구조와 알고리즘 강의 바로 가기
실습으로 마스터하는 OAuth 2.0: 기본부터 보안 위험까지 - OAuth 2.0 강의 바로 가기
기계인간 이종립, 소프트웨어 개발의 지혜 - Git 강의 바로 가기

코드숨에서 매주 스터디를 진행하고 있습니다. 메일을 등록하시면 새로운 스터디가 시작될 때 알려드릴게요!