AZ-104 시험에서 컴퓨팅 도메인은 전체 문제의 20~25%를 차지합니다. 즉, 다섯 문제 중 하나는 이 영역에서 나온다는 뜻입니다. 그중에서도 VM(가상 머신) 관리와 배포 자동화가 핵심입니다. 처음 들으면 어렵게 느껴지지만, 일상적인 비유로 생각하면 생각보다 훨씬 쉽습니다.
가상 머신 (Virtual Machine)
VM이란 무엇인가요?
VM은 클라우드에 있는 가상의 컴퓨터입니다. 실제 컴퓨터를 직접 구매하거나 설치할 필요 없이, 필요한 만큼 빌려서 쓸 수 있습니다. 마치 호텔 방을 예약하는 것과 비슷합니다. 호텔에는 싱글룸, 더블룸, 스위트룸 등 다양한 크기가 있고, 내가 필요한 기간만큼 사용한 뒤 체크아웃하면 됩니다. VM도 마찬가지로 작은 것부터 매우 큰 것까지 다양한 크기가 있으며, 필요에 따라 변경하거나 삭제할 수 있습니다.
VM 크기 및 디스크
VM 크기(SKU)란?
VM 크기(SKU)는 그 VM의 성능 사양을 결정합니다. 쉽게 말해, "얼마나 빠른 컴퓨터를 빌릴 것인가"를 고르는 것입니다. 크기는 CPU 개수, 메모리(RAM), 저장 디스크 성능을 한꺼번에 정해줍니다.
예를 들어, 사무용 문서 작업만 하는 직원의 컴퓨터와 3D 렌더링을 하는 디자이너의 컴퓨터는 사양이 달라야 하는 것처럼, 워크로드(실제로 수행하는 작업)에 맞는 크기를 골라야 비용 낭비 없이 효율적으로 쓸 수 있습니다.
관리 디스크 유형
VM에는 하드디스크처럼 저장 공간이 필요합니다. Azure에서는 이 저장 공간을 "관리 디스크"라고 부르며, 용도에 따라 세 가지 종류를 선택할 수 있습니다.
| 디스크 유형 | 한 줄 요약 | 주요 사용 상황 | |-----------|----------|-------------| | Premium SSD | 가장 빠르고 안정적 | 실제 서비스 운영 (프로덕션) | | Standard SSD | 중간 성능, 합리적 비용 | 개발 및 테스트 환경 | | Standard HDD | 느리지만 저렴 | 백업, 로그 보관 등 비핵심 데이터 |
Premium SSD는 은행이나 쇼핑몰처럼 24시간 빠르게 응답해야 하는 실제 서비스에 적합합니다. IOPS(초당 입출력 처리 횟수)가 높아 대량의 데이터 요청을 빠르게 처리합니다.
Standard SSD는 개발자가 새 기능을 만들거나 테스트할 때 쓰는 환경에 적합합니다. 실제 고객에게 노출되지 않으므로 속도보다 비용 효율이 더 중요합니다.
Standard HDD는 오래된 로그 파일이나 가끔 꺼내볼 백업 데이터처럼, 속도보다는 저렴하게 보관하는 것이 목적인 데이터에 적합합니다.
시험 팁: "프로덕션 워크로드"가 나오면 Premium SSD, "개발/테스트"가 나오면 Standard SSD를 떠올리세요.
가용성 옵션
왜 가용성이 중요한가요?
상상해 보세요. 여러분이 운영하는 온라인 쇼핑몰 서버가 갑자기 꺼진다면 어떻게 될까요? 고객이 구매를 못 하고, 매출이 떨어지고, 신뢰를 잃게 됩니다. Azure는 이런 상황을 막기 위해 VM을 여러 곳에 나눠 배치하는 방법을 제공합니다. 하나가 꺼져도 다른 것이 계속 동작하도록 하는 것입니다.
가용성 집합 (Availability Set)
가용성 집합은 같은 데이터센터 안에서 VM을 물리적으로 분리해 배치하는 방법입니다. 두 가지 핵심 개념이 있습니다.
장애 도메인(Fault Domain, FD)은 동일한 전원 공급 장치와 네트워크 스위치를 공유하는 VM 그룹입니다. 마치 한 건물의 같은 전기 회로에 연결된 기기들처럼, 그 회로가 끊기면 모두 꺼집니다. 그래서 Azure는 VM들을 서로 다른 장애 도메인에 배치해서, 한쪽 전원이 나가도 다른 VM은 살아있도록 합니다.
업데이트 도메인(Update Domain, UD)은 Azure가 유지보수(업데이트)를 할 때 동시에 재시작되는 VM 그룹입니다. Azure는 모든 VM을 한꺼번에 재시작하지 않고, 업데이트 도메인별로 순서대로 처리합니다. 덕분에 유지보수 중에도 서비스가 중단되지 않습니다.
| 옵션 | 보호 대상 | 작동 방식 | |------|---------|----------| | 가용성 집합 | 하드웨어 장애, 유지보수 | 장애 도메인(FD) + 업데이트 도메인(UD)으로 분리 | | 가용성 영역 | 데이터센터 전체 장애 | 리전 내 물리적으로 완전히 분리된 건물에 배치 |
!Availability Set vs Availability Zone
가용성 영역 (Availability Zone)
가용성 집합이 "같은 건물 안에서 방을 나누는 것"이라면, 가용성 영역은 "아예 다른 건물에 배치하는 것"입니다. 서울 리전에는 여러 개의 물리적 데이터센터가 있는데, 각각을 가용성 영역이라고 부릅니다. 한 데이터센터에 화재나 정전이 발생해도 다른 영역에 있는 VM은 멀쩡히 동작합니다.
가용성 집합: 하나의 데이터센터 내 하드웨어 장애로부터 보호 가용성 영역: 데이터센터 전체 장애(자연재해, 정전 등)로부터 보호
VM Scale Sets (VMSS)
VMSS란?
VM Scale Sets는 동일한 VM을 자동으로 여러 개 늘리거나 줄이는 기능입니다. 포털에서 직접 VM을 하나씩 추가하지 않아도, 정해진 규칙에 따라 자동으로 확장됩니다.
예를 들어, 오전 9시부터 오후 6시까지 직원들이 사내 시스템을 많이 사용한다고 가정해 보겠습니다. 업무 시간에는 VM을 10대로 늘리고, 퇴근 후에는 2대로 줄이도록 예약해 두면 됩니다. 그러면 필요할 때만 자원을 많이 쓰고, 필요 없을 때는 비용을 절감할 수 있습니다.
자동 스케일링
스케일링 규칙은 다양한 기준으로 설정할 수 있습니다.
CPU 기준: "CPU 사용률이 80%를 넘으면 VM을 2대 추가해라" 메모리 기준: "메모리 사용률이 70%를 넘으면 확장해라" 스케줄 기준: "매주 월요일 오전 8시에는 최소 5대를 유지해라"
이렇게 설정해두면 트래픽이 갑자기 몰려도 자동으로 대응하고, 한가할 때는 자동으로 줄어들어 비용을 아낄 수 있습니다.
업그레이드 정책
VM Scale Sets에서 VM의 이미지를 새 버전으로 업데이트할 때 어떤 방식으로 할지 정하는 것이 업그레이드 정책입니다.
자동(Automatic): Azure가 알아서 모든 인스턴스를 자동으로 업데이트합니다. 빠르지만 일시적으로 서비스에 영향이 생길 수 있습니다. 수동(Manual): 관리자가 직접 원하는 시점에 업데이트를 실행합니다. 가장 통제력이 높습니다. 롤링(Rolling): 일부 인스턴스부터 순차적으로 업데이트합니다. 서비스 중단 없이 안전하게 업데이트하고 싶을 때 사용합니다.
ARM 템플릿 및 Bicep
배포 자동화란?
여러분이 쇼핑몰을 새로 오픈할 때마다 VM, 네트워크, 데이터베이스, 저장소를 Azure 포털에서 하나하나 클릭해서 만든다고 상상해 보세요. 매번 설정이 조금씩 달라질 수 있고, 실수가 생길 수도 있습니다. 배포 자동화는 "필요한 인프라 구성을 미리 코드로 적어두고, 버튼 하나로 동일하게 반복 생성하는 것"입니다. 레시피를 보고 요리하는 것처럼, 한 번 좋은 레시피를 만들어두면 누가 만들어도 같은 결과물이 나옵니다.
ARM 템플릿
ARM 템플릿은 JSON 형식으로 Azure 리소스를 선언적으로 정의하는 파일입니다. "선언적"이라는 말은 "어떻게 만들지"가 아니라 "무엇을 만들지"를 적는 것입니다. 요리로 비유하면, 과정보다 최종 완성된 요리의 모습을 설명하는 방식입니다.
주요 섹션
ARM 템플릿은 크게 네 가지 섹션으로 나뉩니다.
parameters(매개변수): 템플릿을 실행할 때 외부에서 입력받는 값입니다. 예를 들어 VM 이름이나 위치(리전)를 그때그때 다르게 넣을 수 있습니다. variables(변수): 템플릿 안에서 여러 번 쓰이는 값을 한 곳에 모아두는 공간입니다. 한 번 바꾸면 전체에 적용됩니다. resources(리소스): 실제로 만들 Azure 리소스(VM, 네트워크, 디스크 등)를 정의합니다. 가장 핵심 섹션입니다. outputs(출력값): 배포 완료 후 필요한 정보(예: VM의 IP 주소)를 출력합니다.
유용한 기능들
템플릿 내보내기는 이미 Azure에 만들어진 리소스에서 ARM 템플릿을 자동으로 추출하는 기능입니다. 포털에서 직접 만든 환경을 코드로 저장하고 싶을 때 유용합니다.
What-if는 실제 배포 전에 "이 템플릿을 실행하면 어떤 변화가 생기나요?"를 미리 확인하는 기능입니다. 처방전을 조제하기 전에 부작용을 먼저 체크하는 것과 같습니다. 예상치 못한 리소스 삭제나 변경을 미리 발견할 수 있습니다.
Bicep
Bicep이란?
Bicep은 ARM 템플릿을 더 읽기 쉽게 만든 언어입니다. ARM 템플릿의 JSON은 괄호와 따옴표가 많아 복잡해 보일 수 있습니다. Bicep은 같은 내용을 훨씬 간결하고 직관적인 문법으로 표현합니다.
쉽게 비유하면, ARM 템플릿이 영어 법률 문서라면 Bicep은 같은 내용을 쉬운 말로 풀어쓴 안내서 같은 것입니다. 내용은 같지만 읽기가 훨씬 편합니다.
ARM 템플릿과의 관계
중요한 점은, Bicep으로 작성하더라도 실제 Azure에 배포될 때는 자동으로 ARM 템플릿(JSON)으로 변환된다는 것입니다. 즉, 최종 실행은 ARM 템플릿이 하고, Bicep은 사람이 작성하기 편한 언어일 뿐입니다.
또한 ARM 템플릿과 Bicep은 양방향 변환이 가능합니다. 기존 ARM 템플릿을 Bicep으로 바꿀 수도 있고, Bicep을 ARM 템플릿으로 내보낼 수도 있습니다.
!ARM 템플릿 vs Bicep
시험 핵심 정리