Azure- 8회차

박형준·2024년 5월 23일

Configure Virtual Machines

Review Cloud Services Responsibilities

Plan Virtual Machines

  • Start with the network

  • Name the virtual machine

  • Choose a location

    • Each region has different hardware and service capabilities
    • Locate Virtual Machines as close as possible to your users
      and to ensure compliance and legal obligations
  • Consider pricing ( Compute 비용( CPU, memory ), Os 비용, storage 비용 등 )

Determine Virtual Machine Sizing

Determine Virtual Machine Storage

  • 각 Azure VM에는 두 개 이상의 디스크가 있습니다:

    • OS 디스크

    • 임시 디스크 (모든 SKU에는 없으며, 해당 디스크에 저장된 컨텐츠는 손실될 수 있음)

    • 데이터 디스크 (선택 사항)

  • OS 및 데이터 디스크는 Azure Storage 계정에 저장됩니다:

    • Azure 기반의 저장소 서비스

    • 표준 (HDD, SSD) 또는 프리미엄 (SSD), 또는 울트라 (SSD)

  • Azure VM은 managed disks를 사용합니다. ( 자동 관리 )

"Fault Domains(장애 도메인)": 클라우드 환경에서 하드웨어 장애로부터 가상 머신이나 애플리케이션을 보호하기 위한 개념입니다. Azure에서는 가용성 집합(Availability Set)을 통해 가상 머신을 여러 개의 장애 도메인에 분산시켜 가상 머신 간의 단일 지점 장애(SPOF)를 방지합니다.
각 장애 도메인은 고유한 전원 공급 및 랙(랙)을 가지고 있어, 하드웨어 장애가 발생해도 다른 장애 도메인에 있는 가상 머신은 영향을 받지 않고 계속 작동할 수 있습니다. 이를 통해 시스템의 가용성과 내결함성을 향상시킬 수 있습니다.


Connect to Windows Virtual Machines

  • Remote Desktop Protocol (RDP)는 GUI 세션을 생성하고 TCP 포트 3389에서 들어오는 트래픽을 수락합니다. 이를 통해 원격으로 Windows 기반 시스템에 접속하여 GUI 환경으로 작업할 수 있습니다.

  • WinRM은 명령줄 세션을 생성하여 스크립트를 실행할 수 있는 원격 관리 도구입니다. 주로 PowerShell 스크립트를 실행하거나 시스템 관리 작업을 수행할 때 사용됩니다. WinRM은 Windows 원격 관리 서비스를 사용하여 원격 시스템에 명령을 보내고 결과를 받아올 수 있게 해줍니다.

연결하기 위한 조건: public IP와 인바운드 조건

Connect to Linux Virtual Machines

  • SSH는 암호화된 연결 프로토콜로, 보안되지 않은 연결을 통해 안전한 로그인을 가능하게 합니다. SSH를 사용하여 시스템에 접속할 때, 공개 키 및 비밀 키를 사용하여 인증할 수 있습니다.

  • 공개 키는 다른 사용자들과 공유되어도 안전한 키이며, 비밀 키는 절대로 공유해서는 안 되는 키입니다. SSH로 인증할 때, 클라이언트는 공개 키를 사용하여 서버에 접속을 요청하고, 서버는 해당 공개 키에 맞는 비밀 키를 소유한 클라이언트인지 확인합니다. 이를 통해 안전하고 효율적인 원격 접속이 가능합니다.

Key Vault: Azure에서 제공하는 서비스로, 보안적으로 중요한 정보를 안전하게 저장하고 제어할 수 있는 서비스입니다. Key Vault를 사용하면 비밀, 암호, 인증서, 키 등의 중요한 정보를 안전하게 보관하고 암호화 키 및 기타 비밀 정보를 관리할 수 있습니다.

Connect to Virtual Machines

  • Bastion 서브넷은 Azure Portal을 통해 SSL을 통한 RDP 또는 SSH 접속을 제공합니다.

  • Bastion 서비스를 사용하면 외부에서 가상 머신에 직접 RDP(원격 데스크톱 프로토콜) 또는 SSH(보안 셸 프로토콜)으로 접속할 필요 없이, Azure Portal을 통해 안전한 방식으로 접속할 수 있습니다. 이는 Windows 기반 가상 머신의 경우 RDP를, Linux 기반 가상 머신의 경우 SSH를 통해 접속할 수 있음을 의미합니다. ( 퍼블릭 IP 필요 없다 )

Azure Bastion

  • 주요 기능:

    • Azure 포털에서 RDP 및 SSH 직접 접속

    • RDP/SSH를 위한 TLS를 통한 원격 세션 및 방화벽 통과

    • Azure VM에 공용 IP가 필요하지 않음

    • NSG 관리의 수고 없음

    • port scanning에 대한 보호

    • zero-day exploits에 대한 보호

  • 인스턴스 및 호스트 스케일링:

    • 인스턴스는 Azure Bastion을 구성할 때 생성되는 최적화된 Azure VM으로, Azure에 의해 완전히 관리됩니다.

    • Basic SKU의 경우 두 개의 인스턴스가 생성됩니다.

    • Standard SKU의 경우 인스턴스의 수를 지정할 수 있습니다.

    • 각 인스턴스는 25개의 동시 RDP 연결 및 50개의 동시 SSH 연결을 지원할 수 있습니다.

    • 인스턴스는 AzureBastionSubnet에 생성됩니다.

    • 기본적으로 RDP 및 SSH에 사용되는 인바운드 포트는 각각 3389와 22입니다.

port scanning: 네트워크 보안에서 중요한 문제 중 하나입니다. 이는 공격자가 네트워크에 연결된 컴퓨터의 포트를 대상으로 스캔하여 취약점을 찾는 행위를 의미합니다. 포트 스캐닝은 공격자가 시스템에 침입하거나 취약점을 악용하기 위한 사전 단계로서 사용될 수 있습니다.
Azure Bastion 서비스는 포트 스캐닝에 대한 보호를 제공합니다. 외부에서 가상 머신에 직접적인 접속을 허용하지 않기 때문에, 포트 스캐닝을 통한 취약점 노출 가능성이 줄어듭니다. 또한 Bastion 서비스는 네트워크 레벨에서 보안을 제공하여 포트 스캐닝 공격으로부터 가상 머신을 보호합니다.

zero-day exploits: 보안 취약점이 발견되었을 때, 해당 취약점에 대한 보안 업데이트가 제공되기 전에 공격자가 해당 취약점을 악용하는 공격을 말합니다. 이러한 취약점은 제로데이 취약점으로 알려져 있으며, 해당 취약점을 이용한 공격은 매우 위험할 수 있습니다.
Azure Bastion 서비스는 제로데이 공격에 대한 보호를 제공합니다. Azure Bastion은 가상 네트워크에 프록시로써 작동하고, 직접적인 외부 연결을 허용하지 않기 때문에, 가상 머신에 대한 보호가 강화됩니다. 또한 Microsoft는 Azure 서비스의 보안을 지속적으로 강화하기 위해 노력하고 있으며, 새로운 보안 취약점이 발견될 경우 신속하게 대응하여 해당 취약점에 대한 패치를 제공합니다.

Azure Bastion Configuration

standard 유형은 shared link 가능


Configure Virtual Machine Availability

Plan for Maintenance and Downtime

  • 예기치 않은 하드웨어 유지보수:

    • 플랫폼이 장애를 예측하면, 예기치 않은 하드웨어 유지보수 이벤트를 발행합니다.

    • 조치: 라이브 마이그레이션

  • 예기치 않은 다운타임:

    • 가상 머신이 예기치 않게 실패할 때 발생하는 이벤트

    • 조치: 자동으로 마이그레이션(자동 복구)

  • 계획된 유지보수:

    • 주기적으로 Azure 플랫폼에 대한 업데이트를 수행하는 이벤트

    • 조치: 별도의 조치 없음

  • 이러한 조치는 Azure의 신뢰성과 가용성을 유지하기 위해 구성되어 있습니다.

Setup Availability Sets

  • 가용성 집합(Availability Set)을 사용하여 다수의 가상 머신을 구성하는 방법은 다음과 같습니다:

  • 여러 가상 머신을 가용성 집합에 구성:

    • 하나의 가용성 집합에 각각의 가상 머신을 구성하여 단일 실패 도메인(Single Fault Domain)과 단일 업데이트 도메인(Single Update Domain)에 걸쳐 배치함으로써 가용성을 향상시킵니다.
  • 각 응용 프로그램 티어를 별도의 가용성 집합에 구성:

    • 각 응용 프로그램 티어(웹 서버, 애플리케이션 서버, 데이터베이스 등)를 별도의 가용성 집합에 구성하여 단일 실패 도메인과 단일 업데이트 도메인에 걸쳐 배치하여 가용성을 극대화합니다.
  • 로드 밸런서와 가용성 집합을 결합:

    • 로드 밸런서를 사용하여 여러 가용성 집합에 속한 가상 머신 간에 트래픽을 분산시켜 가용성과 성능을 향상시킵니다.
  • 관리형 디스크 사용:

    • 관리형 디스크를 사용하여 가상 머신의 디스크를 관리하고, 가상 머신 간의 신뢰성과 성능을 향상시킵니다.

Review Update and Fault Domains

  • 업데이트 도메인(Update Domains)은 Azure가 배포 전체에 걸쳐 점진적이거나 롤링 업그레이드를 수행할 수 있도록 합니다. 계획된 유지보수 중에는 한 번에 하나의 업데이트 도메인만 재부팅됩니다.

  • 장애 도메인(Fault Domains)은 공통의 하드웨어, 스위치를 공유하며 단일 장애 지점을 공유하는 가상 머신의 그룹입니다. 가용성 집합에 있는 VM은 적어도 두 개의 장애 도메인에 배치됩니다.

Review Availability Zones

  • 지역 내 고유한 물리적 위치는 독립된 전원, 냉각 및 네트워킹을 갖춘 데이터 센터를 포함합니다. 이는 데이터 센터 장애로부터 보호하며 업데이트 도메인과 장애 도메인을 결합하여 99.99%의 SLA를 제공합니다.

  • 이러한 설명은 Azure의 가용성 영역(Availability Zone)에 대한 특징을 나타냅니다. 가용성 영역은 지역 내에서 고유한 물리적 위치에 위치한 독립된 데이터 센터 그룹으로, 각각이 독립된 전원, 냉각 및 네트워킹을 보유하여 데이터 센터 수준의 신뢰성을 제공합니다. 또한 업데이트 도메인과 장애 도메인을 결합하여 가상 머신과 서비스의 가용성을 높이고 장애로부터 보호합니다.

Compare Vertical to Horizontal Scaling

  • Vertical scaling(스케일 업 및 스케일 다운)은 주로 수동으로 수행되며 워크로드의 단일 인스턴스의 성능을 증가 또는 감소시키는 과정입니다.

  • Horizontal scaling(스케일 아웃 및 스케일 인)은 주로 자동화되며 워크로드 인스턴스의 수를 증가 또는 감소시키는 과정입니다.


Create Scale Sets

  • 인스턴스 수: 스케일 세트 내의 가상 머신의 수 (0에서 1000까지)

  • 인스턴스 크기: 스케일 세트 내 각 가상 머신의 크기

  • Azure Spot 인스턴스: 할인된 가격에 미사용 용량을 활용하는 옵션

  • 관리형 디스크 사용

  • 100개 이상의 인스턴스로의 확장 가능하도록 설정

Configure Autoscale

가상 머신 인스턴스의 최소, 최대 및 기본 수를 정의하고, 스케일 아웃 및 스케일 인 매개변수를 사용하여 더 고급화된 스케일 세트를 생성할 수 있습니다.


Configure Virtual Machine Extensions

Implement Virtual Machine Extensions

  • 확장(Extensions)은 배포 후 가상 머신 구성 및 자동화 작업을 제공하는 작은 응용 프로그램입니다.

  • 이러한 확장은 Azure CLI, PowerShell, Azure Resource Manager 템플릿 및 Azure 포털을 통해 관리될 수 있으며, 새 가상 머신 배포와 번들로 제공되거나 기존 시스템에 적용될 수 있습니다. 또한 Windows 및 Linux 시스템에 대해 각각 다른 확장이 제공됩니다.

Implement Custom Script Extensions

  • 확장 스크립트는 간단하거나 복잡할 수 있습니다.

  • 확장은 90분의 실행 시간을 갖습니다.

  • 가용성을 보장하기 위해 의존성을 이중으로 확인해야 합니다.

  • 발생 가능한 오류에 대비해야 합니다.

  • 민감한 정보를 보호하고 암호화해야 합니다.

Implement Desired State Configuration

  • Configuration block(s)은 이름을 가지고 있습니다.

  • Node blocks은 구성 중인 컴퓨터 또는 가상 머신을 정의합니다.

  • Resource block(s)은 리소스 및 해당 속성을 구성합니다.

  • 많은 내장 구성 리소스들이 존재합니다.


프로젝트 참고자료

  • azure ppt 및 azure 아키텍처 센터 -> well 아키텍처 프레임워크

0개의 댓글