Virtual Machine
• Virtual Machine만이 할 수 있는 것
• 회사가 공급하고자 하는 서비스(Web, DB 등등)를 물리적 서버, 가상서버, Container, Serverless 등등으로 할 수 있다.
• Virtual Machine은 Physical Machine처럼 Kernel을 소유하고 있고, Legacy Application도 서비스 할 수 있는
장점이 있다.
• 물리적 컴퓨터에서 하는 서비스는 모두 VM에서도 할 수 있다.
• Azure Cloud에서는 VM, Container, Serverless로 서비스를 할 수 있으며, Container나 Serverless보다는
VM으로 서비스를 제공하는 경우를 알아본다.
• 특수 하드웨어 의존성
• GPU와 같은 특수 하드웨어를 필요로 하는 애플리케이션은 물리적 머신이나 VM에서만 제대로 작동할 수 있다.
• 예를 들어, 고성능 컴퓨팅(HPC) 작업, AI/ML 모델 훈련 등
• 고정된 자원 요구
• 일정 수준의 자원을 지속적으로 요구하는 애플리케이션은 컨테이너나 서버리스 환경에서의 자원 Auto scaling과 잘 맞지
않을 수 있다.
• 예를 들어, 대규모 데이터베이스 시스템
• Container나 Serverless보다는 VM으로 서비스를 제공하는 경우를 알아본다
• 커널 수준의 제어 필요
• 커널 모듈 설치나 커널 파라미터 변경이 필요한 애플리케이션은 컨테이너나 서버리스 환경에서 제한될 수 있다.
• 예를 들어, 네트워크 트래픽 분석을 위한 특수 소프트웨어.특수 하드웨어 의존성
• 내부 네트워크 접근 필요
• 내부 네트워크에 접근해야 하거나 특정 네트워크 구성에 의존하는 애플리케이션은 컨테이너화하기 어려울 수 있다.
• 예를 들어, On-Premises ERP 시스템
• 고도의 보안 요구사항
• 특정 보안 요건을 충족하기 위해 물리적 서버에서만 운영해야 하는 애플리케이션이 있다.
• 예를 들어, 특정 금융 애플리케이션이나 규제가 엄격한 의료 데이터 처리 시스템.
• Azure Virtual Machine 특징
• Azure Cloud의 Virtual Machine (VM)은 Microsoft의 클라우드 컴퓨팅 플랫폼인 Azure에서 제공하는
가상화된 컴퓨팅 리소스이다.
• 유연한 크기 및 성능 선택
• 다양한 크기와 성능을 갖춘 VM 시리즈를 선택할 수 있다. 일반 작업용의 경제적인 크기부터 고성능 컴퓨팅을 위한 크기까지
다양한 옵션이 있다
• 운영 체제 지원
• Windows와 Linux를 포함한 다양한 운영 체제를 지원한다. 사용자는 필요한 OS 이미지에서 선택하거나 자체 이미지를 사용할 수 있다.
• 확장성 및 가용성
• 필요에 따라 VM의 수와 성능을 확장하거나 축소할 수 있다. 또한, Azure Availability Zones 및 Availability Sets를 사용하여
고가용성을 유지한다.
• 관리 용이성
• Azure Portal, Azure CLI, PowerShell 등을 통해 쉽게 VM을 관리할 수 있다.
또한, 자동화 스크립트와 템플릿을 이용해 배포 및 관리를 자동화
• 보안
• 네트워크 보안 그룹(NSG), Azure Security Center, Azure Bastion 등을 사용하여 VM을 보호할 수 있다.
• 데이터 암호화 및 정기적인 보안 업데이트를 지원한다
• 비용 효율성
• 사용한 만큼만 비용을 지불하는 종량제 요금제(Pay as you go)를 비롯하여 Reserved Instance, Spot Instance를 통해
비용을 절감할 수 있다.
• Azure Virtual Machine 사용 예시
• 웹 서버 및 애플리케이션 서버
• Azure VM을 사용하여 웹 애플리케이션을 호스팅하고 다양한 애플리케이션 서비스를 제공할 수 있다
• LAMP 또는 MEAN 스택과 같은 구성을 쉽게 배포할 수 있다
• 개발 및 테스트 환경
• 개발자와 테스터들이 다양한 환경을 빠르게 구축하고 테스트할 수 있다.
필요에 따라 쉽게 복제하거나 삭제할 수 있어 유연한 개발 환경을 제공
• 데이터베이스 서버
• SQL Server, MySQL, PostgreSQL 등의 데이터베이스 서버를 VM에 설치하여 운영할 수 있다.
데이터베이스 클러스터를 구축하여 고가용성을 확보할 수 있다.
• 고성능 컴퓨팅(HPC)
• GPU가 장착된 VM을 사용하여 AI 모델 훈련, 데이터 분석, 과학 계산 등 고성능 컴퓨팅 작업을 수행할 수 있다.
• 백업 및 재해 복구
• On-Premises 환경의 Backup 서버로 사용하거나 재해 복구(DR) 계획의 일환으로 Azure VM을 활용할 수 있다.
Azure Site Recovery를 통해 복구 계획을 쉽게 구성할 수 있다
• 가상 데스크탑 인프라(VDI)
• 원격 데스크탑 환경을 제공하여 사용자가 어디서나 접근할 수 있는 가상 데스크탑 인프라를 구축할 수 있다.
Azure Virtual Desktop을 통해 관리 및 배포를 간소화할 수 있다.
• VM 생성시 고려 사항
• Virtual Network에 연결하여 구동하기
• 각 회사의 VM 이름 규칙에 따라 VM 이름 지정하기
• VM 위치 결정
• 한 번 결정된 위치(Region)는 변경할 수 없다
• 연결을 원하는 VNet의 위치와 같은 위치를 선택해야 한다
• Region마다 hardware와 Service Capability가 다를 수 있다
• VM 크기 결정
• 일반적인 용도는 D 시리즈
• 가격 책정 모델의 이해
• 컴퓨팅 비용
• 스토리지 비용(사용량 기반 및 예약 인스턴스)
• VM이 사용할 Storage 고려
• OS 선택 및 관리자 계정 및 암호 설정하기
• VM 크기 조정하기
• Server가 운영 중에서 크기를 변경할 수 있다.

• VM Storage

• 각 Azure VM에는 두 개 이상의 디스크가 포함되어 있다.
• OS 디스크
• 임시 디스크(내용 손실 가능)
• 데이터 디스크(선택 사항)
• OS 및 데이터 디스크는 Azure Storage 계정에 있다.
• Azure 기반 스토리지 서비스
• 표준(HDD, SSD) 또는 프리미엄(SSD) 또는 울트라(SSD)
• Azure VM을 만들 때 선택할 수 있는 디스크는 다음과 같다
• Managed disk (recommended)
• Unmanaged disksVirtual Machine
• VM Storage
• Temporary disk
• Temporary Disk는 휘발성 디스크로, VM이 재부팅되거나 중지된 후 다시 시작되면 데이터가 사라진다.
따라서 중요한 데이터를 저장하는 용도로 사용해서는 안된다. 중요한 데이터는 Azure Managed Disks, Azure Blob Storage 등
영구 저장소에 저장해야 한다.
• OS disk 및 Data disk와 분리되어 있어서 OS 디스크의 용량 및 성능을 최적화할 수 있다.
애플리케이션에서 임시 데이터를 처리할 때, 데이터 디스크의 성능에 영향을 미치지 않는다.
• 일반적으로 SSD로 제공되며, 고속 I/O 성능을 제공하여 작업 성능을 향상시킨다.
• Temporary disk 용도
• 웹 서버 캐시: 웹 애플리케이션의 캐시 파일을 Temporary Disk에 저장하여 빠른 접근 속도를 제공
• 로그 파일 저장: 애플리케이션 로그 파일을 임시로 저장하여 분석 후 삭제
• 중간 계산 데이터: 데이터 처리 작업 중 중간 결과를 저장하여 처리 완료 후 삭제
• Linux VM: SWAP 공간으로 구성될 수 있다. SWAP 공간은 메모리 부족 시 디스크를 메모리처럼 사용하는 방식으로,
시스템의 안정성을 높이는 데 기여한다.
• Custom data 추가
• VM 생성할 때 제일 마지막 단계에서 Script 등을 추가하여 VM이 생성될 때 작업하는 내용을 추가할 수 있다.
• Extensions
• VM Applications
• Custom Data
• VM이 프로비저닝(즉, 생성)되는 동안 스크립트, 구성 파일 또는 기타 데이터를 전달하는 데 사용된다.
이 사용자 데이터는 VM에 저장되며 주로 초기 설정 및 구성에 사용된다
• Linux VM 생성시 Apache Web Server 설치하기

• Custom data 추가
• Custom Data
• Windows Server 설치시 IIS Web Server 설치하기

• VM 연결하기
• Remote Desktop Protocol for Windows-based Virtual Machines
• Secure Shell Protocol for Linux based Virtual Machines
• Bastion Subnet for RDP/SSH through the Portal over SSLVirtual Machine

• Windows VM 연결하기

• RDP에서 GUI 세션을 생성하고 TCP 포트 3389에서 인바운드 트래픽을 허용
• WinRM은 스크립트를 실행할 수 있도록 명령줄 세션을 만든다
• Bastion Host
• SSH
• Windows Admin Center
• Serial console
• Linux VM 연결하기

• SSH 연결
• Public key/Private key 방식
• 암호 방식
• SSH using Azure CLI
• Bastion HostDemo-Virtual Machine
• Portal에서 Windows Server 2022 VM 만들기
• Azure 가상 머신 만들기
• 가상 머신에 연결
• RDP
• Bastion Host
• 웹 서버 역할 설치
• IIS 환영 페이지 보기
• NSG에서 80 Inbound rule 제거한 후 SSH Tunnel로 접속하기
• OpenSSH 설치
• ssh -L 80:localhost:80 adminuser@20.59.112.236
Demo-Virtual Machine
• Portal에서 Linux VM 만들기
• Azure 가상 머신(ubuntu) 만들기
• SSH key 생성 및 다운로드
• 가상 머신에 연결
• SSH key
• SSH using Azure CLI
• Bastion Host
• nginx Web server Package 설치 및 시작하기
• 홈페이지 접속하기
• NSG에서 80 Inbound rule 제거한 후 SSH Tunnel로 접속하기
• ssh -L 80:localhost:80 adminuser@20.59.112.236
Virtual Machine
• Maintenance vs. Downtime
• Azure에서 VM으로 Web, DB, Application 서비스를 운영하다 보면 장애가 발생할 수도 있다.
• Unplanned Hardware Maintenance (예기치 않은 하드웨어 유지보수)
• Azure 데이터센터의 하드웨어 구성 요소에서 문제가 발견되었을 때 발생한다.
예를 들어, 서버의 디스크 드라이브나 네트워크 카드와 같은 장비가 고장날 수 있다.
Azure는 이러한 문제를 해결하기 위해 긴급하게 하드웨어를 교체하거나 수리할 수 있다
• Unexpected Downtime (예기치 않은 다운타임)
• 예상치 못한 이유로 인해 서비스가 중단되는 경우를 말한다. 네트워크 장애, 데이터센터 정전, 소프트웨어 버그 등의 다양한 이유로
발생할 수 있다.
• Planned Maintenance (계획된 유지보수)
• Azure는 주기적으로 시스템 업데이트, 보안 패치 적용, 하드웨어 업그레이드 등을 위해 계획된 유지보수를 진행한다.
이러한 유지보수 작업은 사전에 고객에게 공지되며, 가능한 영향을 최소화하도록 진행된다.
• Availability Set
• Availability Set에서 Fault Domain과 Update Domain 설정은 VM의 고가용성과 복원력을 보장하기 위해 사용된다
• Application 단위로 각각 다른 Availability Set을 사용한다
• Fault Domain
• Fault Domain (FD): 물리적 하드웨어의 고장(예: 전력 손실, 네트워크 스위치 오류)으로부터 격리된 그룹이다.
하나의 FD는 하나의 물리적 Rack을 의미한다
• Fault Domain은 하드웨어 장애가 발생할 수 있는 물리적 단위를 의미한다. 동일한 Fault Domain에 속한 VM들은 같은
물리적 Rack, 네트워크 스위치, 전력 공급 장치 등을 공유하기 때문에, 이들 중 하나에 문제가 발생하면 해당 Fault Domain의
모든 VM이 영향을 받을 수 있다.
• 하드웨어 고장 대비: 동일한 하드웨어 장애로부터 영향을 받지 않기 위해 VM을 서로 다른 Fault Domain에 배치한다.
예를 들어, 두 개 이상의 VM을 사용하여 서비스를 운영할 때, 이러한 VM들을 서로 다른 Fault Domain에 배치함으로써
한 Fault Domain에서 하드웨어 장애가 발생하더라도 다른 Fault Domain의 VM은 정상적으로 작동하도록 한다.
• 웹 애플리케이션 서버를 3개의 VM으로 구성하고 있는 경우, 각 VM을 서로 다른 Fault Domain에 배치하여 하나의 Fault Domain에서
장애가 발생하더라도 다른 두 개의 VM이 정상 작동하도록 설정한다.
• Update Domain
• Update Domain (UD): Azure가 계획된 유지보수 작업(예: 소프트웨어 업데이트)을 수행할 때 VM을 격리하기 위한 논리적 그룹이다.
• Update Domain은 VM에 대한 소프트웨어 업데이트나 유지보수를 수행할 때, 영향을 최소화하기 위해 사용되는 논리적 그룹이다.
Azure는 순차적으로 각 Update Domain에 속한 VM에 대해 업데이트를 수행하므로, 동시에 모든 VM이 업데이트로 인해 중단되지
않는다.
• 계획된 유지보수(Planned Maintenance) 대비: 운영 중인 서비스를 중단 없이 유지하기 위해 VM을 여러 Update Domain에
분산 배치합니다. 이렇게 하면 Azure가 업데이트를 수행할 때 하나의 Update Domain에 있는 VM만 업데이트되며, 나머지 VM은
계속 서비스를 제공할 수 있다.
• 데이터베이스 서버와 웹 서버를 각각 4개의 VM으로 구성한 경우, 각 VM을 서로 다른 Update Domain에 배치한다. Azure가
순차적으로 업데이트를 수행하므로, 업데이트 도중에도 서비스가 중단되지 않도록 설정한다.

• Fault Domain : VM을 물리적 서버 랙 단위로 격리
• Update Domain : VM을 논리적 업데이트 그룹 단위로 격리
• Fault Domain이 2개, Update Domain이 5개인 경우, VM은 두 개의 서로 다른 물리적 랙에 배치되고, 다섯 개의 서로
다른 논리적 업데이트 그룹으로 분산된다.

• 하나의 Availability Set에 여러 개의 VM으로 구성한다.
• VM에 설치된 Application이 다르다면 Application 단위로 Availability Set을 만들어 할당한다.
• Load Balancer 뒤에 있는 Backend Pool을 Availability Set 이름을 선택하는 것을 권장한다.
• VM의 Disk는 무조건 Managed disk를 사용한다.
• Availability Zone
• 한 Region에 지역적으로 떨어진 2개 이상의 Data Center로 구성된다.
• 이것은 Region만다 다를 수 있다.
• 각 Zone은 자체 전력, 네트워킹, 냉각 장치를 갖추고 있어 다른 Zone에서 발생하는 장애의 영향을 받지 않는다.
• 데이터 센터 오류로부터 보호한다.
• 99.99% SLA를 제공한다.
• 1 년에 약 52.56분의 다운타임을 허용
• FD와 UD를 결합한다.
• Availability Zones가 물리적 분리와 논리적 분리를 동시에 제공하여, 하드웨어 장애와 소프트웨어 업데이트 모두에 대한 고가용성을 보장한다.

• Demo-Availability Set
• VM을 생성할 때 기존 Availability Set에 추가해야 한다(##중요)
• VM을 만든 후에 추가적인 작업으로 Availability Set에 넣을 수는 없다.
• Availability Set 이름
• AVSet-Web
• AVSet-DB
• FD: 2
• UD: 2
'Study > Azure Cloud' 카테고리의 다른 글
[Azure 정리]5. Virtual Network & NSG (0) | 2025.01.02 |
---|---|
[Azure 정리]4. Storage Account 사용하기 (6) | 2025.01.02 |
[Azure 정리]2. Entra ID 및 Azure Policy (0) | 2024.12.31 |
[Azure 정리]1. Azure 소개 및 Azure 관리하기 (3) | 2024.12.31 |
AZ-104 연습문제 5(한글버전) (3) | 2024.09.14 |