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