차원이 다른 Azure IaC: Azure Verified Modules

Infrastructure-as-Code(IaC), 특히 Terraform을 활용한 IaC는 우리 Azure Foundation의 핵심 구성 요소이자 모든 클라우드 전환의 근본적인 요소입니다. IaC를 체계적으로 활용하면 클라우드 서비스의 도입과 신규 제품 개발이 빨라집니다. 그렇다면 여기서 이런 질문이 떠오릅니다. 어떻게 시작하는 것이 가장 좋을까요?

차원이 다른 Azure IaC: Azure Verified Modules

Azure Verified Module - Microsoft 베스트 프랙티스를 따르는 IaC

Microsoft는 이 주제에 본격적으로 착수하여 Azure Verified Modules (AVM)이라는, 베스트 프랙티스에 따라 Azure에 리소스를 체계적으로 배포하기 위한 프레임워크를 만들었습니다.

AVM에는 세 가지 종류가 있습니다:

  • Resource Modules - 정의된 하나의 클라우드 리소스를 배포
  • Pattern Modules - 정의된 하나의 클라우드 워크로드를 배포
  • Utility Modules - Resource 모듈이나 Pattern 모듈에서 사용되는 보조 모듈

일관된 표준을 보장하기 위해 Microsoft는 모든 신규 AVM 리소스가 준수해야 하는 일련의 요구 사항을 정의했습니다. 이는 Terraform뿐만 아니라 Microsoft Azure의 자체 IaC 언어인 Bicep에도 동일하게 적용됩니다.

각 AVM에는 생성, 발전 및 문제 처리를 담당하는 특정 Microsoft 직원이 배정되어 있습니다.

사용 가능한 모든 모듈은 오픈 소스(MIT 라이선스)로 Azure GitHub 조직의 공개 GitHub 리포지토리에서 접근할 수 있습니다. 어떤 모듈에 문제가 있거나 필요한 파라미터가 없는 경우, 누구나 이슈를 등록하거나 개발에 직접 참여할 수 있습니다.

AVM은 어떻게 시작하나요?

AVM은 Terraform이나 Bicep의 다른 모든 모듈과 마찬가지로 동작합니다. 독립적으로 호출되며 필요한 모든 파라미터를 전달받습니다. AVM 생성에 관한 요구 사항 덕분에, 손쉬운 시작을 보장하기 위해 필요한 파라미터가 최소한으로 줄어듭니다.

Terraform 예시: 추가 Data Disk를 갖춘 가상 머신을 배포하려면 Azure에서 최소한 다음 리소스가 필요합니다:

  • azurerm_windows_virtual_machine 또는 azurerm_linux_virtual_machine
  • azurerm_network_interface
  • azurerm_managed_disk
  • azurerm_virtual_machine_data_disk_attachment

이러한 각 리소스에는 리소스 그룹 이름, 대상 리전, 실제 리소스의 명칭처럼 자주 반복되는 필수 파라미터가 있습니다.

AVM을 사용하면 자체 코드에서의 호출이 필요한 파라미터를 갖춘 단 하나의 리소스로 단순화되고, 이후 모듈 내부에서 계속 처리됩니다. AVM은 가장 일반적인 Microsoft 베스트 프랙티스를 이미 통합하고 있으므로 수많은 파라미터에 기본값이 설정되어 있어 별도의 구성이 필요 없습니다. 그 예로 많은 모듈에서 TLS 1.2를 기본값으로 지정하거나 퍼블릭 액세스를 차단하는 설정을 들 수 있습니다.

내 리소스에 해당하는 AVM이 아직 없다면 어떻게 하나요?

AVM의 오픈 소스 라이선스 덕분에 이 프레임워크를 기반으로 직접 개발을 시작할 수 있습니다. 이후 Microsoft 직원이 공식 AVM 리소스 생성에 착수하는 경우, 오픈 소스의 취지에 걸맞게 이미 수행된 사전 작업을 통해 기여할 수 있습니다.

GKVM - glueckkanja ❤️ Open Source

우리 glueckkanja는 바로 이 접근 방식을 따르며, AVM 프레임워크를 기반으로 하여 이후 대중에게 공개되는 모듈의 개발에서도 고객을 지원합니다.

우리는 이러한 모듈을 GKVM(GlueckKanja Verified Modules)이라고 부릅니다. 이 모듈은 AVM의 요구 사항을 준수할 뿐만 아니라 수많은 프로젝트에서 얻은 우리만의 인사이트도 반영하기 때문입니다.

GKVM Resource Modules:

GKVM Pattern Modules:

모듈에 새로운 기능을 더하는 데 도움이 되는 모든 이슈를 환영합니다!

추가 자료

지금 문의하기

Azure에서의 Infrastructure as Code에 대해 더 알고 싶으신가요? Azure Verified Modules를 통해 어떻게 더 빠르고, 더 표준화되며, 더 지속 가능하게 클라우드에서 작업할 수 있는지 기꺼이 보여드리겠습니다. 처음 시작하는 단계든 확장 가능한 구현 단계든, 우리는 경험과 베스트 프랙티스로 여러분을 지원합니다. 여러분의 연락을 기다리겠습니다!

비슷한 게시물