DevOps

[ AZ-104 ] Azure Cloud Shell, PowerShell, JSON ARM

궁금한게 많은 개발자 2025. 1. 17. 19:54

다음과 같은 경우 Azure Cloud Shell을 사용하면 적절하지 않습니다.

  • 장기 실행 스크립트 또는 세션을 20분 넘게 열어두려는 의도가 있는 경우, 세션은 경고 없이 끊어지고 상태 손실
  • sudo 액세스와 같은 관리자 권한이 필요한 경우
  • 다른 지역의 스토리지가 필요한 경우, 한 지역에서만 스토리지를 할당할 수 있기에 적절하지 않음
  • 동시에 여러 세션을 열어야 하는 경우, 한 번에 하나의 인스턴스만 허용, 여러 구독 또는 테넌트 간의 동시 작업에는 적합하지 않음

 

PowerShell은 기존 명령어 줄 셀과 다른점이 있습니다.

  • 텍스틀 통해 개체에서 동작: 서식 지정 및 추출에 걸리는 시간 절약
  • cmdlet이 있음: 별도의 실행 파일이 아닌 공용 런타임에 빌드 되며, .NET Core로 빌드되며 오픈 소스
  • 다양한 유형의 명령: PowerShell의 명령은 네이티브 실행 파일, cmdlet, 스크립트 또는 별칭

 

JSON ARM(Azure Resource Manager) 템플릿을 사용하면 프로젝트의 인프라를 선언적이고 재사용 가능한 방식으로 지정할 수 있습니다. 개발 프로젝트와 동일한 소스 제어에서 템플릿의 버전을 관리하고 저장할 수 있습니다. ARM 템플릿을 사용하여 IaC 방식으로 배포가 가능하고, 여러 버전 추적 및 각 환경의 인프라 배포에서 일관성과 유연성을 유지할 수 있습니다.

 

 

 

ARM 템플릿을 Azure Pipeline과 같은 CI/CD 도구에 통합도 가능하며, Azure DevOps 및 ARM 템플릿 작업을 사용하여 프로젝트를 지속적으로 빌드 및 배포할 수 있습니다. 템플릿의 파일은 schema, contentVerison, apiProfile, parameters(secureString, secureObject), variables, functions, resources, output의 요소로 구성됩니다.

또한 배포 방식에는 로컬 템플릿 배포(Azure PowerShell, Azure CLI), 연결된 템플릿 배포(여러 저장된 템플릿), 지속적인 배포 파이프라인(Azure Pipelines, Github Actions)에서 배포 3가지가 있습니다.

마지막으로 Azure Resource Manager 템플릿은 idempotent(멱등성)로 몇번을 실행해도 결과가 동일하게 되며, 내용 변경 없이 템플릿을 두 번 실행하면, 리소스가 이미 있고 속성에서 변경 내용이 검색되지 않으면 아무 작업도 수행되지 않습니다. 리소스가 이미 있고 속성이 변경된 경우 리소스가 업데이트됩니다. 리소스가 없으면 리소스가 만들어집니다.