Secara default, layanan Cloud Run terhubung ke endpoint eksternal di internet menggunakan kumpulan alamat IP dinamis. Jika layanan Cloud Run terhubung ke endpoint eksternal yang memerlukan alamat IP statis seperti database atau API yang menggunakan firewall berbasis alamat IP, Anda harus mengonfigurasi layanan Cloud Run untuk merutekan permintaan menggunakan alamat IP statis.
Halaman ini menjelaskan cara mengaktifkan layanan Cloud Run untuk mengirim permintaan menggunakan alamat IP statis.
Ringkasan tugas
Agar layanan Cloud Run dapat merutekan permintaan menggunakan alamat IP statis, konfigurasikan traffic keluar VPC layanan Cloud Run untuk merutekan semua traffic keluar melalui jaringan VPC yang memiliki gateway Cloud NAT yang dikonfigurasi dengan alamat IP statis.
Mengarahkan traffic Anda melalui Cloud NAT tidak menyebabkan hop tambahan pada stack jaringan Anda karena gateway Cloud NAT dan Cloud Router hanya menyediakan bidang kontrol dan paketnya tidak melewati gateway NAT atau Cloud Router.
Semua layanan Cloud Run yang terhubung ke jaringan VPC yang sama memiliki alamat IP traffic keluar yang sama. Agar dapat menggunakan alamat IP traffic keluar yang berbeda untuk layanan Cloud Run yang terpisah, ikuti halaman ini untuk membuat subnet terpisah dan, secara opsional, konektor Akses VPC Serverless.
Membuat subnet
Anda harus membuat subnet /28
khusus untuk menghosting konektor. Jika Anda menggunakan
Traffic keluar VPC Langsung, gunakan subnet
yang ada atau buat subnet lain. Jika Anda menggunakan konektor, subnet khusus
akan mencegah resource komputasi lain di jaringan VPC Anda, seperti VM Compute Engine
atau cluster Google Kubernetes Engine, secara tidak sengaja menggunakan alamat IP statis
jika Anda telah mengonfigurasi Akses VPC Serverless untuk mengakses
internet.
gcloud
Temukan nama jaringan VPC Anda.
gcloud compute networks list
Anda akan melihat output seperti berikut:
NAME SUBNET_MODE BGP_ROUTING_MODE default AUTO REGIONAL
Identifikasi jaringan yang akan Anda lampirkan ke konektor Akses VPC Serverless.
Buat subnetwork di VPC untuk konektor Akses VPC Serverless.
gcloud compute networks subnets create SUBNET_NAME \ --range=RANGE --network=NETWORK_NAME --region=REGION
Ganti nilai berikut dengan perintah ini:
SUBNET_NAME
dengan nama yang ingin Anda berikan ke subnet.RANGE
dengan rentang IP dalam format CIDR yang ingin Anda tetapkan ke subnet ini (misalnya,10.124.0.0/28
).NETWORK_NAME
dengan nama jaringan VPC.REGION
dengan region tempat Anda ingin membuat konektor Akses VPC Serverless.
Terraform
Buat jaringan VPC yang akan digunakan.
Ganti
cr-static-ip-network
dengan nama subnet.Buat subnetwork di VPC untuk konektor Akses VPC Serverless.
Ganti kode berikut:
cr-static-ip
dengan nama subnet Anda.10.124.0.0/28
dengan rentang CIDR Anda.us-central1
dengan region Google Cloud Anda.
Membuat konektor Akses VPC Serverless
Anda tidak perlu membuat konektor jika menggunakan traffic keluar VPC Langsung. Jika tidak menggunakan traffic keluar VPC Langsung, Anda memerlukan konektor Akses VPC Serverless untuk merutekan traffic keluar layanan Cloud Run ke jaringan VPC.
Untuk membuat konektor Akses VPC Tanpa Server:
gcloud
Buat konektor Akses VPC Serverless dengan subnetwork yang telah dibuat sebelumnya.
gcloud compute networks vpc-access connectors create CONNECTOR_NAME \ --region=REGION \ --subnet-project=PROJECT_ID \ --subnet=SUBNET_NAME
Ganti nilai berikut dengan perintah ini:
CONNECTOR
dengan nama yang ingin Anda berikan ke resource ini.PROJECT_ID
dengan nama yang menghosting subnet.SUBNET_NAME
dengan nama subnet yang Anda buat.REGION
dengan region tempat Anda ingin membuat gateway Cloud NAT.
Terraform
Buat konektor Akses VPC Tanpa Server:
Ganti
cr-conn
dengan nama konektor Akses VPC Serverless Anda.
Mengonfigurasi terjemahan alamat jaringan (NAT)
Jika Anda menggunakan traffic keluar VPC Langsung atau konektor Akses VPC Serverless, permintaan dari layanan Cloud Run Anda akan masuk ke jaringan VPC Anda. Jika Anda ingin merutekan permintaan keluar ke endpoint eksternal menggunakan IP statis, konfigurasikan gateway Cloud NAT.
gcloud
Buat Cloud Router baru untuk memprogram gateway Cloud NAT:
gcloud compute routers create ROUTER_NAME \ --network=NETWORK_NAME \ --region=REGION
Ganti nilai berikut dengan perintah ini:
ROUTER_NAME
dengan nama untuk resource Cloud Router yang ingin Anda buat.NETWORK_NAME
dengan nama jaringan VPC yang Anda temukan sebelumnya.REGION
dengan region tempat Anda ingin membuat gateway Cloud NAT.
Sediakan alamat IP statis. Resource alamat IP yang dicadangkan mempertahankan alamat IP dasar saat resource yang terkait dengannya dihapus dan dibuat ulang.
gcloud compute addresses create ORIGIN_IP_NAME --region=REGION
Ganti nilai berikut dengan perintah ini:
ORIGIN_IP_NAME
dengan nama yang ingin Anda tetapkan ke resource alamat IP.REGION
dengan region yang akan menjalankan router Cloud NAT. Gunakan region yang sama dengan layanan Cloud Run Anda untuk meminimalkan latensi dan biaya jaringan.
Buat konfigurasi gateway Cloud NAT di router ini untuk mengarahkan traffic yang berasal dari jaringan VPC menggunakan alamat IP statis yang Anda buat:
gcloud compute routers nats create NAT_NAME \ --router=ROUTER_NAME \ --region=REGION \ --nat-custom-subnet-ip-ranges=SUBNET_NAME \ --nat-external-ip-pool=ORIGIN_IP_NAME
Ganti nilai berikut dengan perintah ini:
NAT_NAME
dengan nama untuk resource gateway Cloud NAT yang ingin Anda buat.ROUTER_NAME
dengan nama Cloud Router Anda.REGION
dengan region tempat Anda ingin membuat gateway Cloud NAT.SUBNET_NAME
dengan nama subnet Anda.ORIGIN_IP_NAME
dengan nama resource alamat IP yang dicadangkan yang telah Anda buat di langkah sebelumnya.
Terraform
Buat Cloud Router baru untuk memprogram gateway Cloud NAT:
Ganti
cr-static-ip-router
dengan nama subnet Anda.Sediakan alamat IP statis. Resource alamat IP yang dicadangkan mempertahankan alamat IP dasar saat resource yang terkait dengannya dihapus dan dibuat ulang:
Ganti
cr-static-ip-addr
dengan nama subnet Anda.Buat konfigurasi gateway Cloud NAT di router ini untuk mengarahkan traffic yang berasal dari jaringan VPC menggunakan alamat IP statis yang Anda buat:
Ganti
cr-static-nat
dengan nama gateway Cloud NAT Anda.
Mengarahkan traffic Cloud Run melalui jaringan VPC
Setelah Cloud NAT dikonfigurasi, deploy atau perbarui layanan Cloud Run Anda dengan Traffic keluar VPC Langsung atau konektor Akses VPC Serverless, dan tetapkan traffic keluar VPC untuk mengarahkan semua traffic melalui jaringan VPC:
gcloud
Traffic keluar VPC langsung
Untuk men-deploy atau mengupdate layanan Cloud Run Anda agar menggunakan traffic keluar VPC Langsung dan merutekan semua traffic keluar melaluinya, jalankan perintah berikut:
gcloud run deploy SERVICE_NAME \ --image=IMAGE_URL \ --network=NETWORK \ --subnet=SUBNET \ --region=REGION \ --vpc-egress=all-traffic
Ganti nilai berikut dengan perintah ini:
- SERVICE_NAME dengan nama layanan Cloud Run yang ingin Anda deploy.
- IMAGE_URL dengan referensi ke image container,
misalnya,
us-docker.pkg.dev/cloudrun/container/hello:latest
. Jika Anda menggunakan Artifact Registry, repositori REPO_NAME harus sudah dibuat. URL memiliki bentukLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
. - NETWORK dengan nama jaringan VPC Anda.
- SUBNET dengan nama subnet Anda.
- REGION dengan region untuk layanan Anda.
Konektor Akses VPC Serverless
Untuk men-deploy atau mengupdate layanan Cloud Run Anda agar menggunakan konektor Akses VPC Serverless dan merutekan semua traffic keluar melalui konektor tersebut, jalankan perintah berikut:
gcloud run deploy SERVICE_NAME \ --image=IMAGE_URL \ --vpc-connector=CONNECTOR_NAME \ --region=REGION \ --vpc-egress=all-traffic
Ganti nilai berikut dengan perintah ini:
- SERVICE_NAME dengan nama layanan Cloud Run yang ingin Anda deploy.
- IMAGE_URL dengan referensi ke image container,
misalnya,
us-docker.pkg.dev/cloudrun/container/hello:latest
. Jika Anda menggunakan Artifact Registry, repositori REPO_NAME harus sudah dibuat. URL memiliki bentukLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
. - CONNECTOR_NAME dengan nama konektor Akses VPC Serverless Anda.
- REGION dengan region untuk layanan Anda.
Terraform
Layanan Cloud Run ini menggunakan konektor VPC dan juga merutekan semua traffic keluar melaluinya:
Ganti us-docker.pkg.dev/cloudrun/container/hello
dengan referensi ke
image container Anda.
Memverifikasi alamat IP eksternal statis
Setelah menyelesaikan langkah-langkah sebelumnya, Anda harus menyiapkan Cloud NAT di jaringan VPC Anda dengan alamat IP statis yang telah ditetapkan, dan telah merutekan semua traffic keluar layanan Cloud Run ke jaringan VPC Anda. Permintaan dari layanan Cloud Run berpindah melalui jaringan VPC Anda dan menjangkau endpoint eksternal menggunakan menggunakan alamat IP statis.
Untuk memverifikasi perilaku ini dan mengonfirmasi asal alamat IP yang digunakan layanan, Anda dapat membuat permintaan ke API atau situs seperti curlmyip.org yang menunjukkan alamat IP asal.
Menghapus alamat IP eksternal statis
Jika Anda tidak lagi memerlukan alamat IP eksternal statis, lihat Merilis alamat IP eksternal statis.