NEG Hybrid Arah Selatan bagi Looker PSC ke infrastruktur lokal

1. Pengantar

Dalam codelab ini, Anda akan melakukan koneksi southbound ke database postgres lokal melalui H-VPN menggunakan load balancer proxy tcp internal dan grup endpoint jaringan hybrid 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 menghosting layanan ini di jaringan VPC masing-masing yang terpisah dan menawarkan koneksi pribadi kepada konsumen mereka. Misalnya, saat menggunakan Private Service Connect untuk mengakses Looker, Anda adalah konsumen layanan, dan Google adalah produsen layanan, seperti yang ditandai pada Gambar 1.

Gambar 1.

145ea4672c3a3b14.png

Akses southbound, yang juga dikenal sebagai PSC terbalik, memungkinkan Konsumen membuat Layanan yang Dipublikasikan sebagai Produsen untuk mengizinkan akses Looker ke endpoint on-premise, di VPC, ke layanan terkelola, dan hybrid. Koneksi southbound dapat di-deploy di region mana pun, terlepas dari tempat Looker PSC di-deploy, seperti yang ditandai pada Gambar 2.

Gambar 2.

259493afd914f68b.png

Yang akan Anda pelajari

  • Persyaratan jaringan
  • Membuat layanan produsen Private Service Connect
  • Membuat endpoint Private Service Connect di Looker
  • Membangun konektivitas ke database postgres lokal dari Looker menggunakan Koneksi Pengujian

Yang Anda butuhkan

def88091b42bfe4d.png

2. Yang akan Anda build

Anda akan membuat jaringan Produsen, looker-psc-demo, untuk men-deploy load balancer proxy tcp internal dan NEG Hybrid yang dipublikasikan sebagai layanan melalui Private Service Connect (PSC). Untuk mendemonstrasikan database lokal, Anda akan men-deploy VPC on-prem-demo yang terhubung ke VPC looker-psc-demo menggunakan HA-VPN.

Anda akan melakukan tindakan berikut untuk memvalidasi akses ke layanan Producer:

  • Membuat Endpoint PSC di Looker yang terkait dengan Lampiran Layanan Produsen
  • Menggunakan Konsol Looker untuk melakukan validasi koneksi ke database postgres lokal

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

VPC (on-prem-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 Hybrid

Layanan cloud lokal dan lainnya diperlakukan seperti backend Cloud Load Balancing lainnya. Perbedaan utamanya adalah Anda menggunakan NEG konektivitas hybrid untuk mengonfigurasi endpoint backend ini. Endpoint harus berupa kombinasi IP:port yang valid dan dapat dijangkau oleh load balancer Anda menggunakan produk konektivitas hybrid seperti Cloud VPN atau Cloud Interconnect.

Layanan Backend

Layanan backend bertindak sebagai jembatan antara load balancer dan resource backend Anda. Dalam tutorial ini, layanan backend dikaitkan dengan NEG Hybrid.

Cloud Router

  • Cloud NAT mengandalkan Cloud Router untuk kemampuan bidang kontrol, tetapi tidak untuk pengelolaan sesi BGP.
  • Cloud Router digunakan untuk BGP yang dibuat untuk pembuatan VPN dengan ketersediaan tinggi (HA) antara VPC psc-looker-demo dan on-prem-demo.

VPN dengan ketersediaan tinggi (HA)

VPN dengan ketersediaan tinggi (HA) di antara jaringan VPC Google Cloud. Dalam topologi ini, Anda dapat menghubungkan dua jaringan VPC Google Cloud menggunakan gateway VPN dengan ketersediaan tinggi (HA) di setiap jaringan. Jaringan VPC dapat berada di region yang sama atau beberapa region.

Cloud NAT

Digunakan oleh VPC demo on-prem untuk traffic keluar internet

4. Topologi codelab

79aeb28b38f237da.png

5. Penyiapan dan Persyaratan

Penyiapan lingkungan mandiri

  1. 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.

fbef9caa1602edd0.png

a99b7ace416376c4.png

5e3ff691252acf41.png

  • 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.
  1. 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:

55efc1aaa7a4d3ad.png

Hanya perlu waktu beberapa saat untuk penyediaan dan terhubung ke lingkungan. Jika sudah selesai, Anda akan melihat tampilan seperti ini:

7ffe5cbb04455448.png

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]
zone=[YOUR-ZONE]
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 Lampiran Layanan PSC 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 produsen:

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

Mencadangkan alamat IP load balancer

Di dalam Cloud Shell, cadangkan alamat IP internal untuk load balancer:

gcloud compute addresses create hybrid-neg-lb-ip \
  --region=$region \
  --subnet=producer-psc-fr-subnet

Di dalam Cloud Shell, lihat Alamat IP yang dicadangkan.

gcloud compute addresses describe hybrid-neg-lb-ip \
  --region=$region | grep -i address:

Contoh output:

gcloud compute addresses describe hybrid-neg-lb-ip   --region=$region | grep -i address:
address: 172.16.20.2

Menyiapkan NEG Hybrid

Buat NEG Hybrid, dan tetapkan –network-endpoint-type ke NON_GCP_PRIVATE_IP_PORT

Di dalam Cloud Shell, buat NEG Hybrid yang digunakan untuk mengakses database on-prem:

gcloud compute network-endpoint-groups create on-prem-hybrid-neg \
    --network-endpoint-type=NON_GCP_PRIVATE_IP_PORT \
    --network=looker-psc-demo \
    --zone=$zone

Di dalam Cloud Shell, perbarui NEG Hybrid dengan IP:Port database on-premise, 192.168.10.4 & Port 5432, yang dibuat pada langkah selanjutnya dalam tutorial ini:

gcloud compute network-endpoint-groups update on-prem-hybrid-neg \
    --add-endpoint=ip=192.168.10.4,port=5432 \
    --zone=$zone

Membuat health check regional

Di dalam Cloud Shell, buat health check yang memeriksa port database on-premise, 5432:

gcloud compute health-checks create tcp on-prem-5432-healthcheck \
    --region=$region \
    --port=5432

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. Membuat Layanan Produsen

Membuat Komponen Load Balancer

Di dalam Cloud Shell, buat layanan backend:

gcloud compute backend-services create producer-backend-svc --region=$region --load-balancing-scheme=INTERNAL_MANAGED --protocol=TCP --region=$region --health-checks=on-prem-5432-healthcheck --health-checks-region=$region

Di dalam Cloud Shell, tambahkan backend NEG Hybrid ke layanan backend:

gcloud compute backend-services add-backend producer-backend-svc --network-endpoint-group=on-prem-hybrid-neg --network-endpoint-group-zone=$zone --balancing-mode=CONNECTION --max-connections=100 --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-hybrid-neg-fr \
     --load-balancing-scheme=INTERNAL_MANAGED \
     --network-tier=PREMIUM \
     --network=looker-psc-demo \
     --subnet=producer-psc-fr-subnet \
     --address=hybrid-neg-lb-ip \
     --target-tcp-proxy=producer-lb-tcp-proxy \
     --target-tcp-proxy-region=$region \
     --region=$region \
     --ports=5432

Buat Lampiran Layanan

Di dalam Cloud Shell, buat Lampiran Layanan, onpremdatabase1-svc-attachment:

gcloud compute service-attachments create onpremdatabase1-svc-attachment --region=$region --producer-forwarding-rule=producer-hybrid-neg-fr --connection-preference=ACCEPT_AUTOMATIC --nat-subnets=producer-psc-nat-subnet

Selanjutnya, dapatkan dan catat Lampiran Layanan yang tercantum dalam URI selfLink yang dimulai dengan project untuk mengonfigurasi endpoint PSC di Looker.

selfLink: projects/<your-project-id>/regions/<your-region>/serviceAttachments/onpremdatabase1-svc-attachment

Di dalam Cloud Shell, lakukan hal berikut:

gcloud compute service-attachments describe onpremdatabase1-svc-attachment --region=$region

Contoh Output yang Diharapkan:

connectionPreference: ACCEPT_AUTOMATIC
creationTimestamp: '2024-09-01T16:07:51.600-07:00'
description: ''
enableProxyProtocol: false
fingerprint: cFt9rERR1iE=
id: '2549689544315850024'
kind: compute#serviceAttachment
name: onpremdatabase1-svc-attachment
natSubnets:
- https://www.googleapis.com/compute/v1/projects/$project/regions/$region/subnetworks/producer-psc-nat-subnet
pscServiceAttachmentId:
  high: '19348441121424360'
  low: '2549689544315850024'
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/onpremdatabase1-svc-attachment
targetService: https://www.googleapis.com/compute/v1/projects/$project/regions/$region/forwardingRules/producer-hybrid-neg-fr

Di Cloud Console, buka:

Layanan Jaringan → Private Service Connect → Layanan yang Dipublikasikan

9f436251a3ae2cc7.png

4c3e8e73d40d1238.png

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 cocok dengan lingkungan Anda:

  • INSTANCE_NAME: Nama instance Looker (Google Cloud core) Anda.
  • DOMAIN_1: onprem.database1.com
  • SERVICE_ATTACHMENT_1: URI yang diambil saat membuat Lampiran Layanan, onpremdatabase1-svc-attachment
  • REGION: Region tempat instance Looker (Google Cloud core) Anda 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=onprem.database1.com,attachment=projects/$project/regions/$region/serviceAttachments/onpremdatabase1-svc-attachment --region=$region

Di dalam Cloud Shell, validasi connectionStatus serviceAttachments adalah "ACCEPTED", perbarui dengan nama Instance 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:

{
  "adminSettings": {},
  "createTime": "2024-08-23T00:00:45.339063195Z",
  "customDomain": {
    "domain": "looker.cosmopup.com",
    "state": "AVAILABLE"
  },
  "encryptionConfig": {},
  "lookerVersion": "24.14.18",
  "name": "projects/$project/locations/$region/instances/looker-psc-instance",
  "platformEdition": "LOOKER_CORE_ENTERPRISE_ANNUAL",
  "pscConfig": {
    "allowedVpcs": [
      "projects/$project/global/networks/looker-psc-demo",
      "projects/$project/global/networks/looker-shared-vpc"
    ],
    "lookerServiceAttachmentUri": "projects/t7ec792caf2a609d1-tp/regions/$region/serviceAttachments/looker-psc-f51982e2-ac0d-48b1-91bb-88656971c183",
    "serviceAttachments": [
      {
        "connectionStatus": "ACCEPTED",
        "localFqdn": "onprem.database1.com",
        "targetServiceAttachmentUri": "projects/$project/regions/$region/serviceAttachments/onpremdatabase1-svc-attachment"
      }
    ]
  },
  "pscEnabled": true,
  "state": "ACTIVE",
  "updateTime": "2024-09-01T23:15:07.426372901Z"
}

Memvalidasi endpoint PSC di Cloud Console

Dari Cloud Console, Anda dapat memvalidasi Koneksi PSC

Di Cloud Console, buka:

Looker → Instance Looker → Detail

2d4684d722d31e4b.png

993cdaf748f4c030.png

Membuat Jaringan VPC lokal

Jaringan VPC

Di dalam Cloud Shell, lakukan hal berikut:

gcloud compute networks create on-prem-demo --project=$project --subnet-mode=custom

Membuat subnet database Postgresql

Di dalam Cloud Shell, lakukan hal berikut:

gcloud compute networks subnets create database-subnet --project=$project --range=192.168.10.0/28 --network=on-prem-demo --region=$region

Di dalam Cloud Shell, cadangkan alamat IPv4 internal, yang digunakan untuk onprem.database1.com, 192.168.10.4:

gcloud compute addresses create on-prem-database1-ip --region=$region --subnet=database-subnet --addresses 192.168.10.4

Membuat Cloud Router untuk VPC on-prem-demo

Cloud NAT digunakan dalam tutorial ini untuk penginstalan paket software karena instance VM tidak memiliki alamat IP eksternal.

Di dalam Cloud Shell, buat Cloud Router yang digunakan dengan Cloud NAT & HA-VPN:

gcloud compute routers create on-prem-cr \
   --region=$region \
   --network=on-prem-demo \
   --asn=65002

Di dalam Cloud Shell, buat gateway NAT:

gcloud compute routers nats create on-prem-nat --router=on-prem-cr --auto-allocate-nat-external-ips --nat-all-subnet-ip-ranges --region $region

Membuat instance pengujian database

Buat instance database postgres yang akan digunakan untuk menguji dan memvalidasi konektivitas ke Looker.

Di dalam Cloud Shell, buat instance:

gcloud compute instances create postgres-database \
    --project=$project \
    --zone=$zone \
    --machine-type=e2-medium \
    --subnet=database-subnet \
    --no-address \
    --private-network-ip 192.168.10.4 \
    --image-family debian-12 \
    --image-project debian-cloud  \
    --metadata startup-script="#! /bin/bash
      sudo apt-get update
      sudo apt -y install postgresql postgresql-client postgresql-contrib -y"

Membuat Kebijakan Firewall Jaringan dan Aturan Firewall

Di dalam Cloud Shell, lakukan hal berikut:

gcloud compute network-firewall-policies create on-prem-demo-policy --global

gcloud compute network-firewall-policies associations create --firewall-policy on-prem-demo-policy --network on-prem-demo --name on-prem-demo --global-firewall-policy

Untuk mengizinkan IAP terhubung ke instance VM Anda, buat aturan firewall yang:

  • Berlaku untuk semua instance VM yang ingin Anda akses menggunakan IAP.
  • Mengizinkan traffic masuk dari rentang IP 35.235.240.0/20. Rentang ini berisi semua alamat IP yang digunakan IAP untuk penerusan TCP.

Di dalam Cloud Shell, lakukan hal berikut:

gcloud compute network-firewall-policies rules create 1000 --action ALLOW --firewall-policy on-prem-demo-policy --description "SSH with IAP" --direction INGRESS --src-ip-ranges 35.235.240.0/20 --layer4-configs tcp:22  --global-firewall-policy

Aturan firewall berikut mengizinkan traffic dari rentang subnet khusus proxy ke semua instance dalam jaringan.

Di dalam Cloud Shell, lakukan hal berikut:

gcloud compute network-firewall-policies rules create 2001 --action ALLOW --firewall-policy on-prem-demo-policy --description "allow traffic from proxy only subnet" --direction INGRESS --src-ip-ranges 10.10.10.0/24 --global-firewall-policy --layer4-configs=tcp

10. Konektivitas hybrid

Di bagian berikut, Anda akan membuat Cloud Router yang memungkinkan Anda menukar rute secara dinamis antara Virtual Private Cloud (VPC) dan jaringan peer menggunakan Border Gateway Protocol (BGP).

Cloud Router dapat menyiapkan sesi BGP melalui tunnel Cloud VPN untuk menghubungkan jaringan Anda. Cloud Router secara otomatis mempelajari rentang alamat IP subnet baru dan mengumumkannya ke jaringan peer Anda.

Pada langkah-langkah berikut, Anda akan men-deploy VPN dengan ketersediaan tinggi (HA) antara VPC looker-psc-demo dan VPC on-prem-demo untuk menunjukkan konektivitas NEG Hybrid ke onprem.database1.com.

Membuat GW VPN dengan ketersediaan tinggi (HA) untuk looker-psc-demo

Saat setiap gateway dibuat, dua alamat IPv4 eksternal akan dialokasikan secara otomatis, masing-masing untuk setiap antarmuka gateway.

Di dalam Cloud Shell, buat GW VPN dengan ketersediaan tinggi (HA):

gcloud compute vpn-gateways create looker-psc-demo-vpn-gw \
   --network=looker-psc-demo \
   --region=$region

Membuat GW VPN dengan ketersediaan tinggi (HA) untuk demo lokal

Saat setiap gateway dibuat, dua alamat IPv4 eksternal akan dialokasikan secara otomatis, masing-masing untuk setiap antarmuka gateway.

Di dalam Cloud Shell, buat GW VPN dengan ketersediaan tinggi (HA):

gcloud compute vpn-gateways create on-prem-vpn-gw \
   --network=on-prem-demo\
   --region=$region

Memvalidasi pembuatan GW VPN dengan ketersediaan tinggi (HA)

Menggunakan konsol, buka KONEKTIVITAS HYBRID → VPN → GATEWAY CLOUD VPN.

7f1b504616504866.png

Membuat Cloud Router untuk looker-psc-demo

Di dalam Cloud Shell, buat Cloud Router:

gcloud compute routers create looker-psc-demo-cr \
   --region=$region \
   --network=looker-psc-demo\
   --asn=65001

Membuat tunnel VPN untuk looker-psc-demo

Anda akan membuat dua tunnel VPN di setiap gateway VPN dengan ketersediaan tinggi (HA).

Membuat tunnel VPN0

Di dalam Cloud Shell, buat tunnel0:

gcloud compute vpn-tunnels create looker-psc-demo-tunnel0 \
    --peer-gcp-gateway on-prem-vpn-gw \
    --region $region \
    --ike-version 2 \
    --shared-secret [ZzTLxKL8fmRykwNDfCvEFIjmlYLhMucH] \
    --router looker-psc-demo-cr \
    --vpn-gateway looker-psc-demo-vpn-gw \
    --interface 0

Membuat tunnel VPN1

Di dalam Cloud Shell, buat tunnel1:

gcloud compute vpn-tunnels create looker-psc-demo-tunnel1 \
    --peer-gcp-gateway on-prem-vpn-gw \
    --region $region \
    --ike-version 2 \
    --shared-secret [bcyPaboPl8fSkXRmvONGJzWTrc6tRqY5] \
    --router looker-psc-demo-cr \
    --vpn-gateway looker-psc-demo-vpn-gw \
    --interface 1

Membuat tunnel VPN untuk on-prem-demo

Anda akan membuat dua tunnel VPN di setiap gateway VPN dengan ketersediaan tinggi (HA).

Membuat tunnel VPN0

Di dalam Cloud Shell, buat tunnel0:

gcloud compute vpn-tunnels create on-prem-tunnel0 \
    --peer-gcp-gateway looker-psc-demo-vpn-gw \
    --region $region \
    --ike-version 2 \
    --shared-secret [ZzTLxKL8fmRykwNDfCvEFIjmlYLhMucH] \
    --router on-prem-cr \
    --vpn-gateway on-prem-vpn-gw \
   --interface 0

Membuat tunnel VPN1

Di dalam Cloud Shell, buat tunnel1:

gcloud compute vpn-tunnels create on-prem-tunnel1 \
    --peer-gcp-gateway looker-psc-demo-vpn-gw \
    --region $region \
    --ike-version 2 \
    --shared-secret [bcyPaboPl8fSkXRmvONGJzWTrc6tRqY5] \
    --router on-prem-cr \
    --vpn-gateway on-prem-vpn-gw \
    --interface 1

Memvalidasi pembuatan tunnel VPN

Dengan menggunakan konsol, buka KONEKTIVITAS HYBRID → VPN → TUNNEL CLOUD VPN.

c2fcb340a7614070.png

11. Membuat tetangga BGP

Membuat antarmuka dan peering BGP untuk looker-psc-demo

Di dalam Cloud Shell, buat antarmuka BGP:

gcloud compute routers add-interface looker-psc-demo-cr \
    --interface-name if-tunnel0-to-onprem \
    --ip-address 169.254.1.1 \
    --mask-length 30 \
    --vpn-tunnel looker-psc-demo-tunnel0 \
    --region $region

Di dalam Cloud Shell, buat peer BGP:

gcloud compute routers add-bgp-peer looker-psc-demo-cr \
    --peer-name bgp-on-premises-tunnel0 \
    --interface if-tunnel1-to-onprem \
    --peer-ip-address 169.254.1.2 \
    --peer-asn 65002 \
    --region $region

Di dalam Cloud Shell, buat antarmuka BGP:

gcloud compute routers add-interface looker-psc-demo-cr \
    --interface-name if-tunnel1-to-onprem \
    --ip-address 169.254.2.1 \
    --mask-length 30 \
    --vpn-tunnel looker-psc-demo-tunnel1 \
    --region $region

Di dalam Cloud Shell, buat peer BGP:

gcloud compute routers add-bgp-peer looker-psc-demo-cr \
    --peer-name bgp-on-premises-tunnel1 \
    --interface if-tunnel2-to-onprem \
    --peer-ip-address 169.254.2.2 \
    --peer-asn 65002 \
    --region $region

Membuat antarmuka dan peering BGP untuk on-prem-demo

Di dalam Cloud Shell, buat antarmuka BGP:

gcloud compute routers add-interface on-prem-cr \
    --interface-name if-tunnel0-to-looker-psc-demo \
    --ip-address 169.254.1.2 \
    --mask-length 30 \
    --vpn-tunnel on-prem-tunnel0 \
    --region $region

Di dalam Cloud Shell, buat peer BGP:

gcloud compute routers add-bgp-peer on-prem-cr \
    --peer-name bgp-looker-psc-demo-tunnel0 \
    --interface if-tunnel1-to-looker-psc-demo \
    --peer-ip-address 169.254.1.1 \
    --peer-asn 65001 \
    --region $region

Di dalam Cloud Shell, buat antarmuka BGP:

gcloud compute routers add-interface on-prem-cr \
    --interface-name if-tunnel1-to-looker-psc-demo \
    --ip-address 169.254.2.2 \
    --mask-length 30 \
    --vpn-tunnel on-prem-tunnel1 \
    --region $region

Di dalam Cloud Shell, buat peer BGP:

gcloud compute routers add-bgp-peer on-prem-cr \
    --peer-name bgp-looker-psc-demo-tunnel1\
    --interface if-tunnel2-to-looker-psc-demo \
    --peer-ip-address 169.254.2.1 \
    --peer-asn 65001 \
    --region $region

Buka KONEKTIVITAS Hybrid → VPN untuk melihat detail tunnel VPN.

78ab590317919bf5.png

Memvalidasi rute yang dipelajari looker-psc-demo melalui VPN dengan ketersediaan tinggi (HA)

Setelah tunnel VPN dengan ketersediaan tinggi (HA) dan sesi BGP dibuat, perilaku default Cloud Router adalah mengiklankan rute subnet. Lihat rute yang dipelajari looker-psc-demo.

Menggunakan konsol, buka VPC network → VPC networks → looker-psc-demo → ROUTES → REGION → VIEW

Perhatikan bahwa looker-psc-demo telah mempelajari subnet database 192.168.10.0/28 dari VPC on-prem-demo.

c11a11ed8b0491c8.png

Memvalidasi bahwa VPC on-prem-demo mempelajari rute melalui VPN dengan ketersediaan tinggi (HA)

Karena perilaku default Cloud Router adalah mengiklankan semua subnet, subnet khusus proxy diiklankan melalui BGP. NEG campuran akan menggunakan subnet khusus proxy sebagai alamat sumber saat berkomunikasi dengan server onprem.database1.com.

Amati bahwa on-prem-demo telah mempelajari subnet khusus proxy 10.10.10.0/24 dari looker-psc-demo.

Dengan menggunakan konsol, buka VPC network → VPC networks → on-prem-demo → ROUTES → REGION → VIEW

b0073faed026931f.png

12. Pembuatan database postgres Looker

Di bagian berikut, Anda akan melakukan SSH ke VM database postgres menggunakan Cloud Shell.

Di dalam Cloud Shell, lakukan ssh ke instance database postgres**:**

 gcloud compute ssh --zone "$zone" "postgres-database" --project "$project"

Di dalam OS, identifikasi dan catat alamat IP (ens4) instance database postgres:

ip a

Contoh:

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host noprefixroute 
       valid_lft forever preferred_lft forever
2: ens4: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1460 qdisc mq state UP group default qlen 1000
    link/ether 42:01:c0:a8:0a:04 brd ff:ff:ff:ff:ff:ff
    altname enp0s4
    inet 192.168.10.4/32 metric 100 scope global dynamic ens4
       valid_lft 66779sec preferred_lft 66779sec
    inet6 fe80::4001:c0ff:fea8:a04/64 scope link 
       valid_lft forever preferred_lft forever

Di dalam OS, login ke postgresql:

sudo -u postgres psql postgres

Di dalam OS, masukkan perintah sandi:

\password postgres

Di dalam OS, tetapkan sandi ke postgres (masukkan sandi yang sama dua kali):

postgres

Contoh:

user@postgres-database:~$ sudo -u postgres psql postgres
\password postgres
psql (13.11 (Debian 13.11-0+deb11u1))
Type "help" for help.
postgres=# \password postgres
Enter new password for user "postgres": 
Enter it again: 

Di dalam OS, keluar dari postgres:

\q

Contoh:

postgres=# \q
user@postgres-database:~$ 

Di bagian berikut, Anda akan menyisipkan IP instance database postgres (192.168.10.4) dan subnet khusus proxy (10.10.10.0/24) dalam file pg_hba.conf di bagian koneksi lokal IPv4.

sudo nano /etc/postgresql/15/main/pg_hba.conf

Screenshot di bawah adalah update yang telah selesai: eaff2ed6d27fa7cc.png

Di bagian berikut, hapus tanda komentar postgresql.conf untuk memproses semua alamat IP '*' sesuai screenshot di bawah:

sudo nano /etc/postgresql/15/main/postgresql.conf

Sebelum:

65e0b1074dc48644.png

Sesudah:

14a0d1fa5455e23e.png

Di dalam OS, mulai ulang layanan postgresql:

sudo service postgresql restart

Di dalam OS, validasi status postgresql sebagai aktif:

sudo service postgresql status

Contoh:

Di dalam OS, validasi status postgresql sebagai aktif:

user@postgres-database:/$ sudo service postgresql status
● postgresql.service - PostgreSQL RDBMS
     Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; preset: enabled)
     Active: active (exited) since Mon 2024-09-02 12:10:10 UTC; 1min 46s ago
    Process: 20486 ExecStart=/bin/true (code=exited, status=0/SUCCESS)
   Main PID: 20486 (code=exited, status=0/SUCCESS)
        CPU: 2ms

Sep 02 12:10:10 postgres-database systemd[1]: Starting postgresql.service - PostgreSQL RDBMS...
Sep 02 12:10:10 postgres-database systemd[1]: Finished postgresql.service - PostgreSQL RDBMS.

13. Membuat database postgres

Di bagian berikut, Anda akan membuat database postgres bernama postgres_looker dan skema looker_schema yang digunakan untuk memvalidasi konektivitas looker ke konektivitas lokal.

Di dalam OS, login ke postgres:

sudo -u postgres psql postgres

Di dalam OS, buat database:

create database postgres_looker;

Di dalam OS, cantumkan database:

\l

Di dalam OS, buat pengguna postgres_looker dengan sandi postgreslooker:

create user postgres_looker with password 'postgreslooker';

Di dalam OS, hubungkan ke database:

\c postgres_looker;

Di dalam OS, buat skema looker-schema dan keluar ke perintah Cloud Shell.

create schema looker_schema;
create table looker_schema.test(firstname CHAR(15), lastname CHAR(20));
exit

Exit from the OS, returning you to cloud shell:

\q

Contoh:

user@postgres-database:/$ sudo -u postgres psql postgres
psql (15.8 (Debian 15.8-0+deb12u1))
Type "help" for help.

postgres=# create database postgres_looker;
CREATE DATABASE
postgres=# \l
                                                List of databases
      Name       |  Owner   | Encoding | Collate |  Ctype  | ICU Locale | Locale Provider |   Access privileges   
-----------------+----------+----------+---------+---------+------------+-----------------+-----------------------
 postgres        | postgres | UTF8     | C.UTF-8 | C.UTF-8 |            | libc            | 
 postgres_looker | postgres | UTF8     | C.UTF-8 | C.UTF-8 |            | libc            | 
 template0       | postgres | UTF8     | C.UTF-8 | C.UTF-8 |            | libc            | =c/postgres          +
                 |          |          |         |         |            |                 | postgres=CTc/postgres
 template1       | postgres | UTF8     | C.UTF-8 | C.UTF-8 |            | libc            | =c/postgres          +
                 |          |          |         |         |            |                 | postgres=CTc/postgres
(4 rows)

postgres=# create user postgres_looker with password 'postgreslooker';
CREATE ROLE
postgres=# \c postgres_looker;
You are now connected to database "postgres_looker" as user "postgres".
postgres_looker=# create schema looker_schema;
create table looker_schema.test(firstname CHAR(15), lastname CHAR(20));
exit
CREATE SCHEMA
CREATE TABLE
postgres_looker-# \q

14. Mengintegrasikan Looker dengan database Postgres

Di bagian berikut, Anda akan menggunakan Looker Console untuk membuat koneksi Database ke instance database postgres on-premise.

Buka ADMIN → DATABASE → CONNECTIONS → Pilih ADD CONNECTION

Isi detail koneksi sesuai screenshot di bawah, pilih HUBUNGKAN

5900fdf0b698cbfc.png

Koneksi kini dikonfigurasi

4817157fd3b1277e.png

15. Memvalidasi konektivitas Looker

Di bagian berikut, Anda akan mempelajari cara memvalidasi konektivitas Looker ke database postgres di on-prem-vpc menggunakan tindakan 'pengujian' Looker dan TCPDUMP.

Dari Cloud Shell, login ke database postgres jika waktu tunggu sesi habis.

Di dalam Cloud Shell, lakukan hal berikut:

gcloud config list project
gcloud config set project [YOUR-PROJECT-ID]
project=[YOUR-PROJECT-ID]
region=[YOUR-REGION]
zone=[YOUR-ZONE]
echo $project
echo $region
gcloud compute ssh --zone "$zone" "postgres-database" --project "$project"

Dari OS, buat filter TCPDUMP dengan subnet khusus proxy 10.10.10.0/24

sudo tcpdump -i any net 10.10.10.0/24 -nn

Buka Koneksi Data ADMIN → DATABASE → CONNECTIONS → postgres-database → Test

Setelah Test dipilih, Looker akan terhubung ke database postgres seperti yang ditunjukkan di bawah:

774f9313ece41034.png

Pembersihan

Menghapus komponen lab dari satu terminal Cloud Shell

gcloud compute service-attachments delete onpremdatabase1-svc-attachment --region=$region -q

gcloud compute forwarding-rules delete producer-hybrid-neg-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 on-prem-nat --router=on-prem-cr --router-region=$region -q

gcloud compute network-endpoint-groups delete on-prem-hybrid-neg --zone=$zone -q

gcloud compute addresses delete hybrid-neg-lb-ip --region=$region -q

gcloud compute vpn-tunnels delete looker-psc-demo-tunnel0 looker-psc-demo-tunnel1 on-prem-tunnel0 on-prem-tunnel1 --region=$region -q

gcloud compute vpn-gateways delete looker-psc-demo-vpn-gw on-prem-vpn-gw --region=$region -q

gcloud compute routers delete looker-psc-demo-cr on-prem-cr --region=$region -q

gcloud compute instances delete postgres-database --zone=$zone -q

gcloud compute addresses delete on-prem-database1-ip --region=$region -q

gcloud compute networks subnets delete database-subnet --region=$region -q

gcloud compute network-firewall-policies rules delete 2001 --firewall-policy on-prem-demo-policy --global-firewall-policy -q

gcloud compute network-firewall-policies rules delete 1000 --firewall-policy on-prem-demo-policy --global-firewall-policy -q

gcloud compute network-firewall-policies associations delete --firewall-policy=on-prem-demo-policy  --name=on-prem-demo --global-firewall-policy -q

gcloud compute networks subnets delete $region-proxy-only-subnet --region=$region -q

gcloud compute networks subnets delete producer-psc-nat-subnet --region=$region -q

gcloud compute networks subnets delete producer-psc-fr-subnet --region=$region -q

gcloud compute networks delete on-prem-demo -q

gcloud compute networks delete looker-psc-demo -q

16. Selamat

Selamat, Anda telah berhasil mengonfigurasi dan memvalidasi konektivitas ke database lokal melalui HA-VPN menggunakan Looker Console yang didukung oleh Private Service Connect.

Anda telah membuat infrastruktur produsen, mempelajari cara membuat NEG Hybrid, Layanan Produsen, dan endpoint PSC Looker yang memungkinkan konektivitas ke layanan Produsen.

Cosmopup menganggap codelab itu luar biasa.

c911c127bffdee57.jpeg

Apa selanjutnya?

Lihat beberapa codelab ini...

Bacaan lebih lanjut & Video

Dokumen referensi