이 전략 가이드에서는 여러 영역 또는 다중 영역으로 구성된 Google Distributed Cloud (GDC) 에어갭 유니버스에 고가용성 (HA) 워크로드를 설계하고 배포하기 위한 기술 안내와 권장사항을 제공합니다. 이 가이드에서는 GDC에서 실행되는 애플리케이션의 다운타임을 최소화하고 비즈니스 연속성을 제공하는 데 필요한 주요 아키텍처 패턴, 서비스 구성, 운영 고려사항을 설명합니다.
고가용성 전략은 GDC에서 애플리케이션을 설계, 배포, 관리하는 데 관여하는 기술 전문가를 대상으로 하며, 여기에는 다음이 포함됩니다.
플랫폼 관리자 그룹의 클라우드 설계자: GDC에서 복원력이 뛰어난 인프라 및 애플리케이션 아키텍처를 설계합니다.
애플리케이션 운영자 그룹 내 DevOps 엔지니어 및 사이트 안정성 엔지니어 (SRE): HA 워크로드의 배포 전략, 자동화, 모니터링, 인시던트 대응을 구현합니다.
애플리케이션 운영자 그룹 내의 애플리케이션 개발자: 내결함성이 있고 HA 인프라 패턴과 원활하게 통합되는 애플리케이션을 빌드합니다.
자세한 내용은 GDC 오프라인 문서 대상을 참고하세요.
고가용성의 중요성
최신 분산 시스템에서는 고가용성을 계획하는 것이 중요합니다. 계획된 다운타임이든 계획되지 않은 다운타임이든 비즈니스 중단, 수익 손실, 평판 손상, 사용자 경험 저하를 초래할 수 있습니다. GDC를 사용하여 에지 또는 비공개 데이터 센터에서 실행되는 워크로드의 경우 가용성은 특히 지연 시간에 민감하거나 미션 크리티컬 애플리케이션의 경우 핵심 운영 성공과 직접적인 상관관계가 있는 경우가 많습니다. 복원력이 우수하고 안정적인 서비스를 구축하려면 처음부터 HA를 고려하여 설계해야 합니다.
로컬로 제공되는 초대형 확장 기능
GDC는 Google Cloud 인프라 및 서비스를 에지와 데이터 센터로 확장합니다. GDC는 완전 관리형 하드웨어 및 소프트웨어 솔루션을 제공하므로 GDC 클러스터 및 기타Google Cloud 서비스에서 Google Kubernetes Engine (GKE)을 데이터가 생성되고 소비되는 위치와 더 가까운 곳에서 실행할 수 있습니다.
이 가이드에서는 멀티 영역 토폴로지로 구성된 GDC 유니버스에 중점을 둡니다. 멀티 영역을 사용하면 단일 GDC 유니버스가 데이터 센터 캠퍼스나 대도시 지역과 같은 동일한 위치 내에 있는 여러 개의 물리적으로 격리된 영역으로 구성됩니다. 이러한 영역에는 독립적인 전력, 냉각, 네트워킹이 있어 국지적인 물리적 인프라 장애로부터 보호됩니다. GDC 유니버스 내 영역 간의 지연 시간이 짧고 대역폭이 높은 네트워크 연결을 통해 동기 복제 및 빠른 장애 조치가 가능하므로 가용성이 높은 애플리케이션을 빌드할 수 있습니다.
확장성 및 부하 분산
기본 구성요소 중복 외에도 트래픽을 효과적으로 관리하고 원활한 확장을 지원하는 것이 특히 부하 조건이 다양한 경우 고가용성을 유지하는 데 중요합니다. GDC는 부하 분산 및 정교한 트래픽 관리를 위한 여러 메커니즘을 제공합니다.
남북 트래픽용 외부 부하 분산기
GDC의 GKE 클러스터 외부 사용자 또는 시스템에 애플리케이션을 노출하려면 (북-남 트래픽) GDC의 관리형 외부 부하 분산 기능을 사용합니다. 외부 부하 분산기 (ELB) 서비스는 이러한 기능을 제공하며 Kubernetes와 원활하게 통합됩니다.
고가용성과 확장성을 제공하는 ELB 서비스의 주요 특징은 다음과 같습니다.
관리형 서비스: ELB는 GDC에서 관리하며 고가용성 및 복원력을 위해 설계되었습니다.
외부 액세스: GDC 관리 풀에서 안정적인 외부 IP 주소를 프로비저닝하여 외부 클라이언트에 일관된 진입점을 제공합니다.
Kubernetes와의 부하 분산기 통합: 특정 내부 주석 없이
type: LoadBalancer
의 KubernetesService
를 만들 때 부하 분산기를 자동으로 프로비저닝하고 구성합니다.영역 인식: GDC 유니버스 내에서 사용 가능한 모든 영역에서 실행되는 정상 애플리케이션 포드에 수신 트래픽을 분산합니다. ELB는 포드 준비 프로브를 사용하여 백엔드 상태를 확인합니다.
확장성: 애플리케이션이 노드와 영역에 걸쳐 수평으로 확장될 때 외부 트래픽의 분산을 처리합니다.
외부 부하 분산기를 사용하는 것이 외부 트래픽 인그레스의 HA를 달성하는 표준이자 권장되는 방법이므로 클라이언트 요청이 장애가 발생한 영역이나 인스턴스에서 자동으로 라우팅됩니다.
자세한 내용은 외부 부하 분산기 구성을 참고하세요.
동-서 트래픽용 내부 부하 분산기
동일한 GKE on GDC 클러스터 내에서 실행되는 서비스 간 통신 (east-west 트래픽)의 경우 GDC는 내부 부하 분산기 (ILB)를 제공합니다. 이는 내부 서비스를 분리하고 가용성과 확장성이 뛰어난 내부 통신 경로를 제공하는 데 중요합니다.
고가용성과 확장성을 제공하는 ILB 서비스의 주요 특징은 다음과 같습니다.
내부 액세스: 클러스터 노드나 기타 내부 서비스와 같이 GDC 네트워크 내에서만 액세스할 수 있는 안정적인 내부 IP 주소를 프로비저닝합니다.
Kubernetes와의 부하 분산기 통합: 내부여야 함을 나타내는 특정 주석을 사용하여
type: LoadBalancer
의 KubernetesService
를 만들어 프로비저닝합니다. 예를 들면networking.gke.io/load-balancer-type: "Internal"
입니다.영역 인식: 사용 가능한 모든 영역에 있으며 준비 상태 프로브로 식별되는 정상 백엔드 포드 간에 트래픽을 분산합니다. 이러한 분산은 한 영역에 문제가 발생할 경우 내부 통신 장애를 방지합니다.
서비스 검색 및 분리: kube-dns 및 CoreDNS 통합을 통해 안정적인 내부 IP 주소와 DNS 이름을 제공합니다. 서비스는 서로를 검색하고 통신할 수 있으므로 클라이언트가 개별 포드 IP 주소를 알 필요가 없습니다.
확장성: 사용 가능한 모든 정상 복제본에 트래픽을 분산하여 내부 백엔드 서비스의 확장을 지원합니다.
내부 서비스 간 통신에 ILB를 사용하면 내부 트래픽이 영역 장애에 탄력적으로 대응하고 효과적인 확장 기능을 제공하여 외부 ELB와 기본 컴퓨팅 분산에서 제공하는 HA를 보완합니다. 이는 프런트엔드가 Kubernetes 클러스터 내에서 백엔드 API 또는 데이터베이스와 통신해야 하는 계층화된 애플리케이션에 자주 사용됩니다.
자세한 내용은 내부 부하 분산기 구성을 참고하세요.
비동기 스토리지를 사용하는 영역 간 HA 앱 배포
GDC를 사용하면 데이터 소스 또는 최종 사용자에 더 가까운 곳에서 인프라와 애플리케이션을 실행할 수 있습니다. GDC 유니버스에서 HA를 달성하는 것은 중요한 워크로드에 매우 중요합니다. GDC 유니버스 내의 여러 영역에 HA 애플리케이션을 배포하여 데이터 지속성과 재해 복구를 위해 비동기 스토리지 복제를 구현할 수 있습니다.
영역은 단일 유니버스 내의 고유한 장애 도메인을 나타냅니다. 영역 간에 애플리케이션 구성요소를 분산하고 데이터를 복제하면 로컬 하드웨어 장애 또는 유지관리 이벤트에 대한 복원력을 크게 개선할 수 있습니다.
다음 단계
비동기 복제 블록 스토리지를 사용하여 여러 영역에 분산된 가상 머신 (VM) 모음으로 서비스를 배포하려면 HA VM 앱 배포를 참고하세요.
비동기식으로 복제된 영구 볼륨을 사용하여 여러 영역에 걸쳐 Kubernetes에 컨테이너화된 애플리케이션으로 서비스를 배포하려면 HA 컨테이너 앱 배포를 참고하세요.