1. Pengantar
Ringkasan
Dalam lab ini, pengguna akan mempelajari cara hub Network Connectivity Center menyebarkan endpoint Private Service Connect ke spoke VPC.
Resource hub menyediakan model pengelolaan konektivitas terpusat untuk menghubungkan traffic spoke VPC ke endpoint PSC.
Yang akan Anda bangun
Dalam codelab ini, Anda akan membuat jaringan NCC yang akan menyebarkan endpoint private service connect ke instance Cloud SQL.
Yang akan Anda pelajari
- Menggunakan Private Service Connect untuk terhubung ke instance Cloud SQL
- Gunakan hub NCC untuk menyebarkan subnet PSC ke semua spoke VPC guna mengizinkan konektivitas jaringan dari beberapa jaringan VPC.
Yang Anda butuhkan
- Pengetahuan tentang GCP Cloud Networking
- Pengetahuan Dasar Cloud SQL
- Project Google Cloud
- Periksa Quota:Networks dan minta Jaringan tambahan jika diperlukan, screenshot di bawah:
Tujuan
- Menyiapkan Lingkungan GCP
- Menyiapkan instance Cloud SQL untuk MySQL dengan Private Service Connect
- Mengonfigurasi Hub Network Connectivity Center untuk menyebarkan endpoint PSC
- Mengonfigurasi Network Connectivity Center dengan VPC sebagai spoke
- Memvalidasi Jalur Data
- Mempelajari fitur kemampuan servis NCC
- Membersihkan resource
Sebelum memulai
Konsol Google Cloud dan Cloud Shell
Untuk berinteraksi dengan GCP, kita akan menggunakan Konsol Google Cloud dan Cloud Shell di seluruh lab ini.
Konsol Google Cloud Project NCC Hub
Cloud Console dapat diakses di https://console.cloud.google.com.
Siapkan item berikut di Google Cloud untuk mempermudah konfigurasi Network Connectivity Center:
Di Konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.
Luncurkan Cloud Shell. Codelab ini menggunakan $variables untuk membantu penerapan konfigurasi gcloud di Cloud Shell.
gcloud auth list
gcloud config list project
gcloud config set project $project
project=[YOUR-PROJECT-NAME]
echo $project
Peran IAM
NCC memerlukan peran IAM untuk mengakses API tertentu. Pastikan untuk mengonfigurasi pengguna dengan peran IAM NCC sesuai kebutuhan.
Peran/Deskripsi | Izin |
networkconnectivity.networkAdmin - Mengizinkan administrator jaringan mengelola hub dan spoke. | networkconnectivity.hubs.networkconnectivity.spokes. |
networkconnectivity.networkSpokeManager - Memungkinkan penambahan dan pengelolaan spoke di hub. Untuk digunakan di VPC Bersama dengan project host yang memiliki Hub, tetapi admin lain di project lain dapat menambahkan spoke untuk lampiran mereka ke Hub. | networkconnectivity.spokes.** |
networkconnectivity.networkUsernetworkconnectivity.networkViewer - Memungkinkan pengguna jaringan melihat berbagai atribut hub dan spoke. | networkconnectivity.hubs.getnetworkconnectivity.hubs.listnetworkconnectivity.spokes.getnetworkconnectivity.spokes.listnetworkconnectivity.spokes.aggregatedList |
2. Menyiapkan Lingkungan Jaringan
Ringkasan
Di bagian ini, kita akan men-deploy dua jaringan VPC dan aturan firewall dalam satu project. Diagram logis mengilustrasikan lingkungan jaringan yang akan disiapkan pada langkah ini.
Membuat VPC1 dan Subnet
Jaringan VPC berisi subnet tempat Anda akan menginstal VM GCE untuk validasi jalur data
vpc_spoke_network_name="vpc1-spoke"
vpc_spoke_subnet_name="subnet1"
vpc_spoke_subnet_ip_range="10.0.1.0/24"
region="us-central1"
zone="us-central1-a"
gcloud compute networks create "${vpc_spoke_network_name}" \
--subnet-mode=custom \
gcloud compute networks subnets create "${vpc_spoke_subnet_name}" \
--network="${vpc_spoke_network_name}" \
--range="${vpc_spoke_subnet_ip_range}" \
--region="${region}"
Membuat subnet PSC di VPC
Gunakan perintah di bawah untuk membuat subnet di spoke VPC yang akan dialokasikan ke PSC-EP.
vpc_spoke_network_name="vpc1-spoke"
vpc_spoke_subnet_name="csql-psc-subnet"
region="us-central1"
vpc_spoke_subnet_ip_range="192.168.0.0/24"
gcloud compute networks subnets create "${vpc_spoke_subnet_name}" \
--network="${vpc_spoke_network_name}" \
--range="${vpc_spoke_subnet_ip_range}" \
--region="${region}"
Membuat VPC3 dan Subnet
vpc_spoke_network_name="vpc3-spoke"
vpc_spoke_subnet_name="subnet3"
vpc_spoke_subnet_ip_range="10.0.3.0/24"
region="us-central1"
zone="us-central1-a"
gcloud compute networks create "${vpc_spoke_network_name}" \
--subnet-mode=custom \
gcloud compute networks subnets create "${vpc_spoke_subnet_name}" \
--network="${vpc_spoke_network_name}" \
--range="${vpc_spoke_subnet_ip_range}" \
--region="${region}"
Mengonfigurasi Aturan Firewall VPC1
Aturan ini akan mengizinkan konektivitas jaringan dari rentang RFC1918 dan Identity Access Proxy
vpc_spoke_network_name="vpc1-spoke"
gcloud compute firewall-rules create vpc1-allow-all \
--network="${vpc_spoke_network_name}" \
--allow=all \
--source-ranges=10.0.0.0/8,172.16.0.0/12,192.168.0.0/16
gcloud compute firewall-rules create vpc1-allow-iap \
--network="${vpc_spoke_network_name}" \
--allow all \
--source-ranges 35.235.240.0/20
Mengonfigurasi VPC Routing dan Aturan Firewall VPC
vpc_spoke_network_name="vpc3-spoke"
gcloud compute firewall-rules create vpc3-allow-all \
--network="${vpc_spoke_network_name}" \
--allow=all \
--source-ranges=10.0.0.0/8,172.16.0.0/12,192.168.0.0/16
gcloud compute firewall-rules create vpc3-allow-iap \
--network="${vpc_spoke_network_name}" \
--allow all \
--source-ranges 35.235.240.0/20
Mengonfigurasi VM GCE di VPC1
Anda memerlukan akses internet sementara untuk menginstal paket, jadi konfigurasikan instance untuk menggunakan alamat IP eksternal.
vm_vpc1_spoke_name="csql-vpc1-vm"
vpc_spoke_network_name="vpc1-spoke"
vpc_spoke_subnet_name="subnet1"
region="us-central1"
zone="us-central1-a"
gcloud compute instances create "${vm_vpc1_spoke_name}" \
--machine-type="e2-medium" \
--subnet="${vpc_spoke_subnet_name}" \
--zone="${zone}" \
--image-family=debian-11 \
--image-project=debian-cloud \
--metadata=startup-script='#!/bin/bash
sudo apt-get update
sudo apt-get install -y default-mysql-client'
Mengonfigurasi VM GCE di VPC3
Anda memerlukan akses internet sementara untuk menginstal paket, jadi konfigurasikan instance untuk menggunakan alamat IP eksternal.
vm_vpc_spoke_name="csql-vpc3-vm"
vpc_spoke_network_name="vpc3-spoke"
vpc_spoke_subnet_name="subnet3"
region="us-central1"
zone="us-central1-a"
gcloud compute instances create "${vm_vpc_spoke_name}" \
--machine-type="e2-medium" \
--subnet="${vpc_spoke_subnet_name}" \
--zone="${zone}" \
--image-family=debian-11 \
--image-project=debian-cloud \
--metadata=startup-script='#!/bin/bash
sudo apt-get update
sudo apt-get install -y default-mysql-client'
3. Membuat Instance Cloud SQL
Gunakan perintah di bawah untuk membuat instance dan mengaktifkan Private Service Connect .
Proses ini memerlukan waktu beberapa menit.
gcloud config set project ${project}
gcloud sql instances create mysql-instance \
--project="${project}" \
--region=us-central1 \
--enable-private-service-connect \
--allowed-psc-projects="${project}" \
--availability-type=zonal \
--no-assign-ip \
--tier=db-f1-micro \
--database-version=MYSQL_8_0 \
--enable-bin-log
Mengidentifikasi URI lampiran layanan instance Cloud SQL
Gunakan perintah gcloud sql instances describe untuk melihat informasi tentang instance dengan Private Service Connect yang diaktifkan. Perhatikan kolom pscServiceAttachmentLink yang menampilkan URI yang mengarah ke lampiran layanan instance. Kita akan memerlukannya di bagian berikutnya.
gcloud sql instances describe mysql-instance \
--format='value(pscServiceAttachmentLink)'
4. Endpoint PSC ke Cloud SQL
Mencadangkan Alamat IP Internal untuk Endpoint PSC
Gunakan perintah di bawah untuk mencadangkan alamat IP internal untuk endpoint Private Service Connect,
region="us-central1"
vpc_spoke_subnet_name="csql-psc-subnet"
gcloud compute addresses create csql-psc-ip \
--subnet="${vpc_spoke_subnet_name}" \
--region="${region}" \
--addresses=192.168.0.253
Cari NAME yang terkait dengan alamat IP yang dicadangkan. Ini akan digunakan dalam konfigurasi aturan penerusan.
gcloud compute addresses list \
--filter="name=csql-psc-ip"
Membuat Aturan Penerusan Private Service Connect di VPC1
Gunakan perintah di bawah untuk membuat endpoint Private Service Connect dan mengarahkannya ke lampiran layanan Cloud SQL.
vpc_spoke_network_name="vpc1-spoke"
vpc_spoke_subnet_name="csql-psc-subnet"
region="us-central1"
csql_psc_ep_name="csql-psc-ep"
sa_uri=$(gcloud sql instances describe mysql-instance \
--format='value(pscServiceAttachmentLink)')
echo "$sa_uri"
gcloud compute forwarding-rules create "${csql_psc_ep_name}" \
--address=csql-psc-ip \
--region="${region}" \
--network="${vpc_spoke_network_name}" \
--target-service-attachment="${sa_uri}" \
--allow-psc-global-access
Gunakan perintah di bawah untuk memverifikasi bahwa lampiran layanan cSQL menerima endpoint
gcloud compute forwarding-rules describe csql-psc-ep \
--region=us-central1 \
--format='value(pscConnectionStatus)'
Memverifikasi jalur data ke MySQL dari VPC1
Saat membuat instance Cloud SQL baru, Anda harus menetapkan sandi untuk akun pengguna default sebelum dapat terhubung ke instance.
gcloud sql users set-password root \
--host=% \
--instance=mysql-instance \
--prompt-for-password
Gunakan perintah di bawah untuk menemukan alamat IP endpoint PSC yang dikaitkan dengan lampiran layanan Cloud SQL.
gcloud compute addresses describe csql-psc-ip \
--region=us-central1 \
--format='value(address)'
Menghubungkan ke Instance Cloud SQL dari VM di VPC1
Buka sesi SSH ke csql-vpc1-vm
gcloud compute ssh csql-vpc1-vm \
--zone=us-central1-a \
--tunnel-through-iap
Gunakan perintah di bawah untuk terhubung ke instance Cloud Sql. Saat diminta, masukkan sandi yang dibuat pada langkah di atas.
mysql -h 192.168.0.253 -u root -p
Output di bawah ditampilkan setelah login berhasil,
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MySQL connection id is 8350
Server version: 8.0.31-google (Google)
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MySQL [(none)]>
Gunakan perintah show databases; untuk memverifikasi database yang dibuat secara default di MySql.
MySQL [(none)]> show databases;
Menghubungkan ke Instance Cloud SQL dari VM di VPC3
Buka sesi SSH ke csql-vpc3-vm,
gcloud compute ssh csql-vpc3-vm \
--zone=us-central1-a \
--tunnel-through-iap
Gunakan perintah di bawah untuk terhubung ke instance Cloud Sql. Saat diminta, masukkan sandi yang dibuat pada langkah di atas.
mysql -h 192.168.0.253 -u root -p
Sesi dari VM yang berada di VPC3 gagal karena tidak ada jalur data dari VPC3 ke Endpoint Private Service Connect. Gunakan tombol untuk keluar dari sesi.
Ctrl + C
5. Hub Network Connectivity Center
Ringkasan
Di bagian ini, kita akan mengonfigurasi Hub NCC menggunakan perintah gcloud. Hub NCC akan berfungsi sebagai platform kontrol yang bertanggung jawab untuk membuat jalur data dari spoke VPC ke endpoint Private Service Connect.
Mengaktifkan Layanan API
Aktifkan network connectivity API jika belum diaktifkan:
gcloud services enable networkconnectivity.googleapis.com
Membuat Hub NCC
Gunakan perintah gcloud di bawah untuk membuat hub NCC. Flag "–export-psc" menginstruksikan NCC Hub untuk menyebarkan endpoint PSC yang diketahui ke semua spoke VPC.
hub_name="ncc-hub"
gcloud network-connectivity hubs create "${hub_name}" \
--export-psc
Jelaskan Hub NCC yang baru dibuat. Perhatikan nama dan jalur terkait.
gcloud network-connectivity hubs describe ncc-hub
Mengonfigurasi VPC1 sebagai spoke NCC
hub_name="ncc-hub"
vpc_spoke_name="sql-vpc1-spoke"
vpc_spoke_network_name="vpc1-spoke"
gcloud network-connectivity spokes linked-vpc-network create "${vpc_spoke_name}" \
--hub="${hub_name}" \
--vpc-network="${vpc_spoke_network_name}" \
--global
Mengonfigurasi VPC3 sebagai spoke NCC
hub_name="ncc-hub"
vpc_spoke_name="sql-vpc3-spoke"
vpc_spoke_network_name="vpc3-spoke"
gcloud network-connectivity spokes linked-vpc-network create "${vpc_spoke_name}" \
--hub="${hub_name}" \
--vpc-network="${vpc_spoke_network_name}" \
--global
Gunakan perintah di bawah untuk memeriksa tabel rute NCC Hub untuk rute ke subnet PSC.
gcloud network-connectivity hubs route-tables routes list \
--route_table=default \
--hub=ncc-hub
6. Memverifikasi jalur data NCC
Pada langkah ini, kita akan memvalidasi jalur data antara spoke VPC dan hybrid NCC.
Memverifikasi jalur data yang dikonfigurasi NCC ke endpoint PSC Instance Cloud SQL
Gunakan output dari perintah gcloud ini untuk login ke VM on prem.
gcloud compute instances list --filter="name=csql-vpc3-vm"
Login ke instance VM yang berada di jaringan lokal.
gcloud compute ssh csql-vpc3-vm \
--zone=us-central1-a \
--tunnel-through-iap
Gunakan perintah mysql di bawah untuk terhubung ke instance Cloud Sql. Saat diminta, masukkan sandi yang dibuat pada langkah di atas.
mysql -h 192.168.0.253 -u root -p
Output di bawah ditampilkan setelah login berhasil,
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MySQL connection id is 8501
Server version: 8.0.31-google (Google)
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MySQL [(none)]> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
4 rows in set (0.005 sec)
Gunakan perintah show databases; untuk memverifikasi database yang dibuat secara default di MySql
MySQL [(none)]> show databases;
7. Pembersihan
Login ke cloud shell dan hapus resource GCP.
Menghapus Endpoint PSC Cloud Sql
gcloud compute forwarding-rules delete csql-psc-ep \
--region=us-central1 \
--quiet
gcloud compute addresses delete csql-psc-ip \
--region=us-central1 \
--quiet
gcloud compute networks subnets delete csql-psc-subnet \
--region=us-central1 \
--quiet
Menghapus Instance Cloud Sql
gcloud sql instances delete mysql-instance --quiet
Menghapus Aturan Firewall
vpc_spoke_network_name="vpc3-spoke"
gcloud compute firewall-rules delete vpc3-allow-all \ --network="${vpc_spoke_network_name}"
gcloud compute firewall-rules delete vpc3-allow-iap \ --network="${vpc_spoke_network_name}"
vpc_spoke_network_name="vpc1-spoke"
gcloud compute firewall-rules delete vpc1-allow-all \ --network="${vpc_spoke_network_name}"
gcloud compute firewall-rules delete vpc1-allow-iap \ --network="${vpc_spoke_network_name}"
Menghapus Instance GCE di VPC1 dan VPC3
vm_vpc1_spoke_name="csql-vpc1-vm"
zone="us-central1-a"
gcloud compute instances delete "${vm_vpc1_spoke_name}" \
--zone="${zone}" \
--quiet
vm_vpc_spoke_name="csql-vpc3-vm"
zone="us-central1-a"
gcloud compute instances delete "${vm_vpc_spoke_name}" \
--zone="${zone}" --quiet
Menghapus spoke NCC
vpc_spoke_name="sql-vpc1-spoke"
gcloud network-connectivity spokes delete "${vpc_spoke_name}" \
--global \
--quiet
vpc_spoke_name="sql-vpc3-spoke"
gcloud network-connectivity spokes delete "${vpc_spoke_name}" \
--global \
--quiet
Menghapus Hub NCC
hub_name="ncc-hub"
gcloud network-connectivity hubs delete "${hub_name}" \
--project=${project}
Menghapus Subnet di semua VPC
vpc_spoke_subnet_name="csql-psc-subnet"
region="us-central1"
gcloud compute networks subnets delete "${vpc_spoke_subnet_name}" \
--region="${region}" \
--quiet
vpc_spoke_subnet_name="subnet1"
region="us-central1"
gcloud compute networks subnets delete "${vpc_spoke_subnet_name}" \
--region="${region}" \
--quiet
vpc_spoke_subnet_name="subnet3"
region="us-central1"
gcloud compute networks subnets delete "${vpc_spoke_subnet_name}" \
--region="${region}" \
--quiet
Hapus VPC1 dan VPC3
gcloud compute networks delete vpc1-spoke vpc3-spoke
8. Selamat!
Anda telah menyelesaikan propagasi Private Service Connect dengan Lab Network Connectivity Center.
Yang telah Anda pelajari
- Perluasan endpoint Private Service Connect dengan Network Connectivity Center
Langkah Berikutnya