이 참조 아키텍처는 Google Kubernetes Engine(GKE)에서 실행되는 Windows 애플리케이션의 네트워크 트래픽을 관리하기 위해 Cloud Service Mesh 및 Envoy 게이트웨이를 사용하는 확장 가능한 고가용성 솔루션을 제공합니다. 여기에서는 트래픽을 포드 및 오픈소스 xDS 호환 프록시로 라우팅할 수 있는 서비스를 사용하여 네트워크 트래픽을 관리하는 방법을 설명합니다. 이러한 아키텍처를 사용하면 비용을 줄이고 네트워크 관리를 개선하는 데 도움을 줄 수 있습니다.
이 문서는 GKE에서 실행되는 Windows 애플리케이션을 설계 및 관리하는 클라우드 설계자, 네트워크 관리자, IT 전문가를 대상으로 합니다.
아키텍처
다음 다이어그램은 Cloud Service Mesh 및 Envoy 게이트웨이를 사용하여 GKE에서 실행되는 Windows 애플리케이션의 네트워크를 관리하기 위한 아키텍처를 보여줍니다.
아키텍처에는 다음 구성요소가 포함됩니다.
- Windows 및 Linux 노드 풀이 모두 포함된 리전 GKE 클러스터
- 2개의 개별 GKE 포드에서 실행되는 2개의 Windows 애플리케이션
- 각 애플리케이션은
ClusterIP
유형의 Kubernetes 서비스 및 네트워크 엔드포인트 그룹(NEG)에 의해 노출됩니다.
- 각 애플리케이션은
- Cloud Service Mesh는 각 GKE 포드의 NEG에 대한 트래픽 경로를 만들고 관리합니다. 각 경로는 특정
scope
에 매핑됩니다. 이scope
는 Cloud Service Mesh 인그레스 게이트웨이를 고유하게 식별합니다. - Cloud Service Mesh의 백엔드 서비스에 매핑되는 HTTP 경로
- GKE 클러스터에 대해 Envoy 게이트웨이로 작동하는 Envoy 컨테이너 포드
- Linux 노드에서 실행되는 Envoy 게이트웨이. 게이트웨이는 이러한 애플리케이션에 해당하는 서비스를 통해 Windows 애플리케이션으로 트래픽을 전달하도록 구성됩니다. Envoy는
scope
파라미터를 사용해서 관련 Cloud Service Mesh 서비스의 구성 세부정보를 로드하도록 구성됩니다. - SSL 트래픽을 종료하고 모든 외부 수신 트래픽을 Envoy 게이트웨이로 전달하는 내부 애플리케이션 부하 분산기
사용 제품
이 참조 아키텍처에는 다음과 같은 Google Cloud 및 서드 파티 제품이 사용됩니다.
Google Cloud 제품
- Cloud Load Balancing: 확장 가능한 고성능 전역 및 리전 부하 분산기 포트폴리오입니다.
- Google Kubernetes Engine(GKE): Google 인프라를 사용하여 컨테이너화된 애플리케이션을 대규모로 배포 및 운영하는 데 사용할 수 있는 Kubernetes 서비스입니다.
- Cloud Service Mesh: 온프레미스 또는 Google Cloud에서 안정적인 서비스 메시를 모니터링하고 관리하는 데 도움이 되는 도구 모음입니다.
서드 파티 제품
- Envoy 게이트웨이: Envoy 프록시를 독립형 또는 Kubernetes 기반 애플리케이션 게이트웨이로 관리합니다.
- 게이트웨이 API: Kubernetes에서 L4 및 L7 라우팅에 중점을 두고 있는 공식 Kubernetes 프로젝트입니다.
사용 사례
이 참조 아키텍처는 기본적으로 GKE에서 실행되는 Windows 애플리케이션을 네트워크 트래픽을 관리하는 데 사용됩니다. 이 아키텍처는 다음과 같은 이점이 있습니다.
간소화된 네트워크 관리: Cloud Service Mesh 및 Envoy 게이트웨이는 애플리케이션에 대한 네트워크 트래픽을 관리하는 중앙 집중화된 컨트롤 플레인을 통해 간소화된 네트워크 관리를 가능하게 해줍니다. 이러한 애플리케이션은 GKE 또는 Compute Engine에서 실행되는 Linux 또는 Windows 애플리케이션일 수 있습니다. 이러한 간소화된 네트워크 관리 체계를 사용하면 필요한 수동 구성이 줄어듭니다.
개선된 확장성 및 가용성: 변화하는 수요를 충족하기 위해 Cloud Service Mesh 및 Envoy 게이트웨이를 사용해서 Linux 및 Windows 애플리케이션을 확장할 수 있습니다. 또한 Envoy 게이트웨이를 사용해서 여러 포드 간에 트래픽을 부하 분산함으로써 애플리케이션에 고가용성을 제공할 수 있습니다.
보안 개선: Envoy 게이트웨이를 사용해서 Linux 및 Windows 애플리케이션에 SSL 종료, 인증, 비율 제한과 같은 보안 기능을 추가할 수 있습니다.
비용 절감: Cloud Service Mesh 및 Envoy 게이트웨이는 모두 Linux 및 Windows 애플리케이션의 네트워크 트래픽 관리 비용을 줄이는 데 도움을 줄 수 있습니다.
설계 고려사항
이 섹션에서는 보안, 안정성, 비용, 효율성 측면에서 특정 요구사항을 충족하는 아키텍처를 개발하는 데 도움이 되는 안내를 제공합니다.
보안
- 보안 네트워킹: 이 아키텍처는 내부 애플리케이션 부하 분산기를 사용해서 Windows 컨테이너에 대한 수신 트래픽을 암호화합니다. 전송 중 암호화를 사용하면 데이터 유출을 예방하는 데 도움이 됩니다.
- Windows 컨테이너: Windows 컨테이너는 컨테이너화된 애플리케이션에 안전한 격리 환경을 제공하는 데 도움이 됩니다.
안정성
- 부하 분산: 이 아키텍처는 여러 레이어의 Cloud Load Balancing을 사용해서 Envoy 게이트웨이와 Windows 컨테이너 간에 트래픽을 분산합니다.
- 내결함성: 이 아키텍처는 단일 장애점이 없는 내결함성을 갖췄습니다. 이러한 설계는 하나 이상의 구성요소가 실패하더라도 항상 가용성을 유지할 수 있도록 보장합니다.
- 자동 확장: 이 아키텍처는 자동 확장 기능을 사용해서 부하에 따라 Envoy 게이트웨이 및 Windows 컨테이너 수를 자동으로 확장합니다. 자동 확장을 사용하면 게이트웨이 및 애플리케이션이 성능 문제를 겪지 않고도 트래픽 급증을 처리할 수 있습니다.
- 모니터링: 이 아키텍처는 Google Cloud Prometheus용 관리형 서비스 및 Cloud 운영을 사용해서 Envoy 게이트웨이 및 Windows 컨테이너 상태를 모니터링합니다. 모니터링을 통해 문제를 조기에 식별하고 애플리케이션이 중단되지 않도록 방지할 수 있습니다.
비용 최적화
- 워크로드에 적합한 인스턴스 유형 선택: 인스턴스 유형을 선택할 때 다음 요소를 고려하세요.
- 애플리케이션에 필요한 vCPU 및 메모리 수
- 애플리케이션의 예상 트래픽 부하
- 사용자의 고가용성 애플리케이션 요구
자동 확장 사용: 자동 확장은 Windows 워크로드를 수직 및 수평으로 자동 확장함으로써 비용을 줄이는 데 도움이 됩니다.
수직 확장은 고객 사용량에 따라 컨테이너 요청 및 한도를 조정합니다.
- 수직형 포드 자동 확장으로 수직 확장 자동화
수평 확장은 수요 충족을 위해 Kubernetes 포드를 추가하거나 삭제합니다.
- 수평형 포드 자동 확장으로 수평 확장 자동화
Cloud Service Mesh 및 Envoy 게이트웨이 사용: Cloud Service Mesh 및 Envoy 게이트웨이는 Windows 애플리케이션으로 트리팩을 효율적으로 라우팅함으로써 비용 절감에 도움이 됩니다. 더 효율적인 라우팅을 사용하면 구입해야 하는 대역폭 양을 줄일 수 있습니다. 또한 애플리케이션의 성능 향상에도 도움이 됩니다.
공유 가상 프라이빗 클라우드(VPC) 네트워크 사용: 공유 가상 프라이빗 클라우드 네트워크를 사용하면 단일 VPC를 여러 프로젝트에서 공유할 수 있습니다. 공유 기능을 이용하면 만들고 관리해야 하는 VPC 수를 줄여서 비용을 절약할 수 있습니다.
운영 효율성
- 여러 도메인에 단일 내부 부하 분산기 사용: 이 아키텍처는 내부 애플리케이션 부하 분산기를 사용하여 SSL 트래픽을 오프로드합니다. 각 HTTPS 대상 프록시는 (지원되는 최대 한도까지) 여러 SSL 인증서를 지원하여 각기 다른 도메인에서 여러 애플리케이션을 관리할 수 있습니다.
- 코드형 인프라(IaC): 이 아키텍처는 인프라 관리를 위해 IaC를 사용하여 배포할 수 있습니다. IaC는 인프라의 일관성 및 반복성을 보장하는 데 도움이 됩니다.
배포
이 아키텍처를 배포하려면 관리형 Kubernetes에서 실행 중인 Windows 애플리케이션 배포를 참조하세요.
다음 단계
- 이 설계 가이드에서 사용되는 Google Cloud 제품에 대해 자세히 알아보세요.
- 그 밖의 참조 아키텍처, 다이어그램, 튜토리얼, 권장사항을 알아보려면 클라우드 아키텍처 센터를 확인하세요.
참여자
저자: 이탄 에이브슈츠 | 직원 기술 솔루션 컨설턴트
기타 참여자:
- 존 라함 | 솔루션 설계자
- 카슬린 필즈 | 개발자 애드보킷
- 마리디 (라주) 마카라주 | 지원 기술 책임자
- 발라반 라자쿠마르 | 주요 엔터프라이즈 설계자
- 빅터 모레노 | Cloud Networking 제품 관리자