이 문서에서는 검색 증강 생성(RAG)을 사용하는 애플리케이션의 네트워크 인프라를 보호하는 데 사용할 수 있는 참조 아키텍처를 제공합니다. RAG 아키텍처에는 일반적으로 데이터 처리 및 콘텐츠 검색 흐름을 처리하는 별도의 하위 시스템이 포함됩니다. 이 참조 아키텍처는 공유 VPC를 사용하여 다음을 수행하는 방법을 보여줍니다.
- Identity and Access Management(IAM) 권한을 사용하여 하위 시스템 간에 분리를 만듭니다.
- 비공개 IP 주소를 사용하여 애플리케이션 구성요소를 연결합니다.
이 문서의 주요 대상에는 설계자, 개발자, 네트워킹 및 보안 관리자가 포함됩니다. 이 문서에서는 독자가 네트워킹에 대한 기본 지식이 있다고 가정합니다. 이 문서에서는 RAG 기반 애플리케이션 만들기에 대해 설명하지 않습니다.
아키텍처
다음 다이어그램은 이 문서에서 설명하는 네트워킹 아키텍처를 보여줍니다.
위 다이어그램의 아키텍처에는 다음과 같은 구성요소가 있습니다.
- 온프레미스 또는 다른 클라우드의 외부 네트워크
다음 기능을 수행하는 외부 네트워크:
- 원시 RAG 데이터를 업로드하는 데이터 엔지니어에게 네트워크 연결을 제공합니다.
- 외부 네트워크 연결을 종료합니다.
- 외부 라우터를 호스팅합니다.
- Google Cloud 라우팅 가상 프라이빗 클라우드(VPC) 네트워크의 Private Service Connect 엔드포인트에 대한 연결을 제공합니다.
- Private Service Connect 엔드포인트를 가리키는 DNS 서버를 포함합니다.
- 라우팅 프로젝트
다음 함수를 수행하는 Google Cloud 프로젝트:
- Cloud Interconnect 또는 Cloud VPN 연결을 통해 외부 네트워크에 연결되는 라우팅 VPC 네트워크를 호스팅합니다.
- 외부 네트워크, 라우팅 VPC 네트워크, 공유 VPC 네트워크를 함께 연결하는 Network Connectivity Center(NCC) 허브를 호스팅합니다.
- 리전 Cloud Storage 엔드포인트에 연결되는 Private Service Connect 엔드포인트를 호스팅합니다. 이 엔드포인트를 사용하면 데이터 엔지니어가 RAG 데이터를 Cloud Storage 버킷에 업로드할 수 있습니다.
- RAG 공유 VPC 호스트 프로젝트
프런트엔드 서비스 내부 애플리케이션 부하 분산기와 VPC 네트워크가 필요한 기타 서비스를 호스팅하는 공유 VPC 네트워크를 호스팅합니다. 모든 서비스 프로젝트는 해당 공유 VPC 네트워크에 액세스할 수 있습니다.
- 데이터 수집 서비스 프로젝트
원시 데이터 입력을 위한 Cloud Storage 버킷이 포함되어 있습니다. 다음 구성요소를 포함하는 데이터 수집 하위 시스템을 포함합니다.
- 수집 처리: 원시 데이터를 읽고 처리합니다.
- 수집 출력: 최종 데이터 스토어에 씁니다.
- 서빙 서비스 프로젝트
추론 및 상호작용을 위한 서비스와 기능을 제공하는 다음 구성요소를 포함하는 서빙 하위 시스템이 포함됩니다.
- 데이터 수집 하위 시스템의 출력을 포함하는 RAG 데이터 스토어
- 추론 쿼리를 RAG 데이터 스토어의 데이터와 결합하여 모델에 제공하는 서빙 프로세스
- 서빙 하위 시스템이 업로드된 RAG 데이터에서 벡터를 만들고 최종 사용자 요청을 처리하는 데 사용하는 모델입니다.
- 프런트엔드 서비스 프로젝트
Cloud Run 또는 Google Kubernetes Engine(GKE)에서 실행되는 사용자 상호작용 서비스 앞에 있는 애플리케이션 부하 분산기인 프런트엔드 하위 시스템을 포함합니다.
프로젝트에는 서비스 액세스 방법을 제한하는 데 도움이 되는 Google Cloud Armor도 포함되어 있습니다. 인터넷에서 액세스를 제공하려면 리전 외부 애플리케이션 부하 분산기를 추가하면 됩니다.
- VPC 서비스 제어 경계
데이터 무단 반출을 방지하는 데 도움이 됩니다. Cloud Storage 버킷에 저장된 데이터는 경계 외부로 복사할 수 없으며 컨트롤 플레인 작업이 보호됩니다.
다음 섹션에서는 아키텍처에 있는 연결 및 트래픽 흐름을 설명합니다.
구성요소 간의 연결
이 섹션에서는 이 아키텍처의 구성요소와 네트워크 간의 연결을 설명합니다.
외부 네트워크에서 라우팅 VPC 네트워크로
외부 네트워크는 NCC 허브의 하이브리드 스포크인 Cloud Interconnect 또는 Cloud VPN을 통해 Google Cloud 라우팅 VPC 네트워크에 연결됩니다.
라우팅 VPC 네트워크의 Cloud Router와 외부 네트워크의 외부 라우터는 경계 게이트웨이 프로토콜(BGP) 경로를 교환합니다.
- 외부 네트워크의 라우터는 외부 서브넷의 경로를 라우팅 VPC Cloud Router에 공지합니다. BGP 측정항목 및 속성을 사용하여 경로 환경설정을 표현할 수 있습니다.
- 라우팅 VPC 네트워크의 Cloud Router는 Google Cloud의 VPC에 있는 프리픽스의 경로를 외부 네트워크에 공지합니다.
VPC 네트워크를 공유 VPC 네트워크로 라우팅
NCC 허브의 NCC VPC 스포크를 사용하여 라우팅 VPC 네트워크와 RAG VPC 네트워크를 연결합니다. 허브는 외부 네트워크에 대한 하이브리드 스포크도 호스팅합니다.
공유 VPC 네트워크 내 리소스 간
이 설계에서 Cloud Storage 버킷은 외부 네트워크에서 데이터를 수신합니다. 추론 요청은 리전 내부 애플리케이션 부하 분산기를 통해 들어옵니다. 시스템의 나머지 부분에는 다음 옵션이 있습니다.
- Cloud Storage 버킷, Gemini Enterprise Agent Platform, Cloud Run, Pub/Sub와 같은 Google SaaS 인프라에서 모든 항목을 호스팅합니다. 이 경우 구성요소는 비공개 Google 인프라를 통해 통신합니다.
- Compute Engine VM, GKE 클러스터, Cloud SQL 데이터베이스 또는 VPC 네트워크에서 실행되는 기타 구성요소에서 실행되는 워크로드에 모든 것을 호스팅합니다. 이 경우 시스템은 NCC 또는 VPC 네트워크 피어링을 통해 연결하는 네트워크에서 비공개 IP 주소를 사용하여 통신합니다.
- 완전 관리형 서비스, 플랫폼 서비스, 인프라 서비스를 혼합하여 사용합니다. 이 경우 다음 방법을 사용하여 VPC 네트워크와 완전 관리형 서비스 간에 연결을 만들 수 있습니다.
- 비공개 Google 액세스: 이 방법을 사용하면 외부 IP 주소가 없고 VPC 네트워크에서 실행되는 워크로드가 Google API에 액세스할 수 있습니다. 이 액세스는 Google 인프라를 통해 내부적으로 이루어지며 이 프로세스는 이러한 트래픽을 인터넷에 노출하지 않습니다.
- Private Service Connect: 이 방법을 사용하면 관리형 VPC 네트워크에서 호스팅되는 PostgreSQL용 AlloyDB와 같은 서비스의 서비스 프로젝트에 엔드포인트를 만들 수 있습니다.
외부 네트워크에서 프런트엔드 서비스 애플리케이션 부하 분산기로
리전 내부 애플리케이션 부하 분산기의 엔드포인트는 RAG 네트워크의 IP 주소입니다. RAG 네트워크, 라우팅 네트워크, 외부 네트워크에 대한 하이브리드 연결은 모두 동일한 NCC 허브의 스포크입니다. 따라서 NCC에 모든 스포크 하위 범위를 허브로 내보내도록 지시할 수 있으며, 허브는 이러한 하위 범위를 다른 스포크 네트워크로 다시 내보냅니다. 그러면 시스템의 최종 사용자가 외부 네트워크에서 부하 분산된 서비스에 도달할 수 있습니다.
트래픽 흐름
이 참조 아키텍처의 트래픽 흐름에는 RAG 데이터 흐름과 추론 흐름이 포함됩니다.
RAG 모집단 흐름
이 흐름은 RAG 데이터가 데이터 엔지니어에서 벡터 스토리지로 시스템을 통해 흐르는 방식을 설명합니다.
- 외부 네트워크에서 데이터 엔지니어는 Cloud Interconnect 연결 또는 Cloud VPN 연결을 통해 원시 데이터를 업로드합니다. 데이터는 라우팅 VPC 네트워크의 Private Service Connect 엔드포인트에 업로드됩니다.
- 데이터는 Google의 내부 인프라를 통해 데이터 수집 서비스 프로젝트의 Cloud Storage 버킷으로 이동합니다.
데이터 수집 서비스 프로젝트 내에서 데이터는 다음 방법 중 하나를 사용하여 시스템 간에 이동합니다.
- 비공개 Google 액세스
- Private Service Connect 엔드포인트
- 직접 Google 인프라
이 방법은 시스템이Google Cloud VPC 네트워크에서 호스팅되는지 또는Google Cloud에서 직접 호스팅되는지에 따라 달라집니다. 이 흐름의 일부로 데이터 수집 하위 시스템은 청크 처리된 RAG 데이터를 모델에 제공하고, 모델은 각 청크의 벡터를 생성합니다.
데이터 수집 하위 시스템은 벡터 데이터와 청크 데이터를 적절한 데이터 스토어에 기록합니다.
추론 흐름
이 흐름은 고객 요청을 설명합니다.
- 외부 네트워크에서 고객이 서비스의 IP 주소로 요청을 보냅니다.
- 요청은 Cloud Interconnect 연결 또는 Cloud VPN 연결을 통해 라우팅 VPC 네트워크로 이동합니다.
- 요청은 VPC 스포크 연결을 통해 RAG VPC 네트워크로 이동합니다.
- 고객 요청이 애플리케이션 부하 분산기에 도착하면 요청이 프런트엔드 하위 시스템으로 전달됩니다.
- 프런트엔드 하위 시스템은 요청을 서빙 하위 시스템으로 전달합니다.
- 서빙 하위 시스템은 데이터 스토어의 관련 컨텍스트 데이터를 사용하여 요청을 보강합니다.
- 서빙 하위 시스템은 증강된 프롬프트를 AI 모델로 전송하고 AI 모델은 대답을 생성합니다.
사용 제품
이 참조 아키텍처에는 다음과 같은 Google Cloud 제품이 사용됩니다.
- 가상 프라이빗 클라우드(VPC): Google Cloud 워크로드에 확장 가능한 전역 네트워킹 기능을 제공하는 가상 시스템입니다. VPC에는 VPC 네트워크 피어링, Private Service Connect, 비공개 서비스 액세스, 공유 VPC가 포함됩니다.
- 공유 VPC: 해당 네트워크의 내부 IP 주소를 사용하여 여러 프로젝트의 리소스를 공통 VPC 네트워크에 연결할 수 있는 Virtual Private Cloud의 기능입니다.
- Private Service Connect: 소비자가 VPC 네트워크 내부에서 비공개로 관리형 서비스에 액세스할 수 있는 기능입니다.
- 비공개 Google 액세스: 외부 IP 주소가 없는 VM 인스턴스가 Google API 및 서비스의 외부 IP 주소에 연결할 수 있게 해주는 기능입니다.
- Cloud Interconnect: 지연 시간이 짧은 고가용성 연결을 통해 외부 네트워크를 Google 네트워크로 확장하는 서비스입니다.
- Cloud VPN: IPsec VPN 터널을 통해 피어 네트워크를 Google 네트워크로 안전하게 확장하는 서비스입니다.
- Cloud Router: 경계 게이트웨이 프로토콜(BGP) 스피커 및 응답자 기능을 제공하는 분산형 및 완전 관리형 제품입니다. Cloud Router는 Cloud Interconnect, Cloud VPN, 라우터 어플라이언스와 함께 작동하여 BGP 수신 및 커스텀 학습된 경로를 기반으로 VPC 네트워크에 동적 경로를 만듭니다.
- Network Connectivity Center: 허브라는 중앙 관리 리소스에 연결된 스포크 리소스 간의 네트워크 연결을 간소화하는 조정 프레임워크입니다.
- VPC 서비스 제어: Google Cloud 리소스의 데이터 무단 반출 위험을 최소화하는 관리형 네트워킹 기능입니다.
- Cloud Load Balancing: 확장 가능한 고성능 전역 및 리전 부하 분산기 포트폴리오입니다.
- Model Armor: 프롬프트 인젝션, 민감한 정보 유출, 유해한 콘텐츠로부터 생성형 AI 및 에이전트 AI 리소스를 보호하는 서비스입니다.
- Google Cloud Armor: 웹 애플리케이션 방화벽(WAF) 규칙을 제공하고 DDoS 및 애플리케이션 공격으로부터 보호하는 데 도움이 되는 네트워크 보안 서비스입니다.
- Cloud Storage: 다양한 데이터 유형에 적합한 저비용, 무제한 객체 스토어입니다. Google Cloud내부 및 외부에서 데이터에 액세스할 수 있고 중복성을 위해 여러 위치에 복제됩니다.
사용 사례
이 아키텍처는 전체 시스템의 입력, 출력, 내부 통신에 비공개 IP 주소를 사용해야 하고 인터넷을 통과하지 않아야 하는 엔터프라이즈 시나리오를 위해 설계되었습니다.
- 비공개 입력: 업로드된 데이터는 인터넷을 통해 전송되지 않습니다. 대신 Google Cloud라우팅 VPC 네트워크의 Private Service Connect 엔드포인트 뒤에 Cloud Storage 버킷을 호스팅합니다. 비공개 IP 주소만 사용하여 Cloud Interconnect 또는 Cloud VPN 연결을 통해 RAG 데이터를 복사합니다.
- 비공개 서비스 간 연결: 서비스는 Google의 내부 인터페이스를 통해 또는 VPC 네트워크 내부의 비공개 주소를 통해 서로 통신합니다.
- 비공개 출력: 액세스를 설정하지 않는 한 인터넷을 통해 추론 결과에 연결할 수 없습니다. 기본적으로 지정된 외부 네트워크의 사용자만 서비스의 비공개 엔드포인트에 연결할 수 있습니다.
설계 대안
이 섹션에서는 Google Cloud에서 RAG 지원 애플리케이션에 대해 고려할 수 있는 대체 네트워크 설계 접근 방식을 보여줍니다.
서비스를 공개적으로 사용 가능하게 설정
이 문서에 표시된 아키텍처에서는 내부 네트워크의 사용자만 애플리케이션에 쿼리를 전송할 수 있습니다. 인터넷에서 클라이언트가 애플리케이션에 액세스할 수 있어야 하는 경우 리전 외부 애플리케이션 부하 분산기를 사용합니다.
GKE Inference Gateway 사용
프런트엔드 하위 시스템이 GKE에서 실행되는 경우 애플리케이션 부하 분산기 대신 GKE Inference Gateway를 사용할 수 있습니다.
설계 고려사항
이 섹션에서는 RAG 지원 아키텍처의 비공개 연결을 지원하는 네트워킹을 배포하는 데 도움이 되는 추가 안내를 제공합니다. 이 안내는 보안, 개인 정보 보호, 규정 준수, 안정성, 비용 최적화, 운영 효율성, 성능 최적화에 대한 특정 요구사항을 충족하는 데 도움이 될 수 있습니다. 이 섹션의 안내는 일부일 뿐 모든 내용을 포함하지는 않습니다. 특정 배포의 경우 이 섹션에서 다루지 않는 추가 설계 요소를 고려해야 할 수 있습니다.
보안, 개인 정보 보호, 규정 준수
RAG 지원 아키텍처를 보호하고 개인 정보 보호 및 규정 준수 요구사항을 충족하려면 다음 권장사항을 고려하세요.
- 프롬프트 및 대답 검사: AI 모델 앞에 Model Armor를 배포하여 프롬프트 인젝션, 탈옥 시도, 민감한 정보 유출, 책임감 있는 AI 정책 위반에 대해 인바운드 프롬프트와 아웃바운드 결과를 모두 평가합니다. Model Armor를 Gemini Enterprise Agent Platform과 직접 통합하거나 Model Armor를 애플리케이션 부하 분산기에 연결하여 서비스 확장 프로그램 트래픽 확장 프로그램을 사용해 부적절한 요청이 서빙 하위 시스템에 도달하기 전에 거부할 수 있습니다. 비공개 Google 액세스 또는 VPC 서비스 제어를 사용할 때 인증서 오류 없이 VPC 네트워크 내에서 비공개로 Model Armor 리전 엔드포인트에 액세스하려면 Model Armor API의 리전 Private Service Connect 엔드포인트를 만듭니다.
- 경계 및 네트워크 마이크로 세분화: 이 아키텍처는 VPC 서비스 제어를 사용하여 서비스 프로젝트 전반에서 무단 데이터 무단 반출을 방지합니다. 서비스 경계 외에도 IAM 관리 태그와 함께 Cloud Next Generation Firewall 계층적 및 네트워크 방화벽 정책을 사용하여 공유 VPC 네트워크의 데이터 수집, 서빙, 프런트엔드 워크로드 간의 동서 트래픽을 제한합니다.
- ID 및 제로 트러스트 액세스: IAP(Identity-Aware Proxy)를 사용 설정하여 프런트엔드 내부 애플리케이션 부하 분산기 또는 리전 외부 애플리케이션 부하 분산기에 제로 트러스트 액세스 제어를 적용합니다. 이렇게 하면 인증 및 승인된 사용자만 RAG 애플리케이션을 쿼리할 수 있습니다. 최소 권한 서비스 계정을 보안 주체 액세스 경계 정책과 결합하여 각 하위 시스템 보안 주체가 액세스할 수 있는 리소스를 제한합니다. 서빙 하위 시스템이 비공개 네트워크에서 자율 에이전트 또는 모델 컨텍스트 프로토콜(MCP) 도구를 조정하는 경우 에이전트 아이덴티티 및 Agent Gateway를 사용하여 에이전트-도구 트래픽을 인증하고 관리합니다.
- 데이터 개인 정보 보호 및 암호화: 데이터 수집 하위 시스템에서 Sensitive Data Protection을 사용하여 임베딩을 생성하고 RAG 데이터 스토어에 쓰기 전에 Cloud Storage 버킷에 업로드된 원시 문서의 개인 식별 정보(PII)를 검사, 분류, 익명화합니다. 규정 준수를 위해 암호화 키를 제어해야 하는 경우 Cloud Storage 버킷, 벡터 데이터 스토어, 모델 엔드포인트에 대해 Cloud Key Management Service(Cloud KMS)에서 고객 관리 암호화 키(CMEK)를 구성합니다.
이 설계는 확립된 보안 원칙을 사용하여 RAG 워크로드를 보호합니다. AI 및 ML 워크로드와 관련된 보안 원칙 및 권장사항은 Well-Architected Framework의 AI 및 ML 관점: 보안을 참조하세요.
안정성
RAG 지원 애플리케이션을 위한 안정적인 네트워킹 인프라를 빌드하고 운영하려면 다음 권장사항을 고려하세요.
- 중복 하이브리드 연결: 외부 네트워크와 라우팅 VPC 네트워크 간의 동적 BGP 장애 조치를 위해 중복 Cloud Router와 페어링된 여러 에지 가용성 도메인 및 리전에 중복 Cloud Interconnect VLAN 연결 또는 HA VPN 터널을 구성합니다.
- 멀티 리전 부하 분산 및 스토리지: 리전 간 고가용성을 위해 리전 간 내부 애플리케이션 부하 분산기를 사용하여 여러 리전의 프런트엔드 및 서빙 백엔드에 추론 트래픽을 분산하고 복제된 벡터 데이터 스토어와 함께 이중 리전 또는 멀티 리전 Cloud Storage 버킷을 사용합니다.
- 비동기 수집 및 할당량 복원력: 데드 레터 주제가 있는 Pub/Sub 또는 Eventarc 재시도 정책을 사용하여 Cloud Storage 버킷에 대한 원시 데이터 업로드를 수집 처리 파이프라인에서 분리하여 데이터 손실 없이 일시적인 임베딩 또는 색인 생성 실패를 재시도할 수 있습니다. 대량의 임베딩 생성 및 추론 중에 예측 가능한 지연 시간과 용량을 확보하려면 프로비저닝된 처리량을 예약하고 HTTP
429응답에 대해 지수 백오프를 구현하세요.
AI 및 ML 워크로드와 관련된 안정성 원칙 및 권장사항은 Well-Architected Framework의 AI 및 ML 관점: 안정성을 참조하세요.
비용 최적화
RAG 지원 아키텍처를 빌드하고 실행하는 비용을 최적화하려면 다음 권장사항을 고려하세요.
- 네트워크 이그레스 및 엔드포인트 선택: NCC 스포크 간 리전 간 데이터 전송 요금이 부과되지 않도록 라우팅 VPC 네트워크, Private Service Connect 엔드포인트, Cloud Storage 버킷, RAG 데이터 스토어, 모델 엔드포인트를 동일한 리전에 배치합니다. 라우팅 또는 호스트 VPC 네트워크에서 공유 Private Service Connect 엔드포인트를 통합하여 시간당 엔드포인트 및 데이터 처리 요금을 줄입니다.
- 스토리지 수명 주기 관리: 원시 데이터 수집 버킷에서 Cloud Storage 객체 수명 주기 관리 또는 자동 클래스를 구성하여 처리된 소스 문서를 더 저렴한 스토리지 클래스로 전환하거나 벡터가 RAG 데이터 스토어에 기록된 후 스테이징 파일을 삭제합니다.
- 일괄 임베딩 및 컨텍스트 캐싱: 데이터 수집 하위 시스템에서 긴급하지 않은 대규모 RAG 코퍼스 업데이트의 경우 온라인 요청보다 저렴한 비용으로 임베딩에 일괄 예측 또는 일괄 추론을 사용합니다. 서빙 하위 시스템에서 반복되는 시스템 안내와 자주 검색되는 참고 문서에 대해 컨텍스트 캐싱을 사용 설정하여 입력 토큰 비용을 줄입니다.
AI 및 ML 워크로드와 관련된 비용 최적화 원칙 및 권장사항은 Well-Architected Framework의 AI 및 ML 관점: 비용 최적화를 참조하세요.
운영 효율성
네트워킹 및 RAG 인프라를 효율적으로 운영하고 관리하려면 다음 권장사항을 고려하세요.
- 코드형 인프라(IaC): 엔터프라이즈 기반 청사진 및 Infrastructure Manager의 Terraform 모듈을 사용하여 라우팅 프로젝트, 공유 VPC 호스트 및 서비스 프로젝트, NCC 허브 및 스포크, Private Service Connect 엔드포인트, VPC 서비스 제어 경계의 프로비저닝을 자동화합니다.
- 중앙 집중식 비공개 DNS 변환: 라우팅 VPC 네트워크에서 Cloud DNS 비공개 영역과 인바운드 또는 아웃바운드 전달 정책을 사용하여 외부 네트워크 및 VPC 스포크 전반에서 DNS 관리를 간소화합니다. 그러면 온프레미스 클라이언트와 서비스 프로젝트가 Private Service Connect 엔드포인트와 내부 애플리케이션 부하 분산기 IP 주소를 자동으로 변환합니다.
- 네트워크 및 AI 모니터링 가능성: Network Intelligence Center(연결 테스트 및 Flow Analyzer 포함), Cloud Logging, Cloud Monitoring을 사용하여 하이브리드 연결, NCC 스포크 트래픽, VPC 서비스 제어 정책 거부를 모니터링합니다. Gen AI Evaluation Service를 사용하여 서빙 하위 시스템에서 검색 관련성과 그라운딩을 지속적으로 평가합니다.
AI 및 ML 워크로드와 관련된 운영 효율성 원칙 및 권장사항은 Well-Architected Framework의 AI 및 ML 관점: 운영 효율성을 참조하세요.
성능 최적화
네트워킹 및 RAG 워크로드의 성능을 최적화하려면 다음 권장사항을 고려하세요.
- 하이브리드 대역폭 및 리전 공동 배치: 대화형 추론 요청과 공유되는 대역폭을 포화시키지 않고 외부 네트워크에서 최대 원시 데이터 업로드 볼륨을 처리하도록 Cloud Interconnect VLAN 연결 또는 Cloud VPN 터널의 크기를 조정합니다. 네트워크 왕복 지연 시간을 최소화하려면 하이브리드 상호 연결 접속 지점에 가장 가까운 리전에 리전별 Private Service Connect 엔드포인트, Cloud Storage 버킷, 벡터 데이터 스토어(예: 벡터 검색 또는 PostgreSQL용 AlloyDB), 모델 엔드포인트를 공동 배치합니다.
- 컴퓨팅 확장 및 추론 라우팅: 프런트엔드 또는 서빙 하위 시스템이 Cloud Run에서 실행되는 경우 최소 인스턴스를 구성하고 동시 실행 설정을 조정하여 트래픽 급증 시 콜드 스타트 지연 시간을 없앱니다. GKE에서 개방형 모델을 제공하는 경우 추론 게이트웨이를 사용하여 모델 서버 간에 KV 캐시 인식 및 부하 인식 라우팅을 수행합니다.
AI 및 ML 워크로드와 관련된 성능 최적화 원칙 및 권장사항은 Well-Architected Framework의 AI 및 ML 관점: 성능 최적화를 참조하세요.
배포
이 섹션에서는 애플리케이션을 만드는 단계를 설명합니다.
- 워크로드의 리전을 식별합니다.
- Google Cloud 프로젝트 및 VPC 네트워크를 만듭니다.
- 외부 네트워크를 라우팅 VPC 네트워크에 연결합니다.
- NCC를 사용하여 네트워크 연결
- RAG 배포를 위한 구성요소를 식별하고 서비스 계정을 만듭니다.
- VPC 서비스 제어를 구성합니다.
- 데이터 수집 하위 시스템 빌드
- 서빙 하위 시스템을 빌드합니다.
- 프런트엔드 하위 시스템을 빌드합니다.
- 인터넷에서 애플리케이션에 연결할 수 있도록 설정
워크로드의 리전 식별
일반적으로 연결, VPC 서브넷, Google Cloud워크로드를 온프레미스 네트워크 또는 다른 클라우드 클라이언트와 가까운 위치에 배치하는 것이 좋습니다. 워크로드의 리전을 선택하는 방법에 대한 자세한 내용은 Google Cloud 리전 선택 도구 및 Compute Engine 리전 선택 권장사항을 참조하세요.
Google Cloud 프로젝트 및 VPC 네트워크 만들기
조직에서 이미 분산 애플리케이션용 크로스 클라우드 네트워크를 설정한 경우 라우팅 프로젝트와 라우팅 VPC 네트워크가 이미 존재해야 합니다.
Google Cloud 프로젝트와 VPC 네트워크를 다음 순서로 만듭니다.
- 라우팅 프로젝트를 만듭니다.
- 비공개 Google 액세스가 사용 설정된 라우팅 VPC 네트워크를 만듭니다.
- RAG 프로젝트를 만듭니다.
- RAG 프로젝트를 공유 VPC 호스트 프로젝트로 승격합니다.
- 데이터 수집 서비스 프로젝트를 만듭니다.
- 서빙 서비스 프로젝트를 만듭니다.
- 프런트엔드 서비스 프로젝트를 만듭니다.
- 비공개 Google 액세스가 사용 설정된 공유 VPC RAG 네트워크를 만듭니다.
- 서비스 프로젝트에 RAG 네트워크를 사용할 수 있는 권한을 부여합니다.
외부 네트워크를 라우팅 VPC 네트워크에 연결
분산 애플리케이션을 위한 크로스 클라우드 네트워크를 이미 설정한 경우 이 단계를 건너뛸 수 있습니다.
외부 네트워크와 라우팅 네트워크 간의 연결을 설정합니다. 관련 기술을 이해하려면 외부 및 하이브리드 연결을 참조하세요. 연결 제품을 선택하는 방법에 대한 안내는 네트워크 연결 제품 선택을 참조하세요.
NCC를 사용하여 네트워크 연결
- 라우팅 프로젝트에서 NCC 허브를 만듭니다.
- Cloud Interconnect 연결을 VLAN 연결 스포크로 추가하거나 Cloud VPN 연결을 VPN 스포크로 추가합니다.
- RAG VPC 네트워크와 라우팅 VPC 네트워크를 허브에 VPC 스포크로 추가합니다.
RAG 배포를 위한 구성요소 식별 및 서비스 계정 생성
- RAG 배포를 선택하고 필요한 구성요소 목록을 만듭니다.
- 각 구성요소에 필요한 액세스 권한을 식별합니다.
- 각 구성요소에 대해 적절한 권한이 있는 서비스 계정을 만듭니다. 경우에 따라 이는 구성요소에 다른 서비스 프로젝트에서 읽거나 쓸 수 있는 권한을 부여하는 것을 의미합니다.
이 설계에서는 Cloud Storage 버킷을 데이터 입력 구성요소로 사용하고 추론 프런트엔드에서 애플리케이션 부하 분산기를 사용한다고 가정합니다. 나머지 설계는 필요에 따라 달라질 수 있습니다.
이상적으로는 각 구성요소가 자체 서비스 계정으로 실행됩니다. 각 구성요소에 필요한 기능을 수행하는 데 필요한 최소 IAM 권한만 있는지 확인합니다. 예를 들어 데이터 수집 하위 시스템의 Cloud Run 작업은 입력 Cloud Storage 버킷에서 읽어야 하지만 버킷에 쓸 필요는 없습니다. 이 예시에서 Cloud Run 작업을 실행하는 서비스 프로젝트에는 버킷에서 읽을 수 있는 권한만 있어야 하며 쓰기 권한은 없어야 합니다.
VPC 서비스 제어를 구성합니다.
- 배포 주변에 VPC 서비스 제어 경계를 만듭니다.
- 액세스 규칙을 구성합니다.
데이터 수집 하위 시스템 빌드
데이터 수집 하위 시스템은 데이터 엔지니어로부터 원시 데이터를 가져와 서빙 하위 시스템에서 사용할 수 있도록 처리합니다.
- 데이터 수집 서비스 프로젝트에서 Cloud Storage 버킷을 만듭니다.
- 라우팅 VPC 네트워크에서 리전 Private Service Connect 엔드포인트를 만들고 엔드포인트를 버킷에 연결합니다.
- 외부 네트워크에서 이전 단계에서 생성된 IP 주소와 URL을 사용하여 엔드포인트의 DNS 항목을 추가합니다.
- 엔드포인트 IP 주소에 대한 액세스를 허용하도록 외부 네트워크 방화벽 규칙을 업데이트합니다.
- 데이터 수집 서비스 프로젝트에서 선택한 RAG 아키텍처에 따라 나머지 수집 파이프라인을 빌드합니다.
- 수집 파이프라인의 관련 리소스가 벡터를 생성하는 모델에 액세스할 수 있도록 IAM 권한을 부여합니다.
- 수집 파이프라인의 관련 리소스가 벡터 데이터 스토어에 쓸 수 있도록 IAM 권한을 부여합니다.
서빙 하위 시스템 빌드
- 서빙 서비스 프로젝트에서 서빙 파이프라인을 빌드합니다.
- 프런트엔드 시스템의 서비스 계정이 서빙 하위 시스템의 출력에 액세스할 수 있도록 IAM 권한을 부여합니다.
프런트엔드 하위 시스템 빌드
이 섹션에서는 Cloud Run 앞에 서버리스 NEG를 사용하는 리전 내부 애플리케이션 부하 분산기를 사용한다고 가정합니다. 하지만 다른 부하 분산기와 백엔드를 사용할 수 있습니다.
- 프런트엔드 시스템의 코드를 만듭니다.
- 프런트엔드 서비스 프로젝트에서 Cloud Armor 보안 정책을 구성하는 선택적 단계가 포함된 부하 분산 프런트엔드 시스템을 배포합니다.
- RAG VPC 네트워크에서 온프레미스 라우터로 경로를 전달하도록 라우팅 VPC 네트워크에서 Cloud Router를 구성합니다. 이 구성을 사용하면 클라이언트가 애플리케이션 부하 분산기에 도달할 수 있습니다.
- 외부 네트워크에서 외부 네트워크에서 부하 분산기 프런트엔드에 연결할 수 있도록 방화벽 규칙을 구성합니다.
- 외부 네트워크에서 애플리케이션 부하 분산기 전달 규칙을 가리키도록 DNS를 업데이트합니다.
인터넷에서 애플리케이션에 연결할 수 있도록 설정
이 섹션은 선택사항입니다.
이 설계에서는 외부 네트워크에서만 서비스에 연결할 수 있다고 가정하지만 인터넷에서 서비스에 연결할 수도 있습니다.
인터넷에서 서비스에 연결할 수 있도록 하려면 다음 단계를 완료합니다.
- 내부 애플리케이션 부하 분산기가 가리키는 동일한 백엔드를 가리키는 리전 외부 애플리케이션 부하 분산기를 만듭니다. Cloud Armor 보안 정책을 구성하는 선택적 단계를 완료합니다.
- 서비스 고객이 백엔드 서비스에 연결할 수 있도록 VPC 서비스 제어를 업데이트합니다.
다음 단계
- 분산형 애플리케이션을 위한 크로스 클라우드 네트워크 알아보기
- Cloud Run에서 AI 앱 및 에이전트를 호스팅하는 방법 알아보기
- 책임감 있는 AI 권장사항 및 Agent Platform 안전 필터 알아보기
- LLM 프롬프팅 전략 알아보기
- Google Cloud에서 AI 및 ML 워크로드와 관련된 아키텍처 원칙 및 권장사항에 대한 개요는 Well-Architected Framework의 AI 및 ML 관점을 참조하세요.
- 그 밖의 참조 아키텍처, 다이어그램, 튜토리얼, 권장사항을 알아보려면 Cloud 아키텍처 센터를 확인하세요.
참여자
저자:
- Deepak Michael | 네트워킹 전문 고객 엔지니어
- 마크 슐라겐하우프 | 네트워킹 테크니컬 라이터
기타 참여자:
- 저자: 쿠마르 다나고팔 | 크로스 프로덕트 솔루션 개발자
- 빅터 모레노 | Cloud Networking 제품 관리자
- 사만다 헤 | 테크니컬 라이터
- 아밋 윌리엄스 | 개발자 관계팀 엔지니어
- 아스펜 셰릴 | 클라우드 보안 설계자