8. 가상머신과 데이터베이스의 다운타임을 최소화 하고, 가용성을 최대한 끌어 올리기 위한 설계 방법
Azure의 가용성 옵션들
가상머신 가용성
- 가용성 집합(Availability Sets)
- 가용성 집합을 사용하여 VM을 여러 물리적 서버, 컴퓨팅 랙, 스토리지 유닛에 분산 배치한다.
- 이를 통해 데이터 센터 내의 하드웨어 장애로 인한 다운타임을 최소화할 수 있다.
- 가용성 영역(Availability Zones)
- Azure의 가용성 영역은 동일한 지역 내에서 물리적으로 분리된 데이터 센터이다.
- VM을 여러 가용성 영역에 배포하면 데이터 센터 전체 장애에도 서비스가 지속될 수 있다.
- 자동 복구(Automatic Healing)
- Azure는 VM의 상태를 모니터링하고 문제가 발생하면 자동으로 복구하는 기능을 제공한다.
- Azure는 VM의 상태를 모니터링하고 문제가 발생하면 자동으로 복구하는 기능을 제공한다.
데이터베이스 가용성
- Azure SQL Database의 고가용성
- Azure SQL Database는 기본적으로 고가용성을 제공하며, 자동 백업, 자동 복구, 읽기 가능한 보조 복제본 등을 통해 데이터 손실과 다운타임을 최소화한다.
- Geo-Replication(지리적 복제)
- DB를 여러 지역에 복제하여 지역 장애에도 DB를 계속 사용가능하도록 한다.
- 장애 조치
- 자동 장애 조치(failover)를 설정하여 메인 DB에 장애가 발생할 경우 서브 DB로 자동 전환되도록 한다.
- 자동 장애 조치(failover)를 설정하여 메인 DB에 장애가 발생할 경우 서브 DB로 자동 전환되도록 한다.
일반적인 전략
- LB 사용
- Azure Load Balancer를 사용하여 트래픽을 여러 VM에 분산시켜 단일 VM의 장애가 전체 서비스에 영향을 미치지 않도록 한다.
- 자동 확장(Autoscaling)
- Azure Autoscale을 사용하여 트래픽 증가에 따라 자동으로 VM 인스턴스를 추가하거나 감소시켜 가용성을 유지한다.
- 모니터링 및 경고
- Azure Monitor와 Azure Application Insights를 사용하여 시스템 상태를 지속적으로 모니터링하고, 문제가 발생할 경우 즉시 경고를 받을 수 있도록 설정한다.
- Azure Monitor와 Azure Application Insights를 사용하여 시스템 상태를 지속적으로 모니터링하고, 문제가 발생할 경우 즉시 경고를 받을 수 있도록 설정한다.
VM - DB의 다운타임 최소화, 가용성 최대 방안
VM
가용성 영역 사용
- 각 가용성 영역에 동일한 VM을 배포하여 데이터 센터 전체 장애에도 서비스가 지속될 수 있도록 한다.
- ex) 3개의 가용성 영역에 각각 동일한 VM을 배포한다.
가용성 집합 추가로 사용
- 동일한 가용성 영역 내에서도 여러 가용성 집합을 사용하여 VM을 분산 배치한다.
- ex) 각 가용성 영역 내에서 3개의 가용성 집합을 사용하여 VM을 배포.
자동 복구 기능 사용
- 자동 복구 기능을 활성화하여 VM의 상태를 모니터링하고, 문제 발생시 자동으로 복구한다.
LB 사용
- LB를 사용해 트래픽을 여러 VM에 분산.
- 단일 VM의 장애가 전체 서비스에 영향을 미치지 않도록 한다.
Autoscale 사용
- Autoscale을 사용해 트래픽 증가에 따라 자동으로 VM 인스턴스를 추가 또는 감소시켜 가용성을 유지한다.
- Autoscale을 사용해 트래픽 증가에 따라 자동으로 VM 인스턴스를 추가 또는 감소시켜 가용성을 유지한다.
데이터베이스 설계
SQL DB의 기본 옵션 활용
- 기본 옵션을 활용하여 자동 백업, 자동 복구, 읽기 가능한 보조 복제본 등을 설정한다.
Geo-Replication(지리적 복제)
- DB를 여러 지역에 복제하여 지역 장애에도 DB가 계속 사용 가능하도록 한다.
- ex) 메인 DB를 Korea Central에, 서브 DB를 West US와 East US에 배포.
장애조치
- 자동 장애 조치를 설정하여 메인 DB에 장애가 발생할 경우 서브 DB로 자동 전환되도록 한다.
- 자동 장애 조치를 설정하여 메인 DB에 장애가 발생할 경우 서브 DB로 자동 전환되도록 한다.
일반적인 전략
모니터링 및 경고
- Azure Monitor와 Azure Application Insights를 사용하여 시스템 상태를 지속적으로 모니터링, 문제 발생시 즉시 경고 알림을 받을 수 있도록 설정.
백업 및 복구 계획
- 정기적인 백업을 구성 및 설정, 복구 계획을 수립하여 데이터 손실을 최소화한다.