Tutorial ini menjelaskan cara Anda, sebagai konsumen layanan, dapat mengakses layanan yang dipublikasikan dengan membuat endpoint Private Service Connect. Saat Anda mengirim permintaan ke endpoint, Private Service Connect akan meneruskan permintaan tersebut ke layanan yang dipublikasikan.
Tutorial ini ditujukan untuk arsitek cloud, arsitek jaringan, administrator jaringan, dan administrator IT.
Tujuan
- Mengonfigurasi jaringan untuk resource konsumen layanan
- Membuat endpoint
- Menguji akses ke endpoint
Biaya
Dalam dokumen ini, Anda akan menggunakan komponen Google Cloudyang dapat ditagih sebagai berikut:
Untuk membuat perkiraan biaya berdasarkan proyeksi penggunaan Anda,
gunakan kalkulator harga.
Setelah menyelesaikan tugas yang dijelaskan dalam dokumen ini, Anda dapat menghindari penagihan berkelanjutan dengan menghapus resource yang Anda buat. Untuk mengetahui informasi selengkapnya, baca bagian Pembersihan.
Sebelum memulai
- Selesaikan dua tutorial sebelumnya dalam seri ini:
- Buat layanan yang di-load balance.
- Membuat layanan dapat diakses dari jaringan VPC lain. Anda memerlukan ID lampiran layanan untuk menyelesaikan tutorial ini.
- Buat atau pilih project yang akan digunakan untuk resource konsumen layanan.
Project ini disebut sebagai
CONSUMER_PROJECT -
In the Google Cloud console, go to the project selector page.
-
Select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Enable the Compute Engine API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles. -
Make sure that you have the following role or roles on the project: Compute Engine > Compute Network Admin, Compute Engine > Compute Instance Admin
Check for the roles
-
In the Google Cloud console, go to the IAM page.
Go to IAM - Select the project.
-
In the Principal column, find all rows that identify you or a group that you're included in. To learn which groups you're included in, contact your administrator.
- For all rows that specify or include you, check the Role column to see whether the list of roles includes the required roles.
Grant the roles
-
In the Google Cloud console, go to the IAM page.
Buka IAM - Pilih project.
- Klik Grant access.
-
Di kolom New principals, masukkan ID pengguna Anda. Biasanya, ini adalah alamat email untuk Akun Google.
- Klik Pilih peran, lalu telusuri peran.
- Untuk memberikan peran tambahan, klik Add another role, lalu tambahkan tiap peran tambahan.
- Klik Simpan.
-
Mengonfigurasi jaringan
Bagian berikut menjelaskan cara membuat jaringan dan subnet untuk menghosting endpoint, serta cara membuat aturan firewall guna mengizinkan akses SSH ke VM klien yang digunakan untuk menguji endpoint.
Membuat jaringan dan subnet
Untuk membuat jaringan dan subnet konsumen layanan, ikuti langkah-langkah berikut.
Konsol
Di konsol Google Cloud , buka halaman VPC networks.
Klik Create VPC network.
Untuk Name, masukkan
consumer-network.Untuk Mode pembuatan subnet, klik Kustom.
Di bagian New subnet, masukkan informasi berikut.
- Untuk Name, masukkan
consumer-subnet. - Untuk Wilayah, pilih region yang sama dengan layanan yang dipublikasikan yang Anda buat.
- Untuk IP stack type, pilih IPv4 (single-stack).
- Untuk IPv4 range, masukkan
192.168.10.0/24. - Klik Done.
- Untuk Name, masukkan
Klik Create.
gcloud
Buat jaringan VPC mode kustom:
gcloud compute networks create consumer-network --subnet-mode=custom
Di jaringan
consumer-network, buat subnet.gcloud compute networks subnets create consumer-subnet \ --network=consumer-network \ --range=192.168.10.0/24 \ --region=REGIONGanti
REGIONdengan region yang sama dengan layanan yang dipublikasikan yang Anda buat.
Mengonfigurasi aturan firewall
Buat aturan firewall bernama fw-allow-ssh untuk mengizinkan traffic SSH dari
0.0.0.0/0 menjangkau VM yang memiliki tag jaringan allow-ssh.
Konsol
Di konsol Google Cloud , buka halaman Firewall policies.
Untuk mengizinkan koneksi SSH yang masuk, klik Create firewall rule dan gunakan setelan berikut:
- Untuk Name, masukkan
fw-allow-ssh. - Untuk Network, pilih
consumer-network. - Untuk Priority, masukkan
1000. - Untuk Direction of traffic, pilih Ingress.
- Untuk Action on match, pilih Allow.
- Untuk Target, pilih Tag target yang ditentukan.
- Untuk Target tags, masukkan
allow-ssh. - Untuk Source filter, pilih IPv4 ranges.
- Untuk Source IPv4 ranges, masukkan
0.0.0.0/0. - Untuk Protocols and ports, pilih Specified protocols and ports,
lalu pilih kotak centang TCP. Untuk Ports, masukkan
22.
- Untuk Name, masukkan
Klik Create.
gcloud
Buat aturan firewall
fw-allow-sshuntuk mengizinkan konektivitas SSH ke VM dengan tag jaringanallow-ssh.gcloud compute firewall-rules create fw-allow-ssh \ --network=consumer-network \ --action=allow \ --direction=ingress \ --source-ranges=0.0.0.0/0 \ --target-tags=allow-ssh \ --rules=tcp:22
Membuat endpoint
Buat endpoint yang mengarah ke layanan yang dipublikasikan yang Anda buat.
Konsol
Di konsol Google Cloud , buka halaman Private Service Connect.
Klik tab Connected endpoints.
Klik Connect endpoint.
Untuk Target, pilih Published service.
Untuk Target service, masukkan
projects/PRODUCER_PROJECT/regions/REGION/serviceAttachments/published-service.Ganti
PRODUCER_PROJECTdengan project ID layanan yang dipublikasikan. GantiREGIONdengan region layanan yang dipublikasikan.Untuk Nama endpoint, masukkan
ep-1.Untuk Network, pilih
consumer-network.Untuk Subnetwork, pilih
consumer-subnet.Klik menu drop-down IP address dan pilih Create IP address.
- Untuk Name, masukkan
ep-ip-1. - Untuk Static IP address, pilih Let me choose.
- Untuk Custom IP address, masukkan
192.168.10.5. - Klik Reserve.
- Untuk Name, masukkan
Klik Add endpoint.
gcloud
Cadangkan alamat IP internal untuk ditetapkan ke endpoint.
gcloud compute addresses create ep-ip-1 \ --region=REGION \ --subnet=consumer-subnet \ --addresses=192.168.10.5Ganti
REGIONdengan region yang sama dengan layanan yang dipublikasikan yang Anda buat.Buat aturan penerusan untuk menghubungkan endpoint ke lampiran layanan produsen layanan.
gcloud compute forwarding-rules create ep-1 \ --region=REGION \ --network=consumer-network \ --address=ep-ip-1 \ --target-service-attachment=projects/PRODUCER_PROJECT/regions/REGION/serviceAttachments/published-serviceGanti kode berikut:
PRODUCER_PROJECT: project ID project produsen layanan.REGION: region lampiran layanan.
Menguji akses ke endpoint
Untuk menguji apakah endpoint dan layanan yang dipublikasikan berfungsi, buat VM pengujian dan kirim permintaan dari VM tersebut ke endpoint.
Membuat VM klien untuk pengujian
Buat VM klien di region yang sama dengan endpoint.
Konsol
Di konsol Google Cloud , buka halaman VM instances.
Klik Create instance.
Untuk Name, masukkan
consumer-test.Untuk Region, pilih region yang sama dengan VM backend.
Untuk Zone, pilih zona di region tersebut.
Klik Networking dan konfigurasi kolom berikut:
- Untuk Network tags, masukkan
allow-ssh. - Untuk Network interfaces, pilih opsi berikut:
- Untuk Network, pilih
consumer-network - Untuk Subnet, pilih
consumer-subnet
- Untuk Network, pilih
- Untuk Network tags, masukkan
Klik Create.
gcloud
gcloud compute instances create consumer-test \
--zone=ZONE \
--image-family=debian-12 \
--image-project=debian-cloud \
--tags=allow-ssh \
--subnet=consumer-subnet
Ganti ZONE dengan zona yang berada di region yang sama dengan VM backend.
Menguji konektivitas
Pengujian ini menghubungi endpoint dari VM klien. Perilaku yang diharapkan adalah traffic didistribusikan di seluruh VM backend load balancer.
- Hubungkan ke instance VM klien.
Gantigcloud compute ssh consumer-test --zone=ZONE
ZONEdengan zona VM klien. - Buat permintaan web ke endpoint menggunakan
curluntuk menghubungi alamat IP-nya. Ulangi permintaan sehingga Anda dapat melihat bahwa respons berasal dari VM backend yang berbeda. Nama VM yang menghasilkan respons ditampilkan dalam teks di respons HTML, karena konten/var/www/html/index.htmldi setiap VM backend. Misalnya, respons yang diharapkan terlihat sepertiPage served from: vm-1danPage served from: vm-2.curl -s http://192.168.10.5
Pembersihan
Agar tidak perlu membayar biaya pada akun Google Cloud Anda untuk resource yang digunakan dalam tutorial ini, hapus project yang berisi resource tersebut, atau simpan project dan hapus setiap resource.
Menghapus project
Hapus project produsen (PRODUCER_PROJECT) dan project konsumen (CONSUMER_PROJECT).
- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.
Langkah berikutnya
- Pelajari lebih lanjut layanan yang dipublikasikan Private Service Connect
- Pelajari lebih lanjut cara mengakses layanan yang dipublikasikan melalui endpoint
- Pelajari arsitektur referensi, diagram, dan praktik terbaik tentang Google Cloud. Lihat Cloud Architecture Center kami.