728x90

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 크기

VM Storage

Azure VM

각 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 설치하기

Apache Web Server 설치하기

Custom data 추가

Custom Data

  • Windows Server 설치시 IIS Web 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

VM 연결하기

 

Windows VM 연결하기

Windows VM 연결하기

RDP에서 GUI 세션을 생성하고 TCP 포트 3389에서 인바운드 트래픽을 허용

WinRM은 스크립트를 실행할 수 있도록 명령줄 세션을 만든다

Bastion Host

SSH

Windows Admin Center

Serial console

 

Linux VM 연결하기

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 Vs Update Domain

Fault Domain : VM을 물리적 서버 랙 단위로 격리

Update Domain : VM을 논리적 업데이트 그룹 단위로 격리

Fault Domain이 2개, Update Domain이 5개인 경우, VM은 두 개의 서로 다른 물리적 랙에 배치되고, 다섯 개의 서로

   다른 논리적 업데이트 그룹으로 분산된다.

Availability Sets

하나의 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가 물리적 분리와 논리적 분리를 동시에 제공하여, 하드웨어 장애와 소프트웨어 업데이트 모두에 대한 고가용성을 보장한다.

Availabliity Zone

 

Demo-Availability Set

VM을 생성할 때 기존 Availability Set에 추가해야 한다(##중요)

VM을 만든 후에 추가적인 작업으로 Availability Set에 넣을 수는 없다.

Availability Set 이름

  • AVSet-Web

  • AVSet-DB

FD: 2

UD: 2

300x250