게이트 이그레스 및 게이트 인그레스 패턴은 워크로드 간에 선택한 API를 양방향으로 사용해야 하는 시나리오에 게이트 이그레스와 게이트 인그레스를 조합하여 사용합니다. 워크로드는 Google Cloud, 비공개 온프레미스 환경 또는 기타 클라우드 환경에서 실행할 수 있습니다. 이 패턴에서는 API 게이트웨이, Private Service Connect 엔드포인트 또는 부하 분산기를 사용하여 특정 API를 노출하고 원하는 경우 인증, 승인, API 호출 감사를 제공할 수 있습니다.
이 패턴과 메시형 패턴의 주요 차이점은 양방향 API 사용 또는 특정 IP 주소 소스 및 대상과의 통신만 필요한 시나리오(예: Private Service Connect 엔드포인트를 통해 게시된 애플리케이션)에 적용된다는 점입니다. 통신은 노출된 API 또는 특정 IP 주소로 제한되므로 여러 환경의 네트워크가 설계에서 일치할 필요는 없습니다. 일반적으로 적용되는 시나리오에는 다음이 포함되나 이에 국한되지 않습니다.
- 합병 및 인수
- 파트너와의 애플리케이션 통합
- 자체 애플리케이션을 관리하고 여러 환경에 호스팅하는 여러 조직 단위와 조직의 애플리케이션 및 서비스 간의 통합
통신은 다음과 같이 작동합니다.
- Google Cloud에 배포하는 워크로드는 내부 IP 주소를 사용하여 API 게이트웨이 (또는 특정 대상 IP 주소)와 통신할 수 있습니다. 비공개 컴퓨팅 환경에 배포된 다른 시스템에는 연결할 수 없습니다.
- 반대로 다른 컴퓨팅 환경에 배포하는 워크로드는 내부 IP 주소를 사용하여 Google Cloud 측 API 게이트웨이 (또는 특정 게시된 엔드포인트 IP 주소)와 통신할 수 있습니다. Google Cloud에 배포된 다른 시스템에는 연결할 수 없습니다.
아키텍처
다음 다이어그램은 게이트 이그레스 및 게이트 인그레스 패턴의 참조 아키텍처를 보여줍니다.
위 다이어그램의 설계 접근 방식에는 다음과 같은 요소가 있습니다.
- Google Cloud 측에서는 워크로드를 인터넷에 직접 노출하지 않고 VPC (또는 공유 VPC)에 배포합니다.
- Google Cloud 환경 네트워크는 다른 컴퓨팅 환경으로 확장됩니다. 이러한 환경은 온프레미스이거나 다른 클라우드에 있을 수 있습니다. 환경을 확장하려면 적절한 하이브리드 및 멀티클라우드 연결 커뮤니케이션 패턴을 사용하여 환경 간에 통신을 용이하게 하여 내부 IP 주소를 사용할 수 있도록 합니다.
- 원하는 경우 특정 대상 IP 주소에 대한 액세스를 사용 설정하여 전송 VPC를 사용하여 애플리케이션 VPC 외부에 경계 보안 레이어를 추가할 수 있습니다.
- 전송 VPC에서 차세대 방화벽(NGFW)과 함께 Cloud 차세대 방화벽 또는 네트워크 가상 어플라이언스 (NVA)를 사용하여 트래픽을 검사하고 애플리케이션 VPC에 도달하기 전에 특정 소스에서 특정 API에 대한 액세스를 허용하거나 금지할 수 있습니다.
- API 게이트웨이 또는 부하 분산기를 통해 API에 액세스하여 프록시 레이어와 서비스 API의 추상화 또는 퍼사드를 제공해야 합니다.
- API로 소비되는 애플리케이션의 경우 Private Service Connect를 사용하여 게시된 애플리케이션의 내부 IP 주소를 제공할 수도 있습니다.
- 모든 환경은 겹치지 않는 RFC 1918 IP 주소 공간을 사용합니다.
이 패턴의 일반적인 적용은 애플리케이션 백엔드(또는 애플리케이션 백엔드의 하위 집합)를 Google Cloud에 배포하는 동시에 다른 백엔드 및 프런트엔드 구성요소를 온프레미스 환경 또는 다른 클라우드에 호스팅하는 것입니다(계층형 하이브리드 패턴 또는 파티션된 멀티클라우드 패턴). 애플리케이션이 발전하고 클라우드로 이전함에 따라 특정 클라우드 서비스에 대한 종속 항목과 환경설정이 자주 발생합니다.
이러한 종속 항목과 환경설정으로 인해 애플리케이션과 백엔드가 여러 클라우드 제공업체에 배포되는 경우가 있습니다. 또한 일부 애플리케이션은 온프레미스 환경과 여러 클라우드 환경에 배포된 리소스와 서비스의 조합으로 빌드될 수 있습니다.
분산 애플리케이션의 경우 외부 Cloud Load Balancing 하이브리드 및 멀티클라우드 연결의 기능을 사용하여 사용자 요청을 종료하고 다른 환경의 프런트엔드 또는 백엔드로 라우팅할 수 있습니다. 이 라우팅은 다음 다이어그램과 같이 하이브리드 네트워크 연결을 통해 이루어집니다. 이 통합을 통해 애플리케이션 구성요소를 여러 환경에 점진적으로 배포할 수 있습니다. Google Cloud에서 호스팅되는 프런트엔드에서 백엔드 서비스로의 요청은 내부 부하 분산기 (다이어그램의 ILB)에서 제공하는 기존 하이브리드 네트워크 연결을 통해 안전하게 통신합니다.
위 다이어그램의 Google Cloud 설계를 사용하면 다음과 같은 이점이 있습니다.
- 이 패턴의 통신 모델에 맞는 사전 정의된 API를 양쪽에서 사용하여 Google Cloud, 온프레미스, 기타 클라우드 환경 간의 양방향 통신을 용이하게 합니다.
- 분산된 애플리케이션 구성요소 (프런트엔드 또는 백엔드)로 인터넷 연결 애플리케이션용 글로벌 프런트엔드를 제공하고 다음 목표를 달성하려면 포인트 오브 프레시전 (PoP)에 배포된 Google Cloud의 고급 부하 분산 및 보안 기능을 사용하면 됩니다.
- 서버리스 관리형 서비스를 사용하여 자본 비용을 줄이고 운영을 간소화하세요.
- 속도와 지연 시간을 위해 전 세계 애플리케이션 백엔드에 대한 연결을 최적화합니다.
- Google Cloud Cross-Cloud Network를 사용하면 최적의 비공개 연결을 통해 애플리케이션 구성요소 간에 멀티클라우드 통신을 지원할 수 있습니다.
- Cloud CDN에 대한 액세스를 제공하여 수요가 많은 정적 콘텐츠를 캐시하고 전역 Cloud Load Balancing을 사용하는 애플리케이션의 애플리케이션 성능을 개선합니다.
- 전 세계에 분산된 웹 애플리케이션 방화벽 (WAF) 및 DDoS 완화 서비스를 제공하는 Google Cloud Armor 기능을 사용하여 인터넷에 연결된 애플리케이션의 전 세계 프런트엔드를 보호합니다.
- 원하는 경우 Private Service Connect를 설계로 통합할 수 있습니다. 이렇게 하면 공개 인터넷을 통과하지 않고도 다른 환경에서 Google Cloud 서비스 API 또는 게시된 서비스에 비공개로 세분화된 방식으로 액세스할 수 있습니다.
변형
게이트 이그레스 및 게이트 인그레스 아키텍처 패턴은 이 패턴의 통신 요구사항을 고려하면서 다양한 설계 요구사항을 충족하기 위해 다른 접근 방식과 결합될 수 있습니다. 패턴은 다음 옵션을 제공합니다.
- 분산 API 게이트웨이
- Private Service Connect를 사용한 양방향 API 통신
- Private Service Connect 엔드포인트 및 인터페이스를 사용한 양방향 통신
분산 API 게이트웨이
파티션된 멀티클라우드 패턴에 기반한 시나리오와 같이 애플리케이션 (또는 애플리케이션 구성요소)은 비공개 온프레미스 환경을 비롯한 여러 클라우드 환경에서 빌드할 수 있습니다. 일반적인 요구사항은 클라이언트 요청을 애플리케이션 프런트엔드로 직접 라우팅하여 애플리케이션 (또는 프런트엔드 구성요소)이 호스팅되는 환경으로 전달하는 것입니다. 이러한 종류의 통신에는 로컬 부하 분산기 또는 API 게이트웨이가 필요합니다. 이러한 애플리케이션과 구성요소에는 통합을 위한 특정 API 플랫폼 기능이 필요할 수도 있습니다.
다음 다이어그램은 Apigee 및 Apigee Hybrid가 각 환경에서 현지화된 API 게이트웨이를 사용하여 이러한 요구사항을 해결하도록 설계된 방식을 보여줍니다. API 플랫폼 관리는 Google Cloud에 중앙 집중화되어 있습니다. 이 설계는 사전 승인된 IP 주소 (타겟 및 대상 API 또는 Private Service Connect 엔드포인트 IP 주소)만 Google Cloud와 다른 환경 간에 통신할 수 있는 엄격한 액세스 제어 조치를 시행하는 데 도움이 됩니다.
다음 목록에서는 위 다이어그램에서 Apigee API 게이트웨이를 사용하는 두 가지 고유한 통신 경로를 설명합니다.
- 클라이언트 요청은 애플리케이션 (또는 프런트엔드 구성요소)을 호스팅하는 환경에서 애플리케이션 프런트엔드로 직접 도착합니다.
- 각 환경 내의 API 게이트웨이와 프록시는 여러 환경에서 다양한 방향으로 클라이언트 및 애플리케이션 API 요청을 처리합니다.
- Google Cloud의 API 게이트웨이 기능(Apigee)은 Google Cloud에 호스팅된 애플리케이션 (프런트엔드 또는 백엔드) 구성요소를 노출합니다.
- 다른 환경(하이브리드)의 API 게이트웨이 기능은 해당 환경에서 호스팅되는 애플리케이션 프런트엔드 (또는 백엔드) 구성요소를 노출합니다.
원하는 경우 전송 VPC를 사용하는 것이 좋습니다. 전송 VPC를 사용하면 문제를 분리하고 별도의 VPC 네트워크에서 보안 검사 및 하이브리드 연결을 실행할 수 있는 유연성을 제공할 수 있습니다. IP 주소 도달 가능성 관점에서 하이브리드 연결이 연결된 전송 VPC는 엔드 투 엔드 도달 가능성을 유지하기 위한 다음 요구사항을 용이하게 합니다.
- 대상 API의 IP 주소는 클라이언트/요청자가 호스팅되는 다른 환경에 광고되어야 합니다.
- 타겟 API와 통신해야 하는 호스트의 IP 주소는 타겟 API가 있는 환경(예: API 요청자(클라이언트)의 IP 주소)에 광고되어야 합니다. 부하 분산기, 프록시, Private Service Connect 엔드포인트 또는 NAT 인스턴스를 통해 통신이 발생하는 경우에는 예외입니다.
원격 환경에 대한 연결을 확장하기 위해 이 설계는 고객 경로 교환 기능이 있는 직접 VPC 피어링을 사용합니다. 이 설계를 사용하면 Google Cloud 애플리케이션 VPC 내에 호스팅된 워크로드에서 발생하는 특정 API 요청을 전송 VPC를 통해 라우팅할 수 있습니다. 또는 전송 VPC의 하이브리드 네트워크 엔드포인트 그룹 백엔드가 있는 부하 분산기와 연결된 애플리케이션 VPC의 Private Service Connect 엔드포인트를 사용할 수 있습니다. 이 설정은 다음 섹션인 Private Service Connect를 사용한 양방향 API 통신에 설명되어 있습니다.
Private Service Connect를 사용한 양방향 API 통신
기업이 API 게이트웨이 (예: Apigee)를 즉시 사용하지 않아도 되거나 나중에 추가하고 싶을 수 있습니다. 그러나 여러 환경에서 특정 애플리케이션 간의 통신 및 통합을 사용 설정해야 하는 비즈니스 요구사항이 있을 수 있습니다. 예를 들어 회사가 다른 회사를 인수한 경우 특정 애플리케이션을 해당 회사에 노출해야 할 수 있습니다. 관리자가 회사에 애플리케이션을 노출해야 할 수 있습니다. 두 회사 모두 서로 다른 환경 (Google Cloud, 온프레미스 또는 기타 클라우드)에 호스팅된 자체 워크로드를 보유하고 있을 수 있으며 IP 주소 중복을 방지해야 합니다. 이러한 경우 Private Service Connect를 사용하여 효과적인 커뮤니케이션을 지원할 수 있습니다.
API로 소비되는 애플리케이션의 경우 Private Service Connect를 사용하여 게시된 애플리케이션의 비공개 주소를 제공하여 리전 전반에서 하이브리드 연결을 통해 비공개 네트워크 내에서 안전하게 액세스할 수 있습니다. 이 추상화는 하이브리드 및 멀티 클라우드 연결 모델을 통해 다양한 클라우드 및 온프레미스 환경의 리소스를 통합하는 것을 용이하게 합니다. 또한 멀티 클라우드 및 온프레미스 환경에서 애플리케이션을 조합할 수 있습니다. 이를 통해 API 게이트웨이가 사용되지 않거나 사용 계획이 없는 보안 애플리케이션을 통합하는 등 다양한 통신 요구사항을 충족할 수 있습니다.
다음 다이어그램과 같이 Cloud Load Balancing과 함께 Private Service Connect를 사용하면 두 가지 고유한 통신 경로를 사용할 수 있습니다. 각 경로는 별도의 연결 목적으로 다른 방향에서 시작되며, 가능하면 API 호출을 통해 시작됩니다.
- 이 가이드에서 설명하는 Private Service Connect의 모든 설계 고려사항 및 권장사항이 이 설계에 적용됩니다.
- 추가 레이어 7 검사가 필요한 경우 전송 VPC에서 이 설계와 NVA를 통합할 수 있습니다.
- 이 디자인은 API 게이트웨이 유무와 관계없이 사용할 수 있습니다.
위의 다이어그램에 표시된 두 가지 연결 경로는 독립적인 연결을 나타내며 단일 연결 또는 흐름의 양방향 통신을 보여주지 않습니다.
Private Service Connect 엔드포인트 및 인터페이스를 사용한 양방향 통신
게이트 처리된 인그레스 패턴에서 설명한 대로 클라이언트-서비스 통신을 사용 설정하는 옵션 중 하나는 Private Service Connect 엔드포인트를 사용하여 프로듀서 VPC의 서비스를 소비자 VPC에 노출하는 것입니다. 이 연결은 하이브리드 연결을 통해 온프레미스 환경 또는 다른 클라우드 제공업체 환경으로 확장할 수 있습니다. 그러나 경우에 따라 호스팅된 서비스에 비공개 통신이 필요할 수도 있습니다.
소비자 VPC 내부 또는 외부에서 호스팅될 수 있는 데이터 소스에서 데이터를 검색하는 것과 같은 특정 서비스에 액세스하기 위해 이 비공개 통신은 애플리케이션 (프로듀서) VPC와 온프레미스 환경과 같은 원격 환경 간에 이루어질 수 있습니다.
이러한 시나리오에서 Private Service Connect 인터페이스를 사용하면 서비스 프로듀서 VM 인스턴스가 소비자의 네트워크에 액세스할 수 있습니다. 이는 생산자와 소비자 역할을 구분하면서 네트워크 인터페이스를 공유하여 이루어집니다. 소비자 VPC에 이 네트워크 인터페이스가 있으면 애플리케이션 VM은 프로듀서 VPC에 로컬로 있는 것처럼 소비자 리소스에 액세스할 수 있습니다.
Private Service Connect 인터페이스는 소비자 (전송) VPC에 연결된 네트워크 인터페이스입니다. Private Service Connect 인터페이스가 연결된 소비자 (전송) VPC에서 연결할 수 있는 외부 대상에 도달할 수 있습니다. 따라서 이 연결은 다음 다이어그램과 같이 온프레미스 환경과 같은 하이브리드 연결을 통해 외부 환경으로 확장될 수 있습니다.
소비자 VPC가 서드 파티 조직과 같은 외부 조직 또는 법인인 경우 일반적으로 소비자 VPC에서 Private Service Connect 인터페이스에 대한 통신을 보호할 수 없습니다. 이러한 시나리오에서는 Private Service Connect 인터페이스 VM의 게스트 OS에서 보안 정책을 정의할 수 있습니다. 자세한 내용은 Private Service Connect 인터페이스의 보안 구성을 참고하세요. 또는 조직의 보안 규정 준수 또는 표준을 준수하지 않는 경우 대체 접근 방식을 고려할 수 있습니다.
권장사항
인터넷의 클라이언트 요청을 비공개 온프레미스 또는 기타 클라우드 환경에서 호스팅되는 프런트엔드에서 로컬로 수신해야 하는 경우 Hybrid를 API 게이트웨이 솔루션으로 사용하는 것이 좋습니다.
- 또한 이 접근 방식을 사용하면 API 플랫폼 (Apigee)의 일관성을 유지하면서 솔루션을 완전히 Google Cloud 호스팅 환경으로 마이그레이션할 수 있습니다.
다른 환경이 장기 또는 영구 하이브리드 또는 멀티 클라우드 설정으로 구성된 경우 다른 환경으로의 대량 아웃바운드 데이터 전송에 대한 지연 시간을 최소화하고 비용을 최적화하려면 다음을 고려하세요.
- Cloud Interconnect 또는 Cross-Cloud Interconnect를 사용합니다.
- 적절한 환경에서 타겟팅된 프런트엔드에서 사용자 연결을 종료하려면 하이브리드를 사용하세요.
요구사항 및 아키텍처에 적용 가능한 경우 Kubernetes 아키텍처가 포함된 하이브리드 배포와 함께 Envoy용 Apigee 어댑터를 사용하세요.
연결 및 라우팅 경로를 설계하기 전에 먼저 원본 및 대상 환경과 함께 로컬 또는 원격 API 게이트웨이로 전달해야 하는 트래픽 또는 API 요청을 식별해야 합니다.
VPC 서비스 제어를 사용하여 프로젝트 또는 VPC 네트워크 수준에서 서비스 경계를 지정하여 프로젝트의 Google Cloud 서비스를 보호하고 데이터 무단 반출 위험을 완화하세요.
- 승인된 VPN 또는 Cloud Interconnect를 통해 하이브리드 환경으로 서비스 경계를 확장할 수 있습니다. 서비스 경계의 이점에 대한 자세한 내용은 VPC 서비스 제어 개요를 참조하세요.
Virtual Private Cloud (VPC) 방화벽 규칙 또는 방화벽 정책을 사용하여 Private Service Connect 엔드포인트를 통해 Private Service Connect 리소스에 대한 네트워크 수준의 액세스를 제어합니다. 예를 들어 애플리케이션(소비자) VPC의 아웃바운드 방화벽 규칙은 VM 인스턴스에서 엔드포인트의 IP 주소 또는 서브넷에 대한 액세스를 제한할 수 있습니다.
Private Service Connect 인터페이스를 사용할 때는 Private Service Connect 인터페이스의 보안을 구성하여 인터페이스와의 통신을 보호해야 합니다.
비공개 서브넷의 워크로드에 인터넷 액세스가 필요한 경우 Cloud NAT를 사용하여 워크로드에 외부 IP 주소를 할당하고 이를 공개 인터넷에 노출하지 마세요.
하이브리드 및 멀티 클라우드 네트워킹 패턴에 대한 일반적인 권장사항을 참조하세요.