ARM 템플릿을 사용한 Azure Storage 배포

발행: (2026년 2월 9일 오전 12:05 GMT+9)
3 분 소요
원문: Dev.to

Source: Dev.to

소개

Azure Resource Manager (ARM)는 Azure에서 리소스를 조직하는 방법을 제공합니다. ARM을 사용하면 리소스 그룹이라는 단일 논리 단위로 Azure 리소스를 정의하고 배포할 수 있으며, 여기에는 가상 머신, 스토리지 계정, 네트워크 인터페이스 등이 포함될 수 있습니다.

ARM 템플릿은 인프라를 코드(IaC)로 정의하는 JSON 파일입니다. 이 가이드에서는 다음을 사용하여 Azure Storage Account를 배포하는 방법을 보여줍니다.

  • ARM 템플릿
  • PowerShell 배포 스크립트
  • Azure DevOps 파이프라인

사전 요구 사항

  • Azure 구독
  • 구독에 대한 서비스 연결이 설정된 Azure DevOps 프로젝트

저장소 구조

├── deploy.ps1              # PowerShell 스크립트 (RG 생성 + 템플릿 배포)
├── azure-pipelines.yml     # CI/CD 파이프라인 정의
└── storageaccount.json     # ARM 템플릿 정의

PowerShell 배포 스크립트 (deploy.ps1)

param(
    [string]$ResourceGroupName,
    [string]$StorageAccountName,
    [string]$Location,
    [string]$Sku = "Standard_LRS"
)

$scriptDir = $PSScriptRoot    
$template = Join-Path $scriptDir "storageaccount.json"

Write-Host "Checking if resource group '$ResourceGroupName' already exists..."
Start-Sleep -Seconds 2
$exists = (az group exists --name $ResourceGroupName) -eq 'true'

if (-not $exists) {
    Write-Host "Resource group '$ResourceGroupName' does not exist. Creating..."
    az group create --name $ResourceGroupName --location $Location | Out-Null
    if ($LASTEXITCODE -ne 0) { throw "Failed to create resource group." }
} else {
    Write-Host "Resource group '$ResourceGroupName' already exists."
}

Write-Host "Deploying Azure ARM template.."

az deployment group create `
    --resource-group $ResourceGroupName `
    --template-file $template `
    --parameters "storageAccountName=$StorageAccountName" "sku=$Sku" "location=$Location"

if ($LASTEXITCODE -ne 0) {
    Write-Error "ARM deployment failed."
    return $false
}

Write-Host "Deployment successful by Alvaro! 🚀"

Azure Pipelines 정의 (azure-pipelines.yml)

trigger:
  branches:
    include:
      - main

pool:
  vmImage: 'ubuntu-latest'

variables:
  resourceGroupName: 'Asgard'
  storageAccountName: 'storageaccountasgard'
  location: 'West Europe'
  sku: 'Standard_LRS'

steps:
- task: AzureCLI@2
  displayName: 'Deploy Storage Account ARM Template'
  inputs:
    azureSubscription: 'Marty-MacFly'   # Service Connection name in Azure DevOps
    ScriptType: pscore
    ScriptPath: '$(System.DefaultWorkingDirectory)/deploy.ps1'
    ScriptArguments: >-
      -ResourceGroupName "$(resourceGroupName)"
      -StorageAccountName "$(storageAccountName)"
      -Location "$(location)"
      -Sku "$(sku)"

파이프라인 실행

  1. 파일들을 Azure DevOps 저장소의 main 브랜치에 커밋합니다.
  2. 파이프라인이 자동으로 트리거되며(또는 수동으로 실행)
  3. PowerShell 스크립트가 리소스 그룹이 없을 경우 생성하고 storageaccount.json ARM 템플릿을 배포합니다.

검증

파이프라인이 완료된 후 Azure 포털로 이동하여 새 Storage Account(storageaccountasgard)가 West Europe 지역에 정상적으로 생성되었는지 확인합니다.

0 조회
Back to Blog

관련 글

더 보기 »

sunpeak은 MCP 앱에 전념한다

개요: MCP Apps는 이제 ChatGPT, Claude, Goose 및 VS Code에서 실행됩니다. Claude는 1월 26일에 MCP App 지원을 발표했으며, ChatGPT는 2월 4일에 이를 따랐습니다. 2월 현재…