Konektivitas pribadi untuk aplikasi AI generatif berkemampuan RAG

Dokumen ini memberikan arsitektur referensi yang dapat Anda gunakan untuk membantu mengamankan infrastruktur jaringan untuk aplikasi dengan retrieval-augmented generation (RAG). Arsitektur RAG biasanya berisi subsistem terpisah untuk menangani aliran pemrosesan data dan pengambilan konten. Arsitektur referensi ini menunjukkan cara menggunakan VPC Bersama untuk melakukan hal berikut:

  • Buat pemisahan antar-subsistem menggunakan izin Identity and Access Management (IAM).
  • Hubungkan komponen aplikasi menggunakan alamat IP pribadi.

Audiens yang dituju untuk dokumen ini mencakup arsitek, developer, serta administrator jaringan dan keamanan. Dokumen ini mengasumsikan bahwa Anda memiliki pemahaman dasar tentang jaringan. Dokumen ini tidak menjelaskan pembuatan aplikasi berbasis RAG.

Arsitektur

Diagram berikut menunjukkan arsitektur jaringan yang disajikan dalam dokumen ini:

Arsitektur jaringan untuk aplikasi dengan RAG. Koneksi dan alur traffic untuk arsitektur jaringan.

Arsitektur dalam diagram sebelumnya menampilkan komponen berikut:

Komponen Tujuan
Jaringan eksternal, baik di infrastruktur lokal maupun di cloud lain
  • Menyediakan konektivitas jaringan bagi data engineer yang mengupload data RAG mentah.
  • Menghentikan konektivitas jaringan eksternal.
  • Menghosting router eksternal.
  • Menyediakan konektivitas ke endpoint Private Service Connect di jaringan Virtual Private Cloud (VPC) perutean Google Cloud .
  • Berisi server DNS yang mengarah ke endpoint Private Service Connect.
Project perutean
  • Menampung jaringan VPC perutean, yang terhubung ke jaringan eksternal melalui koneksi Cloud Interconnect atau HA VPN.
  • Menghosting hub Network Connectivity Center yang menghubungkan jaringan eksternal, jaringan VPC perutean, dan jaringan VPC Bersama.
  • Menghosting endpoint Private Service Connect yang terhubung ke endpoint Cloud Storage regional. Endpoint ini memungkinkan engineer data mengupload data RAG ke bucket Cloud Storage.
Project host VPC Bersama RAG Menghosting jaringan VPC Bersama yang menghosting load balancer layanan frontend dan layanan lain yang memerlukan jaringan VPC. Semua project layanan memiliki akses ke jaringan VPC Bersama tersebut.
Project layanan penyerapan data

Berisi bucket Cloud Storage untuk input data mentah. Berisi subsistem penyerapan data, yang mencakup komponen berikut:

  • Pemrosesan penyerapan: Membaca data mentah dan memprosesnya.
  • Output penyerapan: Menulis ke datastore akhir.
Menayangkan project layanan

Berisi subsistem penayangan, yang mencakup komponen berikut yang menyediakan layanan dan fungsi untuk inferensi dan interaksi:

  • Datastore RAG yang berisi output subsistem penyerapan data.
  • Proses penayangan yang memasukkan data ke model dengan menggabungkan kueri inferensi dengan data dari datastore RAG.
  • Model yang digunakan subsistem penayangan untuk membuat vektor dari data RAG yang diupload dan untuk memproses permintaan pengguna akhir.
Project layanan frontend

Berisi subsistem penayangan, yang merupakan load balancer di depan layanan interaksi pengguna yang berjalan di Cloud Run atau Google Kubernetes Engine (GKE).

Project ini juga berisi Google Cloud Armor, yang membantu membatasi cara layanan Anda diakses. Jika ingin menyediakan akses dari internet, Anda dapat menambahkan Load Balancer Aplikasi eksternal regional.

Perimeter Kontrol Layanan VPC Membantu melindungi dari pemindahan data yang tidak sah. Data yang disimpan di bucket Cloud Storage tidak dapat disalin ke mana pun di luar perimeter, dan operasi bidang kontrol dilindungi.

Bagian berikut menjelaskan koneksi dan alur traffic yang ada dalam arsitektur.

Koneksi antar-komponen

Bagian ini menjelaskan koneksi antara komponen dan jaringan dalam arsitektur ini.

Jaringan eksternal ke jaringan VPC perutean

Jaringan eksternal terhubung ke jaringan VPC Google Cloud routing melalui Cloud Interconnect atau HA VPN, yang merupakan spoke hybrid dari hub Network Connectivity Center.

Cloud Router di jaringan VPC perutean dan router eksternal di jaringan eksternal bertukar rute Border Gateway Protocol (BGP):

  • Router di jaringan eksternal mengumumkan rute untuk subnet eksternal ke Cloud Router VPC perutean. Anda dapat menyatakan preferensi rute menggunakan metrik dan atribut BGP.
  • Cloud Router di jaringan VPC perutean mengiklankan rute untuk awalan di VPC Google Cloudke jaringan eksternal.

Merutekan jaringan VPC ke jaringan VPC Bersama

Anda menghubungkan jaringan VPC perutean dan jaringan VPC RAG menggunakan spoke VPC Network Connectivity Center dari hub Network Connectivity Center. Hub juga menghosting spoke hybrid ke jaringan eksternal.

Resource-ke-resource dalam jaringan VPC Bersama

Dalam desain ini, bucket Cloud Storage menerima data dari jaringan eksternal. Permintaan inferensi masuk melalui Load Balancer Aplikasi internal regional. Untuk sistem lainnya, Anda memiliki opsi berikut:

  • Menghosting semuanya di infrastruktur SaaS Google, seperti bucket Cloud Storage, Vertex AI, Cloud Run, dan Pub/Sub. Dalam hal ini, komponen berkomunikasi melalui infrastruktur Google pribadi.
  • Menghosting semua hal dalam workload yang berjalan di VM Compute Engine, cluster GKE, database Cloud SQL, atau komponen lain yang berjalan di jaringan VPC. Dalam hal ini, sistem berkomunikasi menggunakan alamat IP pribadi di seluruh jaringan yang Anda tautkan melalui Network Connectivity Center atau Peering Jaringan VPC.
  • Gunakan campuran layanan terkelola sepenuhnya, platform, dan infrastruktur. Dalam hal ini, Anda dapat membuat koneksi antara jaringan VPC dan layanan yang dikelola sepenuhnya menggunakan metode berikut:
    • Akses Google Pribadi: Dengan metode ini, workload yang tidak memiliki alamat IP eksternal dan yang berjalan di jaringan VPC dapat mengakses Google API. Akses ini terjadi secara internal melalui infrastruktur Google dan proses ini tidak mengekspos traffic tersebut ke internet.
    • Private Service Connect: Dengan metode ini, Anda dapat membuat endpoint di project layanan untuk layanan seperti AlloyDB for PostgreSQL yang dihosting di jaringan VPC terkelola.

Load balancer layanan frontend ke jaringan eksternal

Endpoint Load Balancer Aplikasi internal regional adalah alamat IP di jaringan RAG. Jaringan RAG, jaringan perutean, dan koneksi hybrid ke jaringan eksternal semuanya merupakan spoke dari hub Network Connectivity Center yang sama. Oleh karena itu, Anda dapat menginstruksikan Network Connectivity Center untuk mengekspor semua subrentang spoke ke hub, yang kemudian mengekspor ulang subrentang tersebut ke jaringan spoke lainnya. Pengguna akhir sistem kemudian dapat mengakses layanan yang di-load balance dari jaringan eksternal.

Alur traffic

Alur traffic dalam arsitektur referensi ini mencakup alur data RAG dan alur inferensi.

Alur populasi RAG

Alur ini menjelaskan cara data RAG mengalir melalui sistem dari engineer data ke penyimpanan vektor.

  1. Dari jaringan eksternal, engineer data mengupload data mentah melalui koneksi Cloud Interconnect atau koneksi Cloud VPN. Data diupload ke endpoint Private Service Connect di jaringan VPC perutean.
  2. Data ditransfer melalui infrastruktur internal Google ke bucket Cloud Storage di project layanan penyerapan data.
  3. Dalam project layanan penyerapan data, data berpindah antar-sistem dengan menggunakan salah satu metode berikut:

    • Akses Google Pribadi
    • Endpoint Private Service Connect
    • Infrastruktur Google langsung

    Metode ini bergantung pada apakah sistem dihosting di Google Cloud jaringan VPC atau langsung di Google Cloud. Sebagai bagian dari alur ini, subsistem penyerapan data akan memasukkan data RAG yang dipecah-pecah ke model, yang menghasilkan vektor untuk setiap potongan.

  4. Subsistem penyerapan data menulis data vektor dan data yang dikelompokkan ke datastore yang sesuai.

Alur inferensi

Alur ini menjelaskan permintaan pelanggan.

  1. Dari jaringan eksternal, pelanggan mengirim permintaan ke alamat IP layanan.
  2. Permintaan berjalan melalui koneksi Cloud Interconnect atau koneksi Cloud VPN ke jaringan VPC perutean.
  3. Permintaan berjalan melalui koneksi spoke VPC ke jaringan VPC RAG.
  4. Permintaan pelanggan tiba di load balancer, yang meneruskan permintaan ke subsistem frontend.
  5. Subsistem frontend meneruskan permintaan ke subsistem inferensi.
  6. Subsistem penayangan melengkapi permintaan dengan menggunakan data kontekstual yang relevan dari datastore.
  7. Subsistem inferensi mengirimkan perintah yang telah diaugmentasi ke model AI, yang menghasilkan respons.

Produk yang digunakan

Arsitektur referensi ini menggunakan produk Google Cloud berikut:

  • Virtual Private Cloud (VPC): Sistem virtual yang menyediakan fungsi jaringan global dan skalabel untuk workload Google Cloud Anda. VPC mencakup Peering Jaringan VPC, Private Service Connect, akses layanan pribadi, dan VPC Bersama.
  • VPC Bersama: Fitur Virtual Private Cloud yang memungkinkan Anda menghubungkan resource dari beberapa project ke jaringan VPC umum menggunakan alamat IP internal dari jaringan tersebut.
  • Private Service Connect: Fitur yang memungkinkan konsumen mengakses layanan terkelola secara pribadi dari dalam jaringan VPC mereka.
  • Akses Google Pribadi: Fitur yang memungkinkan instance VM tanpa alamat IP eksternal menjangkau alamat IP eksternal Google API dan layanan Google.
  • Cloud Interconnect: Layanan yang memperluas jaringan eksternal Anda ke jaringan Google melalui koneksi latensi rendah yang memiliki ketersediaan tinggi.
  • Cloud VPN: Layanan yang memperluas jaringan peer Anda dengan aman ke jaringan Google melalui tunnel VPN IPsec.
  • Cloud Router: Penawaran terdistribusi dan terkelola sepenuhnya yang menyediakan kemampuan speaker dan responder Border Gateway Protocol (BGP). Cloud Router berfungsi dengan Cloud Interconnect, Cloud VPN, dan appliance Router untuk membuat rute dinamis di jaringan VPC berdasarkan rute yang diterima BGP dan rute kustom yang dipelajari.
  • Network Connectivity Center: Framework orkestrasi yang menyederhanakan konektivitas jaringan di antara resource spoke yang terhubung ke resource pengelolaan terpusat yang disebut hub.
  • Kontrol Layanan VPC: Fungsionalitas jaringan terkelola yang meminimalkan risiko pemindahan data yang tidak sah untuk resource Google Cloud Anda.
  • Cloud Load Balancing: Portofolio load balancer global dan regional yang berperforma tinggi dan skalabel.
  • Model Armor: Layanan yang memberikan perlindungan untuk resource AI generatif dan agentic Anda terhadap injeksi perintah, kebocoran data sensitif, dan konten berbahaya.
  • Google Cloud Armor: Layanan keamanan jaringan yang menawarkan aturan firewall aplikasi web (WAF) dan membantu melindungi dari serangan DDoS dan serangan aplikasi.
  • Cloud Storage: Penyimpanan objek berbiaya rendah dan tanpa batas untuk beragam jenis data. Data dapat diakses dari dalam dan luar Google Cloud, serta direplikasi di berbagai lokasi untuk redundansi.

Kasus penggunaan

Arsitektur ini dirancang untuk skenario perusahaan di mana input, output, dan komunikasi internal sistem secara keseluruhan harus menggunakan alamat IP pribadi dan tidak boleh melintasi internet:

  • Input pribadi: Data yang diupload tidak ditransfer melalui internet. Sebagai gantinya, Anda menghosting bucket Cloud Storage di belakang endpoint Private Service Connect di jaringan VPC perutean Google Cloud Anda. Anda menyalin data RAG melalui koneksi Cloud Interconnect atau Cloud VPN dengan hanya menggunakan alamat IP pribadi.
  • Konektivitas antar-layanan pribadi: Layanan berkomunikasi satu sama lain melalui antarmuka internal Google atau melalui alamat pribadi yang bersifat internal untuk jaringan VPC Anda.
  • Output pribadi: Hasil inferensi tidak dapat diakses melalui internet kecuali jika Anda memilih untuk menyiapkan akses tersebut. Secara default, hanya pengguna di jaringan eksternal yang ditentukan yang dapat menjangkau endpoint pribadi layanan Anda.

Alternatif desain

Bagian ini menyajikan pendekatan desain jaringan alternatif yang dapat Anda pertimbangkan untuk aplikasi yang kompatibel dengan RAG di Google Cloud.

Menjadikan layanan tersedia secara publik

Dalam arsitektur yang ditampilkan dalam dokumen ini, hanya pengguna di jaringan internal Anda yang dapat mengirim kueri ke aplikasi Anda. Jika aplikasi Anda harus dapat diakses oleh klien di internet, gunakan Load Balancer Aplikasi eksternal regional.

Menggunakan GKE Inference Gateway

Jika subsistem frontend Anda berjalan di GKE, Anda dapat menggunakan Inference Gateway alih-alih Load Balancer Aplikasi.

Pertimbangan desain

Bagian ini memberikan panduan tambahan untuk membantu Anda men-deploy jaringan guna mendukung konektivitas pribadi untuk arsitektur yang kompatibel dengan RAG. Panduan ini dapat membantu Anda memenuhi persyaratan spesifik Anda untuk keamanan dan kepatuhan, keandalan, biaya, dan performa. Panduan di bagian ini tidak lengkap. Untuk deployment tertentu, Anda mungkin perlu mempertimbangkan faktor desain tambahan yang tidak dibahas di bagian ini.

Keamanan, privasi, dan kepatuhan

Dalam sebagian besar kasus, Anda men-deploy Model Armor di depan model AI untuk mengevaluasi perintah masuk dan hasil keluar. Model Armor membantu mencegah potensi risiko dan membantu memastikan praktik AI yang bertanggung jawab.

Untuk menolak permintaan yang tidak pantas sebelum mencapai subsistem penayangan, Anda dapat melampirkan Model Armor ke load balancer.

Arsitektur ini menggunakan Kontrol Layanan VPC, yang membantu mencegah pemindahan data yang tidak sah.

Desain ini menggunakan prinsip keamanan yang sudah mapan untuk membantu mengamankan workload RAG Anda. Untuk mengetahui prinsip dan rekomendasi keamanan khusus untuk workload AI dan ML, lihat Perspektif AI dan ML: Keamanan dalam Framework yang Dirancang dengan Baik.

Pengoptimalan biaya

Untuk prinsip dan rekomendasi pengoptimalan biaya yang khusus untuk workload AI dan ML, lihat Perspektif AI dan ML: Pengoptimalan biaya dalam Well-Architected Framework.

Pengoptimalan performa

Untuk prinsip dan rekomendasi pengoptimalan performa yang khusus untuk workload AI dan ML, lihat Perspektif AI dan ML: Pengoptimalan performa dalam Well-Architected Framework.

Deployment

Bagian ini menjelaskan langkah-langkah untuk membuat aplikasi Anda:

  1. Identifikasi region untuk workload.
  2. Buat Google Cloud project dan jaringan VPC.
  3. Hubungkan jaringan eksternal Anda ke jaringan VPC perutean.
  4. Menghubungkan jaringan menggunakan Network Connectivity Center.
  5. Identifikasi komponen untuk deployment RAG dan buat akun layanan.
  6. Konfigurasi Kontrol Layanan VPC.
  7. Bangun subsistem penyerapan data.
  8. Bangun subsistem penayangan.
  9. Bangun subsistem frontend.
  10. Buat aplikasi Anda dapat dijangkau dari internet.

Mengidentifikasi region untuk workload

Secara umum, Anda ingin menempatkan konektivitas, subnet VPC, dan Google Cloud workload di dekat jaringan lokal atau klien cloud lainnya. Untuk mengetahui informasi selengkapnya tentang cara memilih region untuk beban kerja Anda, lihat Google Cloud Pemilih Region dan Praktik terbaik untuk pemilihan region Compute Engine.

Membuat Google Cloud project dan jaringan VPC

Jika organisasi Anda telah menyiapkan Cross-Cloud Network untuk aplikasi terdistribusi, project perutean dan jaringan VPC perutean Anda seharusnya sudah ada.

Buat Google Cloud project dan jaringan VPC dalam urutan berikut:

  1. Buat project perutean.
  2. Buat jaringan VPC perutean dengan Akses Google Pribadi diaktifkan.
  3. Buat project RAG.
  4. Promosikan project RAG agar menjadi project host VPC Bersama.
  5. Buat project layanan penyerapan data.
  6. Buat project layanan inferensi.
  7. Buat project layanan frontend.
  8. Buat jaringan RAG VPC Bersama dengan Akses Google Pribadi diaktifkan.
  9. Berikan izin project layanan untuk menggunakan jaringan RAG.

Menghubungkan jaringan eksternal ke jaringan VPC perutean

Anda dapat melewati langkah ini jika telah menyiapkan Cross-Cloud Network untuk aplikasi terdistribusi.

Siapkan konektivitas antara jaringan eksternal dan jaringan perutean Anda. Untuk memahami teknologi yang relevan, lihat Konektivitas eksternal dan hybrid. Untuk panduan tentang cara memilih produk konektivitas, lihat Memilih produk Network Connectivity.

  1. Di project perutean, buat hub Network Connectivity Center.
  2. Tambahkan koneksi Cloud Interconnect sebagai spoke lampiran VLAN, atau tambahkan koneksi Cloud VPN sebagai spoke VPN.
  3. Tambahkan jaringan VPC RAG dan jaringan VPC perutean ke hub sebagai spoke VPC.

Mengidentifikasi komponen untuk deployment RAG dan membuat akun layanan

  1. Pilih deployment RAG dan buat daftar komponen yang diperlukan.
  2. Identifikasi akses yang diperlukan setiap komponen.
  3. Untuk setiap komponen, buat akun layanan dengan izin yang sesuai. Dalam beberapa kasus, hal ini berarti Anda memberikan izin komponen untuk membaca dari atau menulis ke project layanan yang berbeda.

Desain ini mengasumsikan bahwa Anda menggunakan bucket Cloud Storage sebagai komponen input data dan menggunakan load balancer di frontend inferensi. Desain lainnya dapat bervariasi sesuai kebutuhan.

Idealnya, setiap komponen berjalan sebagai akun layanannya sendiri. Pastikan setiap komponen hanya memiliki izin IAM minimum yang diperlukan untuk menjalankan fungsi yang diperlukan. Misalnya, tugas Cloud Run di subsistem penyerapan data perlu membaca dari bucket Cloud Storage input, tetapi tidak perlu menulis ke bucket tersebut. Dalam contoh ini, project layanan yang menjalankan tugas Cloud Run harus memiliki izin untuk hanya membaca dari bucket, tanpa izin tulis.

Mengonfigurasi Kontrol Layanan VPC

  1. Buat perimeter Kontrol Layanan VPC di sekitar deployment Anda.
  2. Konfigurasi aturan akses.

Membangun subsistem penyerapan data

Subsistem penyerapan data mengambil data mentah dari data engineer dan memprosesnya untuk digunakan oleh subsistem inferensi.

  1. Di project layanan penyerapan data, buat bucket Cloud Storage.
  2. Di jaringan VPC perutean, buat endpoint Private Service Connect regional, dan hubungkan endpoint ke bucket.
  3. Di jaringan eksternal, tambahkan entri DNS untuk endpoint menggunakan alamat IP dan URL yang dibuat pada langkah sebelumnya.
  4. Perbarui aturan firewall jaringan eksternal untuk mengizinkan akses ke alamat IP endpoint.
  5. Di project layanan penyerapan data, bangun pipeline penyerapan data lainnya sesuai dengan arsitektur RAG yang Anda pilih.
  6. Berikan izin IAM agar resource yang relevan di pipeline penyerapan dapat mengakses model yang menghasilkan vektor.
  7. Berikan izin IAM agar resource yang relevan dalam pipeline penyerapan dapat menulis ke penyimpanan data vektor.

Membangun subsistem inferensi

  1. Di project layanan penayangan, bangun pipeline penayangan Anda.
  2. Berikan izin IAM agar akun layanan di sistem frontend dapat mengakses output subsistem penayangan.

Membangun subsistem frontend

Bagian ini mengasumsikan bahwa Anda menggunakan Load Balancer Aplikasi internal regional yang menggunakan NEG serverless di depan Cloud Run. Namun, Anda dapat menggunakan load balancer dan backend yang berbeda.

  1. Buat kode untuk sistem frontend Anda.
  2. Di project layanan frontend, deploy sistem frontend yang di-load balance, yang mencakup langkah opsional untuk mengonfigurasi kebijakan keamanan Cloud Armor.
  3. Konfigurasi Cloud Router di jaringan VPC perutean untuk meneruskan rute dari jaringan VPC RAG ke router lokal. Konfigurasi ini memungkinkan klien menjangkau load balancer.
  4. Di jaringan eksternal Anda, konfigurasi aturan firewall agar frontend load balancer dapat dijangkau dari jaringan eksternal Anda.
  5. Di jaringan eksternal Anda, perbarui DNS untuk mengarah ke aturan penerusan load balancer.

Membuat aplikasi Anda dapat dijangkau dari internet

Bagian ini bersifat opsional.

Desain ini mengasumsikan bahwa Anda ingin layanan dapat dijangkau dari jaringan eksternal saja, tetapi Anda juga dapat membuat layanan dapat dijangkau dari internet.

Agar layanan dapat dijangkau dari internet, selesaikan langkah-langkah berikut:

  1. Buat Load Balancer Aplikasi eksternal regional yang mengarah ke backend yang sama dengan yang dituju oleh load balancer internal. Selesaikan langkah opsional untuk mengonfigurasi kebijakan keamanan Cloud Armor.
  2. Perbarui Kontrol Layanan VPC agar pelanggan layanan dapat mengakses layanan backend.

Langkah berikutnya

Kontributor

Penulis:

  • Deepak Michael | Networking Specialist Customer Engineer
  • Mark Schlagenhauf | Technical Writer, Networking

Kontributor lainnya: