1. Pengantar
Dalam codelab ini, Anda akan membuat koneksi southbound ke layanan SMTP Looker menggunakan load balancer proxy tcp internal dan grup endpoint jaringan internet (NEG) dengan FQDN notifications-pa.googleapis.com yang dipanggil dari Looker PSC sebagai Konsumen Layanan.
Private Service Connect adalah kemampuan jaringan Google Cloud yang memungkinkan konsumen mengakses layanan terkelola secara pribadi dari dalam jaringan VPC mereka. Demikian pula, hal ini memungkinkan produsen layanan terkelola untuk menghosting layanan ini di jaringan VPC mereka sendiri yang terpisah dan menawarkan koneksi pribadi kepada konsumen mereka. Misalnya, saat Anda menggunakan Private Service Connect untuk mengakses Looker, Anda adalah konsumen layanan, dan Google adalah produsen layanan, seperti yang ditandai dalam Gambar 1.
Gambar 1.
Akses southbound, yang juga dikenal sebagai PSC terbalik, memungkinkan Konsumen membuat Layanan yang Dipublikasikan sebagai Produsen untuk mengizinkan Looker mengakses endpoint di lokal, di VPC, ke layanan terkelola, dan Internet. Koneksi selatan dapat di-deploy di region mana pun, di mana pun Looker PSC di-deploy, seperti yang dijelaskan pada Gambar 2.
Gambar 2.
Yang akan Anda pelajari
- Persyaratan jaringan
- Membuat layanan produsen Private Service Connect
- Membuat endpoint Private Service Connect di Looker
- Membuat konektivitas ke layanan SMTP Lookers
Yang Anda butuhkan
- Project Google Cloud dengan izin Pemilik
- Instance PSC Looker yang Ada
2. Yang akan Anda build
Anda akan membuat jaringan Produsen, looker-psc-demo, untuk men-deploy load balancer proxy tcp internal dan NEG Internet yang dipublikasikan sebagai layanan melalui Private Service Connect (PSC). Setelah dipublikasikan, Anda harus melakukan tindakan berikut untuk memvalidasi akses ke layanan Producer:
- Membuat Endpoint PSC di Looker yang terkait dengan Lampiran Layanan Produsen
- Menggunakan Konsol Looker untuk membuat setelan email SMTP
3. Persyaratan jaringan
Berikut adalah perincian persyaratan jaringan untuk jaringan Produsen, konsumen dalam codelab ini adalah instance PSC Looker.
Komponen | Deskripsi |
VPC (looker-psc-demo) | VPC mode kustom |
Subnet NAT PSC | Paket dari jaringan VPC konsumen diterjemahkan menggunakan NAT sumber (SNAT) sehingga alamat IP sumber aslinya dikonversi menjadi alamat IP sumber dari subnet NAT di jaringan VPC produsen. |
Subnet aturan penerusan PSC | Digunakan untuk mengalokasikan alamat IP untuk Load Balancer Proxy TCP Internal Regional |
Subnet NEG PSC | Digunakan untuk mengalokasikan alamat IP untuk Grup Endpoint Jaringan |
Subnet Khusus Proxy | Setiap proxy load balancer diberi alamat IP internal. Paket yang dikirim dari proxy ke VM atau endpoint backend memiliki alamat IP sumber dari subnet khusus proxy. |
NEG Internet | Resource yang digunakan untuk menentukan backend eksternal untuk load balancer. Endpoint tidak dapat dijangkau hanya melalui Cloud VPN atau Cloud Interconnect. |
Layanan Backend | Layanan backend berfungsi sebagai jembatan antara load balancer dan resource backend Anda. Dalam tutorial, layanan backend dikaitkan dengan NEG Internet. |
Cloud Router | Cloud NAT mengandalkan Cloud Router untuk kemampuan bidang kontrol, tetapi tidak untuk pengelolaan sesi BGP. |
Cloud NAT | NEG internet regional memanfaatkan Cloud NAT untuk traffic keluar internet. |
4. Topologi codelab
5. Penyiapan dan Persyaratan
Penyiapan lingkungan mandiri
- Login ke Google Cloud Console dan buat project baru atau gunakan kembali project yang sudah ada. Jika belum memiliki akun Gmail atau Google Workspace, Anda harus membuatnya.
- Project name adalah nama tampilan untuk peserta project ini. String ini adalah string karakter yang tidak digunakan oleh Google API. Anda dapat memperbaruinya kapan saja.
- Project ID bersifat unik di semua project Google Cloud dan tidak dapat diubah (tidak dapat diubah setelah ditetapkan). Cloud Console otomatis membuat string unik; biasanya Anda tidak mementingkan kata-katanya. Di sebagian besar codelab, Anda harus merujuk Project ID-nya (umumnya diidentifikasi sebagai
PROJECT_ID
). Jika tidak suka dengan ID yang dibuat, Anda dapat membuat ID acak lainnya. Atau, Anda dapat mencobanya sendiri, dan lihat apakah ID tersebut tersedia. ID tidak dapat diubah setelah langkah ini dan tersedia selama durasi project. - Sebagai informasi, ada nilai ketiga, Project Number, yang digunakan oleh beberapa API. Pelajari lebih lanjut ketiga nilai ini di dokumentasi.
- Selanjutnya, Anda harus mengaktifkan penagihan di Konsol Cloud untuk menggunakan resource/API Cloud. Menjalankan operasi dalam codelab ini tidak akan memakan banyak biaya, bahkan mungkin tidak sama sekali. Guna mematikan resource agar tidak menimbulkan penagihan di luar tutorial ini, Anda dapat menghapus resource yang dibuat atau menghapus project-nya. Pengguna baru Google Cloud memenuhi syarat untuk mengikuti program Uji Coba Gratis senilai $300 USD.
Mulai Cloud Shell
Meskipun Google Cloud dapat dioperasikan dari jarak jauh menggunakan laptop Anda, dalam codelab ini, Anda akan menggunakan Google Cloud Shell, lingkungan command line yang berjalan di Cloud.
Dari Google Cloud Console, klik ikon Cloud Shell di toolbar kanan atas:
Hanya perlu waktu beberapa saat untuk penyediaan dan terhubung ke lingkungan. Jika sudah selesai, Anda akan melihat tampilan seperti ini:
Mesin virtual ini berisi semua alat pengembangan yang Anda perlukan. Layanan ini menawarkan direktori beranda tetap sebesar 5 GB dan beroperasi di Google Cloud, sehingga sangat meningkatkan performa dan autentikasi jaringan. Semua pekerjaan Anda dalam codelab ini dapat dilakukan di browser. Anda tidak perlu menginstal apa pun.
6. Sebelum memulai
Mengaktifkan API
Di dalam Cloud Shell, pastikan project ID Anda sudah disiapkan:
gcloud config list project
gcloud config set project [YOUR-PROJECT-ID]
project=[YOUR-PROJECT-ID]
region=[YOUR-REGION]
echo $project
echo $region
Aktifkan semua layanan yang diperlukan:
gcloud services enable compute.googleapis.com
7. Membuat Jaringan VPC Produsen
Jaringan VPC
Di dalam Cloud Shell, lakukan hal berikut:
gcloud compute networks create looker-psc-demo --subnet-mode custom
Membuat Subnet
Subnet PSC akan dikaitkan dengan PSC Service Lampiran untuk tujuan Penafsiran Alamat Jaringan.
Di dalam Cloud Shell, buat Subnet NAT PSC:
gcloud compute networks subnets create producer-psc-nat-subnet --network looker-psc-demo --range 172.16.10.0/28 --region $region --purpose=PRIVATE_SERVICE_CONNECT
Di dalam Cloud Shell, buat subnet aturan penerusan produser:
gcloud compute networks subnets create producer-psc-fr-subnet --network looker-psc-demo --range 172.16.20.0/28 --region $region --enable-private-ip-google-access
Di dalam Cloud Shell, buat subnet khusus proxy regional produsen:
gcloud compute networks subnets create $region-proxy-only-subnet \
--purpose=REGIONAL_MANAGED_PROXY \
--role=ACTIVE \
--region=$region \
--network=looker-psc-demo \
--range=10.10.10.0/24
Membuat gateway NAT Publik
NAT Gateway digunakan oleh load balancer proxy tcp internal regional untuk traffic keluar internet dengan opsi konfigurasi, –endpoint-types=ENDPOINT_TYPE_MANAGED_PROXY_LB, sehingga NATGW yang sama tidak akan mendukung traffic keluar internet GCE/GKE. Deploy GW NAT tambahan dengan –endpoint-types=ENDPOINT_TYPE_VM untuk traffic keluar internet GCE/GKE.
Di dalam Cloud Shell, buat Cloud Router:
gcloud compute routers create looker-psc-demo-cloud-router --network looker-psc-demo --region $region
Di dalam Cloud Shell, buat gateway Cloud NAT yang mengaktifkan traffic keluar internet untuk load balancer proxy tcp:
gcloud compute routers nats create looker-psc-demo-natgw \
--router=looker-psc-demo-cloud-router \
--endpoint-types=ENDPOINT_TYPE_MANAGED_PROXY_LB \
--nat-custom-subnet-ip-ranges=$region-proxy-only-subnet \
--auto-allocate-nat-external-ips \
--region=$region
Mencadangkan alamat IP load balancer
Di dalam Cloud Shell, pesan alamat IP internal untuk load balancer:
gcloud compute addresses create internet-neg-lb-ip \
--region=$region \
--subnet=producer-psc-fr-subnet
Di dalam Cloud Shell, lihat Alamat IP yang dicadangkan.
gcloud compute addresses describe internet-neg-lb-ip \
--region=$region | grep -i address:
Contoh output:
user@cloudshell$ gcloud compute addresses describe internet-neg-lb-ip --region=$region | grep -i address:
address: 172.16.20.2
Menyiapkan NEG Internet
Buat NEG Internet, lalu setel –network-endpoint-type ke internet-fqdn-port (nama host dan port tempat backend eksternal dapat dijangkau).
Di dalam Cloud Shell, buat NEG Internet yang digunakan untuk github.com
gcloud compute network-endpoint-groups create smtp-internet-neg \
--network-endpoint-type=INTERNET_FQDN_PORT \
--network=looker-psc-demo \
--region=$region
Di dalam Cloud Shell, perbarui NEG smtp-internet-neg Internet dengan notifikasi FQDN notifications-pa.googleapis.com dan port 443
gcloud compute network-endpoint-groups update smtp-internet-neg \
--add-endpoint="fqdn=notifications-pa.googleapis.com,port=443" \
--region=$region
Membuat Kebijakan Firewall Jaringan dan Aturan Firewall
Di dalam Cloud Shell, lakukan hal berikut:
gcloud compute network-firewall-policies create looker-psc-demo-policy --global
gcloud compute network-firewall-policies associations create --firewall-policy looker-psc-demo-policy --network looker-psc-demo --name looker-psc-demo --global-firewall-policy
Aturan firewall berikut mengizinkan traffic dari rentang Subnet NAT PSC ke semua instance dalam jaringan.
Di dalam Cloud Shell, lakukan hal berikut:
gcloud compute network-firewall-policies rules create 2001 --action ALLOW --firewall-policy looker-psc-demo-policy --description "allow traffic from PSC NAT subnet" --direction INGRESS --src-ip-ranges 172.16.10.0/28 --global-firewall-policy --layer4-configs=tcp
8. Buat Layanan Produsen
Membuat Komponen Load Balancer
Di dalam Cloud Shell, lakukan hal berikut:
gcloud compute backend-services create producer-backend-svc --protocol=tcp --region=$region --load-balancing-scheme=INTERNAL_MANAGED
gcloud compute backend-services add-backend producer-backend-svc --network-endpoint-group=smtp-internet-neg --network-endpoint-group-region=$region --region=$region
Di Cloud Shell, Buat proxy TCP target untuk merutekan permintaan ke layanan backend Anda:
gcloud compute target-tcp-proxies create producer-lb-tcp-proxy \
--backend-service=producer-backend-svc \
--region=$region
Dalam sintaksis berikut, buat aturan penerusan (load balancer proxy tcp internal).
Di Cloud Shell, lakukan hal berikut:
gcloud compute forwarding-rules create producer-smtp-fr \
--load-balancing-scheme=INTERNAL_MANAGED \
--network-tier=PREMIUM \
--network=looker-psc-demo \
--subnet=producer-psc-fr-subnet \
--address=internet-neg-lb-ip \
--target-tcp-proxy=producer-lb-tcp-proxy \
--target-tcp-proxy-region=$region \
--region=$region \
--ports=443
Membuat Lampiran Layanan
Di dalam Cloud Shell, buat Lampiran Layanan, smtp-svc-appendix:
gcloud compute service-attachments create smtp-svc-attachment --region=$region --producer-forwarding-rule=producer-smtp-fr --connection-preference=ACCEPT_AUTOMATIC --nat-subnets=producer-psc-nat-subnet
Selanjutnya, dapatkan dan catat Lampiran Layanan yang tercantum di URI selfLink yang dimulai dengan project untuk mengonfigurasi endpoint PSC di Looker.
selfLink: projects/<your-project-id>/ regions/<your-region>/serviceLampirans/github-svc-lampiran-https
Di dalam Cloud Shell, lakukan hal berikut:
gcloud compute service-attachments describe smtp-svc-attachment --region=$region
Contoh:
connectionPreference: ACCEPT_AUTOMATIC
creationTimestamp: '2024-10-04T14:56:50.409-07:00'
description: ''
enableProxyProtocol: false
fingerprint: KUPXTZjrGkw=
id: '8947818105173563981'
kind: compute#serviceAttachment
name: smtp-svc-attachment
natSubnets:
- https://www.googleapis.com/compute/v1/projects/$project/regions/$region/subnetworks/producer-psc-nat-subnet
pscServiceAttachmentId:
high: '23100082169578472'
low: '8947818105173563981'
reconcileConnections: false
region: https://www.googleapis.com/compute/v1/projects/$project/regions/$region
selfLink: https://www.googleapis.com/compute/v1/projects/$project/regions/$region/serviceAttachments/smtp-svc-attachment
targetService: https://www.googleapis.com/compute/v1/projects/$project/regions/$region/forwardingRules/producer-smtp-fr
Di Cloud Console, buka:
Layanan Jaringan → Private Service Connect → Layanan yang Dipublikasikan
9. Membuat Koneksi Endpoint PSC di Looker
Di bagian berikut, Anda akan mengaitkan Lampiran Layanan Produsen dengan PSC Looker Core melalui penggunaan flag –psc-service-attachment di Cloud Shell untuk satu domain.
Di dalam Cloud Shell, buat pengaitan psc dengan memperbarui parameter berikut agar sesuai dengan lingkungan Anda:
- INSTANCE_NAME: Nama instance Looker (Google Cloud core) Anda.
- DOMAIN_1: notifications-pa.googleapis.com
- SERVICE_ATTACHMENT_1: URI yang diambil saat menjelaskan Lampiran Layanan, smtp-svc- terakhir
- WILAYAH: Region tempat instance Looker (Google Cloud core) dihosting.
Di dalam Cloud Shell, lakukan hal berikut:
gcloud looker instances update INSTANCE_NAME \
--psc-service-attachment domain=DOMAIN_1,attachment=SERVICE_ATTACHMENT_URI_1 \
--region=REGION
Contoh:
gcloud looker instances update looker-psc-instance \
--psc-service-attachment domain=notifications-pa.googleapis.com,attachment=projects/$project/regions/$region/serviceAttachments/smtp-svc-attachment \
--region=$region
Di dalam Cloud Shell, validasi connectionStatus serviceAttachments adalah "ACCEPTED", perbarui dengan INSTANCE_NAME PSC Looker Anda
gcloud looker instances describe [INSTANCE_NAME] --region=$region --format=json
Contoh:
gcloud looker instances describe looker-psc-instance --region=$region --format=json
Contoh:
{
...........................
"serviceAttachments": [
{
"connectionStatus": "ACCEPTED",
"localFqdn": "notifications-pa.googleapis.com",
"targetServiceAttachmentUri": "projects/$project/regions/$region/serviceAttachments/smtp-svc-attachment"
}
]
},
"pscEnabled": true,
"state": "ACTIVE",
"updateTime": "2024-10-04T22:02:31.445761128Z"
}
Memvalidasi endpoint PSC di Cloud Console
Dari Cloud Console, Anda dapat memvalidasi Koneksi PSC
Di Cloud Console, buka:
Looker → Instance Looker → Detail
10. Uji Konektivitas SMTP
Pada langkah berikut, Anda akan menggunakan Konsol Looker untuk memvalidasi konektivitas SMTP dengan membuat Tes SMTP & laporan.
Email pengujian
Looker mengirim email menggunakan notifikasi server SMTP default notifikasi-pa.googleapis.com. Dalam kasus ini, tidak ada langkah tambahan yang diperlukan. Jika Anda ingin menggunakan server SMTP lain untuk notifikasi, lihat bagian konfigurasi SMTP kustom.
Buka Konsol Looker, lalu buka hal berikut:
Admin → Platform → SMTP → Pilih Kirim Email Uji Coba
Berikut adalah email pengujian yang diperoleh dari Looker:
Email laporan yang dihasilkan
Buka halaman berikut:
Jelajahi → Aktivitas Sistem → Penggunaan API → Jenis Kueri API → Jalankan
Contoh output:
Untuk mengirim hasil ke email Anda, pilih ikon roda gigi
Pilih Kirim yang akan membuka jendela baru.
Masukkan alamat email Anda, lalu pilih kirim
Berikut adalah email pengujian yang diperoleh dari Looker:
11. Konfigurasi SMTP kustom
Dalam tutorial ini, server SMTP Looker digunakan untuk mengirim notifikasi email melalui notifikasi FQDN-pa.googleapis.com dan Cloud NAT yang menjalankan traffic keluar internet. Untuk menggunakan server SMTP Anda sendiri, buat lampiran layanan baru dengan modifikasi berikut:
Perbarui NEG internet dengan FQDN Server SMTP Anda:
gcloud compute network-endpoint-groups update smtp-internet-neg \
--add-endpoint="fqdn=<your SMTP FQDN>,port=443" \
--region=$region
Tentukan domain SMTP Anda saat memperbarui Instance PSC Looker:
- INSTANCE_NAME: Nama instance Looker (Google Cloud core) Anda.
- DOMAIN_1: <FQDN server SMTP Anda>
- SERVICE_ATTACHMENT_1: URI yang diambil saat menjelaskan Lampiran Layanan, smtp-svc- terakhir
- REGION: Region tempat instance Looker (Google Cloud core) Anda dihosting.
gcloud looker instances update INSTANCE_NAME \
--psc-service-attachment domain=DOMAIN_1,attachment=SERVICE_ATTACHMENT_URI_1 \
--region=REGION
Untuk menggunakan layanan email lain, pilih Gunakan setelan email kustom.
12. Pembersihan
Menghapus komponen lab dari satu terminal Cloud Shell
gcloud compute service-attachments delete smtp-svc-attachment --region=$region -q
gcloud compute forwarding-rules delete producer-smtp-fr --region=$region -q
gcloud compute target-tcp-proxies delete producer-lb-tcp-proxy --region=$region -q
gcloud compute backend-services delete producer-backend-svc --region=$region -q
gcloud compute network-firewall-policies rules delete 2001 --firewall-policy looker-psc-demo-policy --global-firewall-policy -q
gcloud compute network-firewall-policies associations delete --firewall-policy=looker-psc-demo-policy --name=looker-psc-demo --global-firewall-policy -q
gcloud compute network-firewall-policies delete looker-psc-demo-policy --global -q
gcloud compute routers nats delete looker-psc-demo-natgw --router=looker-psc-demo-cloud-router --router-region=$region -q
gcloud compute routers delete looker-psc-demo-cloud-router --region=$region -q
gcloud compute network-endpoint-groups delete smtp-internet-neg --region=$region -q
gcloud compute addresses delete internet-neg-lb-ip --region=$region -q
gcloud compute networks subnets delete producer-psc-fr-subnet producer-psc-nat-subnet $region-proxy-only-subnet --region=$region -q
gcloud compute networks delete looker-psc-demo -q
13. Selamat
Selamat, Anda telah berhasil mengonfigurasi dan memvalidasi konektivitas ke Layanan SMTP Looker menggunakan Looker Console yang didukung oleh Private Service Connect.
Anda telah membuat infrastruktur produsen, mempelajari cara membuat NEG Internet, Layanan Produsen, dan endpoint Looker PSC yang mengizinkan konektivitas ke layanan Producer.
Cosmopup menganggap codelab itu luar biasa.
Apa selanjutnya?
Lihat beberapa codelab ini...
- Menggunakan Private Service Connect untuk memublikasikan dan menggunakan layanan
- Terhubung ke layanan lokal melalui Jaringan Hybrid menggunakan Private Service Connect dan load balancer Proxy TCP internal
- Akses ke semua codelab Private Service Connect yang dipublikasikan