이 문서에서는 검색 증강 생성 (RAG)을 사용하는 애플리케이션의 네트워크 인프라를 보호하는 데 사용할 수 있는 참조 아키텍처를 제공합니다. RAG 아키텍처에는 일반적으로 데이터 처리 및 콘텐츠 검색 흐름을 처리하는 별도의 하위 시스템이 포함됩니다. 이 참조 아키텍처에서는 공유 VPC를 사용하여 다음 작업을 수행하는 방법을 보여줍니다.
- Identity and Access Management (IAM) 권한을 사용하여 하위 시스템 간에 분리를 만듭니다.
- 비공개 IP 주소를 사용하여 애플리케이션 구성요소를 연결합니다.
이 문서의 주요 대상에는 설계자, 개발자, 네트워킹 및 보안 관리자가 포함됩니다. 이 문서에서는 사용자가 네트워킹에 대한 기본적인 지식이 있다고 가정합니다. 이 문서에서는 RAG 기반 애플리케이션의 생성에 대해 설명하지 않습니다.
아키텍처
다음 다이어그램은 이 문서에 제시된 네트워킹 아키텍처를 보여줍니다.
위 다이어그램의 아키텍처에는 다음 구성요소가 표시되어 있습니다.
| 구성요소 | 목적 |
|---|---|
| 온프레미스 또는 다른 클라우드의 외부 네트워크 |
|
| 라우팅 프로젝트 |
|
| RAG 공유 VPC 호스트 프로젝트 | 프런트엔드 서비스 부하 분산기와 VPC 네트워크가 필요한 기타 서비스를 호스팅하는 공유 VPC 네트워크를 호스팅합니다. 모든 서비스 프로젝트가 해당 공유 VPC 네트워크에 액세스할 수 있습니다. |
| 데이터 수집 서비스 프로젝트 |
원시 데이터 입력을 위한 Cloud Storage 버킷을 포함합니다. 다음 구성요소를 포함하는 데이터 수집 하위 시스템을 포함합니다.
|
| 제공 서비스 프로젝트 |
추론 및 상호작용을 위한 서비스와 기능을 제공하는 다음 구성요소를 포함하는 서빙 하위 시스템을 포함합니다.
|
| 프런트엔드 서비스 프로젝트 |
Cloud Run 또는 Google Kubernetes Engine (GKE)에서 실행되는 사용자 상호작용 서비스 앞에 있는 부하 분산기인 서빙 하위 시스템을 포함합니다. 또한 프로젝트에는 서비스 액세스 방법을 제한하는 데 도움이 되는 Google Cloud Armor가 포함되어 있습니다. 인터넷에서 액세스할 수 있도록 하려면 리전 외부 애플리케이션 부하 분산기를 추가하면 됩니다. |
| VPC 서비스 제어 경계 | 데이터 무단 반출을 방지하는 데 도움이 됩니다. Cloud Storage 버킷에 저장된 데이터는 경계 외부로 복사할 수 없으며 컨트롤 플레인 작업은 보호됩니다. |
다음 섹션에서는 아키텍처의 연결 및 트래픽 흐름을 설명합니다.
구성요소 간 연결
이 섹션에서는 이 아키텍처의 구성요소와 네트워크 간 연결을 설명합니다.
외부 네트워크에서 라우팅 VPC 네트워크로
외부 네트워크는 Network Connectivity Center 허브의 하이브리드 스포크인 Cloud Interconnect 또는 HA VPN을 통해 Google Cloud 라우팅 VPC 네트워크에 연결됩니다.
라우팅 VPC 네트워크의 Cloud Router와 외부 네트워크의 외부 라우터는 경계 게이트웨이 프로토콜 (BGP) 경로를 교환합니다.
- 외부 네트워크의 라우터는 라우팅 VPC Cloud Router에 외부 서브넷의 경로를 공지합니다. BGP 측정항목과 속성을 사용하여 경로의 선호도를 표현할 수 있습니다.
- 라우팅 VPC 네트워크의 Cloud Router는 Google CloudVPC의 프리픽스 경로를 외부 네트워크에 공지합니다.
VPC 네트워크를 공유 VPC 네트워크로 라우팅
Network Connectivity Center 허브의 Network Connectivity Center VPC 스포크를 사용하여 라우팅 VPC 네트워크와 RAG VPC 네트워크를 연결합니다. 허브는 외부 네트워크에 대한 하이브리드 스포크도 호스팅합니다.
공유 VPC 네트워크 내 리소스 간
이 설계에서는 Cloud Storage 버킷이 외부 네트워크에서 데이터를 수신합니다. 추론 요청은 리전 내부 애플리케이션 부하 분산기를 통해 이루어집니다. 나머지 시스템에는 다음 옵션이 있습니다.
- Cloud Storage 버킷, Vertex AI, Cloud Run, Pub/Sub과 같은 Google SaaS 인프라에 모든 것을 호스팅합니다. 이 경우 구성요소는 비공개 Google 인프라를 통해 통신합니다.
- Compute Engine VM, GKE 클러스터, Cloud SQL 데이터베이스 또는 VPC 네트워크에서 실행되는 기타 구성요소에서 실행되는 워크로드의 모든 항목을 호스팅합니다. 이 경우 시스템은 Network Connectivity Center 또는 VPC 네트워크 피어링을 통해 연결된 네트워크 간에 비공개 IP 주소를 사용하여 통신합니다.
- 완전 관리형, 플랫폼, 인프라 서비스를 혼합하여 사용합니다. 이 경우 다음 방법을 사용하여 VPC 네트워크와 완전 관리형 서비스 간에 연결할 수 있습니다.
- 비공개 Google 액세스: 이 방법을 사용하면 외부 IP 주소가 없고 VPC 네트워크에서 실행되는 워크로드가 Google API에 액세스할 수 있습니다. 이 액세스는 Google 인프라를 통해 내부적으로 이루어지며 이 프로세스는 이러한 트래픽을 인터넷에 노출하지 않습니다.
- Private Service Connect: 이 방법을 사용하면 관리형 VPC 네트워크에서 호스팅되는 PostgreSQL용 AlloyDB와 같은 서비스의 서비스 프로젝트에서 엔드포인트를 만들 수 있습니다.
프런트엔드 서비스 부하 분산기에 대한 외부 네트워크
리전 내부 애플리케이션 부하 분산기의 엔드포인트는 RAG 네트워크의 IP 주소입니다. RAG 네트워크, 라우팅 네트워크, 외부 네트워크에 대한 하이브리드 연결은 모두 동일한 Network Connectivity Center 허브의 스포크입니다. 따라서 Network Connectivity Center에 모든 스포크 하위 범위를 허브로 내보내도록 지시할 수 있으며, 그러면 허브에서 해당 하위 범위를 다른 스포크 네트워크로 다시 내보냅니다. 그러면 시스템의 최종 사용자가 외부 네트워크에서 부하 분산된 서비스에 도달할 수 있습니다.
트래픽 흐름
이 참조 아키텍처의 트래픽 흐름에는 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 네트워크에 연결할 수 있습니다.
- 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에서 실행되는 경우 애플리케이션 부하 분산기 대신 추론 게이트웨이를 사용할 수 있습니다.
설계 고려사항
이 섹션에서는 RAG 지원 아키텍처의 비공개 연결을 지원하는 네트워킹을 배포하는 데 도움이 되는 추가 안내를 제공합니다. 이 가이드는 보안 및 규정 준수, 안정성, 비용, 성능에 대한 특정 요구사항을 충족하는 데 도움이 됩니다. 이 섹션의 안내는 일부일 뿐 모든 내용을 포함하지는 않습니다. 특정 배포의 경우 이 섹션에서 다루지 않는 추가 설계 요소를 고려해야 할 수 있습니다.
보안, 개인 정보 보호, 규정 준수
대부분의 경우 AI 모델 앞에 Model Armor를 배포하여 인바운드 프롬프트와 아웃바운드 결과를 모두 평가합니다. Model Armor는 잠재적 위험을 방지하고 책임감 있는 AI 관행을 보장하는 데 도움이 됩니다.
부적절한 요청이 제공 하위 시스템에 도달하기 전에 거부하려면 부하 분산기에 Model Armor를 연결하면 됩니다.
이 아키텍처는 무단 데이터 무단 반출을 방지하는 데 도움이 되는 VPC 서비스 제어를 사용합니다.
이 설계는 확립된 보안 원칙을 사용하여 RAG 워크로드를 보호합니다. AI 및 ML 워크로드와 관련된 보안 원칙 및 권장사항은 Well-Architected Framework의 AI 및 ML 관점: 보안을 참조하세요.
비용 최적화
AI 및 ML 워크로드와 관련된 비용 최적화 원칙 및 권장사항은 Well-Architected Framework의 AI 및 ML 관점: 비용 최적화를 참조하세요.
성능 최적화
AI 및 ML 워크로드와 관련된 성능 최적화 원칙 및 권장사항은 Well-Architected Framework의 AI 및 ML 관점: 성능 최적화를 참조하세요.
배포
이 섹션에서는 애플리케이션을 만드는 단계를 설명합니다.
- 워크로드의 리전 식별
- Google Cloud 프로젝트 및 VPC 네트워크 만들기
- 외부 네트워크를 라우팅 VPC 네트워크에 연결합니다.
- Network Connectivity Center를 사용하여 네트워크 연결
- RAG 배포를 위한 구성요소 식별 및 서비스 계정 생성
- VPC 서비스 제어 구성
- 데이터 수집 하위 시스템 빌드
- 서빙 하위 시스템 빌드
- 프런트엔드 하위 시스템 빌드
- 인터넷에서 애플리케이션에 연결할 수 있도록 설정
워크로드의 리전 식별
일반적으로 연결, VPC 서브넷, 워크로드를 온프레미스 네트워크 또는 기타 클라우드 클라이언트와 가까운 곳에 배치하는 것이 좋습니다. Google Cloud워크로드의 리전을 선택하는 방법에 대한 자세한 내용은 Google Cloud 리전 선택기 및 Compute Engine 리전 선택 권장사항을 참고하세요.
Google Cloud 프로젝트 및 VPC 네트워크 만들기
조직에서 이미 분산 애플리케이션용 크로스 클라우드 네트워크를 설정한 경우 라우팅 프로젝트와 라우팅 VPC 네트워크가 이미 있어야 합니다.
다음 순서로 Google Cloud projects와 VPC 네트워크를 만듭니다.
- 라우팅 프로젝트를 만듭니다.
- 비공개 Google 액세스가 사용 설정된 라우팅 VPC 네트워크를 만듭니다.
- RAG 프로젝트를 만듭니다.
- RAG 프로젝트를 공유 VPC 호스트 프로젝트로 승격
- 데이터 수집 서비스 프로젝트를 만듭니다.
- 서빙 서비스 프로젝트를 만듭니다.
- 프런트엔드 서비스 프로젝트를 만듭니다.
- 비공개 Google 액세스가 사용 설정된 공유 VPC RAG 네트워크를 만듭니다.
- 서비스 프로젝트에 RAG 네트워크를 사용할 수 있는 권한을 부여합니다.
외부 네트워크를 라우팅 VPC 네트워크에 연결
분산 애플리케이션을 위한 교차 클라우드 네트워크를 이미 설정한 경우 이 단계를 건너뛸 수 있습니다.
외부 네트워크와 라우팅 네트워크 간의 연결을 설정합니다. 관련 기술을 이해하려면 외부 및 하이브리드 연결을 참고하세요. 연결 제품을 선택하는 방법에 대한 안내는 네트워크 연결 제품 선택을 참고하세요.
Network Connectivity Center를 사용하여 네트워크 연결
- 라우팅 프로젝트에서 Network Connectivity Center 허브를 만듭니다.
- 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 보안 정책을 구성하는 선택적 단계를 포함하여 부하 분산 프런트엔드 시스템을 배포합니다.
- 라우팅 VPC 네트워크에서 Cloud Router를 구성하여 RAG VPC 네트워크에서 온프레미스 라우터로 경로를 전달합니다. 이 구성을 사용하면 클라이언트가 부하 분산기에 도달할 수 있습니다.
- 외부 네트워크에서 부하 분산기 프런트엔드에 외부 네트워크에서 연결할 수 있도록 방화벽 규칙을 구성합니다.
- 외부 네트워크에서 부하 분산기 전달 규칙을 가리키도록 DNS를 업데이트합니다.
인터넷에서 애플리케이션에 연결할 수 있도록 설정
이 섹션은 선택사항입니다.
이 설계에서는 서비스가 외부 네트워크에서만 연결될 수 있다고 가정하지만 인터넷에서도 서비스에 연결할 수 있습니다.
인터넷에서 서비스에 연결할 수 있도록 하려면 다음 단계를 완료하세요.
- 내부 부하 분산기가 가리키는 것과 동일한 백엔드를 가리키는 리전 외부 애플리케이션 부하 분산기를 만듭니다. 선택사항인 단계를 완료하여 Cloud Armor 보안 정책을 구성합니다.
- 서비스 고객이 백엔드 서비스에 도달할 수 있도록 VPC 서비스 제어를 업데이트합니다.
다음 단계
- 분산 애플리케이션을 위한 크로스 클라우드 네트워크에 대해 알아봅니다.
- Cloud Run에서 AI 앱 및 에이전트를 호스팅하는 방법을 알아봅니다.
- 책임감 있는 AI 권장사항 및 Vertex AI 안전 필터 알아보기
- 대규모 언어 모델 (LLM) 권장사항을 알아보세요.
- Google Cloud에서 AI 및 ML 워크로드와 관련된 아키텍처 원칙 및 권장사항에 대한 개요는 Well-Architected Framework의 AI 및 ML 관점을 참조하세요.
- 그 밖의 참조 아키텍처, 다이어그램, 튜토리얼, 권장사항을 알아보려면 Cloud 아키텍처 센터를 확인하세요.
참여자
저자:
- Deepak Michael | 네트워킹 전문 고객 엔지니어
- 마크 슐라겐하우프 | 네트워킹 테크니컬 라이터
기타 참여자:
- 저자: 쿠마르 다나고팔 | 크로스 프로덕트 솔루션 개발자
- 빅터 모레노 | Cloud Networking 제품 관리자
- 사만다 헤 | 테크니컬 라이터
- 아밋 윌리엄스 | 개발자 관계팀 엔지니어
- 애스펀 셔릴 | 클라우드 보안 설계자