1. Pengantar
Looker (Google Cloud core) menyediakan penyediaan, konfigurasi, dan pengelolaan instance Looker yang sederhana dan efisien dari konsol Google Cloud. Beberapa tugas administrasi instance juga dapat dilakukan dari konsol.
Ada tiga konfigurasi jaringan yang tersedia untuk instance Looker (Google Cloud core):
- Publik: Koneksi jaringan menggunakan alamat IP eksternal yang dapat diakses internet.
- Pribadi: Koneksi jaringan menggunakan alamat IP Virtual Private Cloud (VPC) yang dihosting Google secara internal.
- Publik dan pribadi: Koneksi jaringan menggunakan alamat IP publik dan alamat IP pribadi, dengan traffic masuk akan dirutekan melalui IP publik, dan traffic keluar akan dirutekan melalui IP pribadi.
Dalam tutorial ini, Anda akan men-deploy Jaringan pribadi end-to-end yang komprehensif untuk mendukung konektivitas Looker ke VPC lokal melalui VPN dengan ketersediaan tinggi (HA) yang dapat direplikasi untuk memenuhi persyaratan Anda terkait konektivitas multicloud dan lokal.
Looker (Google Cloud core) mendukung IP pribadi untuk instance yang memenuhi kriteria berikut:
- Edisi instance harus Enterprise atau Embed.
Yang akan Anda bangun
Dalam tutorial ini, Anda akan membangun deployment jaringan Looker pribadi yang komprehensif di VPC mandiri yang memiliki konektivitas hybrid ke multi-cloud dan lokal.
Anda akan menyiapkan jaringan VPC bernama on-prem-vpc untuk merepresentasikan lingkungan lokal. Untuk deployment Anda, on-prem-vpc tidak akan ada, melainkan jaringan hybrid ke pusat data lokal atau penyedia cloud Anda akan digunakan.
Berikut adalah langkah-langkah utama tutorial
- Buat VPC mandiri di us-central1
- Mengalokasikan subnet IP ke Akses Layanan Pribadi
- Men-deploy instance Looker di VPC mandiri
- Buat on-prem-vpc dan jaringan hybrid
- Mengiklankan dan memvalidasi rentang IP Looker melalui BGP
- Mengintegrasikan dan memvalidasi komunikasi data Looker dan Postgresql
Figure1

Yang akan Anda pelajari
- Cara membuat VPC dan jaringan hybrid terkait
- Cara men-deploy Looker di VPC mandiri
- Cara membuat VPC lokal dan jaringan hybrid terkait
- Hubungkan on-prem-vpc dengan analytics-vps melalui VPN dengan Ketersediaan Tinggi (HA)
- Cara mengiklankan subnet Looker melalui jaringan hybrid
- Cara memantau infrastruktur jaringan hybrid
- Cara mengintegrasikan database PostgreSQL dengan Looker Cloud Core
Yang Anda butuhkan
- Project Google Cloud
Izin IAM
2. Sebelum memulai
Mengupdate project untuk mendukung tutorial
Tutorial ini menggunakan $variables untuk membantu penerapan konfigurasi gcloud di Cloud Shell.
Di dalam Cloud Shell, lakukan hal berikut:
gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
projectid=YOUR-PROJECT-NAME
echo $projectid
3. Penyiapan VPC
Buat analytics-vpc
Di dalam Cloud Shell, lakukan hal berikut:
gcloud compute networks create analytics-vpc --project=$projectid --subnet-mode=custom
Buat on-prem-vpc
Di dalam Cloud Shell, lakukan hal berikut:
gcloud compute networks create on-prem-vpc --project=$projectid --subnet-mode=custom
Buat subnet database Postgresql
Di dalam Cloud Shell, lakukan hal berikut:
gcloud compute networks subnets create database-subnet-us-central1 --project=$projectid --range=172.16.10.0/27 --network=on-prem-vpc --region=us-central1
Konfigurasi Cloud Router dan NAT
Cloud NAT digunakan dalam tutorial untuk penginstalan paket software karena instance VM database tidak memiliki alamat IP eksternal.
Di dalam Cloud Shell, buat Cloud Router.
gcloud compute routers create on-prem-cr-us-central1-nat --network on-prem-vpc --region us-central1
Di dalam Cloud Shell, buat gateway NAT.
gcloud compute routers nats create on-prem-nat-us-central1 --router=on-prem-cr-us-central1-nat --auto-allocate-nat-external-ips --nat-all-subnet-ip-ranges --region us-central1
Membuat instance pengujian database
Buat instance postgres-database yang akan digunakan untuk menguji dan memvalidasi konektivitas ke Looker.
Di dalam Cloud Shell, buat instance.
gcloud compute instances create postgres-database \
--project=$projectid \
--zone=us-central1-a \
--machine-type=e2-medium \
--subnet=database-subnet-us-central1 \
--no-address \
--image=projects/ubuntu-os-cloud/global/images/ubuntu-2304-lunar-amd64-v20230621 \
--metadata startup-script="#! /bin/bash
sudo apt-get update
sudo apt -y install postgresql postgresql-client postgresql-contrib -y"
Membuat Aturan Firewall
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.
Dari Cloud Shell
gcloud compute firewall-rules create on-prem-ssh \
--network on-prem-vpc --allow tcp:22 --source-ranges=35.235.240.0/20
4. Akses Layanan Pribadi
Akses layanan pribadi adalah koneksi pribadi antara jaringan VPC Anda dan jaringan yang dimiliki oleh Google atau pihak ketiga. Google atau pihak ketiga, entitas yang menyediakan layanan, juga dikenal sebagai produsen layanan. Looker Cloud Core adalah produsen layanan.
Koneksi pribadi memungkinkan instance VM di jaringan VPC Anda dan layanan yang Anda akses untuk berkomunikasi secara eksklusif menggunakan alamat IP internal.
Pada dasarnya, untuk menggunakan akses layanan pribadi, Anda harus mengalokasikan rentang alamat IP (blok CIDR) di jaringan VPC Anda, lalu membuat koneksi pribadi ke produsen layanan.
Mengalokasikan rentang alamat IP untuk layanan
Sebelum membuat koneksi pribadi, Anda harus mengalokasikan rentang alamat IPv4 yang akan digunakan oleh jaringan VPC produsen layanan. Hal ini memastikan bahwa tidak ada bentrokan alamat IP antara jaringan VPC Anda dan jaringan produsen layanan.
Saat Anda mengalokasikan rentang di jaringan VPC, rentang tersebut tidak memenuhi syarat untuk subnet (rentang utama dan sekunder) dan tujuan rute statis kustom.
Penggunaan rentang alamat IPv6 dengan akses layanan pribadi tidak didukung.
Aktifkan Service Networking API untuk project Anda di Konsol Google Cloud. Saat mengaktifkan API, Anda mungkin perlu memuat ulang halaman konsol untuk mengonfirmasi bahwa API telah diaktifkan.
Membuat alokasi IP
Untuk menentukan rentang alamat IP dan panjang awalan (subnet mask), gunakan flag addresses dan prefix-length. Misalnya, untuk mengalokasikan blok CIDR 192.168.0.0/22, tentukan 192.168.0.0 untuk alamat dan 22 untuk panjang awalan.
Di dalam Cloud Shell, buat alokasi IP untuk Looker.
gcloud compute addresses create psa-range-looker \
--global \
--purpose=VPC_PEERING \
--addresses=192.168.0.0 \
--prefix-length=22 \
--description="psa range for looker" \
--network=analytics-vpc
Di dalam Cloud Shell, validasi alokasi IP.
gcloud compute addresses list --global --filter="purpose=VPC_PEERING"
Contoh:
userl@cloudshell$ gcloud compute addresses list --global --filter="purpose=VPC_PEERING"
NAME: psa-range-looker
ADDRESS/RANGE: 192.168.0.0/22
TYPE: INTERNAL
PURPOSE: VPC_PEERING
NETWORK: analytics-vpc
REGION:
SUBNET:
STATUS: RESERVED
Membuat Koneksi Pribadi
Setelah membuat rentang yang dialokasikan, Anda dapat membuat koneksi pribadi ke produsen layanan, Looker Cloud Core. Koneksi pribadi membuat koneksi Peering Jaringan VPC antara jaringan VPC Anda dan jaringan produsen layanan setelah instance Looker dibuat.
Koneksi pribadi adalah hubungan one-to-one antara jaringan VPC Anda dan produsen layanan. Jika satu produsen layanan menawarkan beberapa layanan, Anda hanya memerlukan satu koneksi pribadi untuk semua layanan produsen tersebut.
Jika Anda terhubung ke beberapa produsen layanan, gunakan alokasi unik untuk setiap produsen layanan. Praktik ini membantu Anda mengelola setelan jaringan, seperti rute dan aturan firewall, untuk setiap produsen layanan.
Di dalam Cloud Shell, buat koneksi pribadi, catat nama operasi.
gcloud services vpc-peerings connect \
--service=servicenetworking.googleapis.com \
--ranges=psa-range-looker \
--network=analytics-vpc
Contoh:
user@cloudshell$ gcloud services vpc-peerings connect \
--service=servicenetworking.googleapis.com \
--ranges=psa-range-looker \
--network=analytics-vpc
Operation "operations/pssn.p24-1049481044803-f16d61ba-7db0-4516-b525-cd0be063d4ea" finished successfully.
Di dalam Cloud Shell, periksa apakah operasi berhasil, ganti OPERATION_NAME dengan nama yang dihasilkan pada langkah sebelumnya.
gcloud services vpc-peerings operations describe \
--name=OPERATION_NAME
Contoh:
user@cloudshell$ gcloud services vpc-peerings operations describe \
--name=operations/pssn.p24-1049481044803-f16d61ba-7db0-4516-b525-cd0be063d4ea
Operation "operations/pssn.p24-1049481044803-f16d61ba-7db0-4516-b525-cd0be063d4ea" finished successfully.
5. Membuat instance Looker (Google Cloud core)
Sebelum memulai
Aktifkan Looker API untuk project Anda di konsol Google Cloud. Saat mengaktifkan API, Anda mungkin perlu memuat ulang halaman konsol untuk mengonfirmasi bahwa API telah diaktifkan.
Siapkan klien OAuth untuk mengautentikasi dan mengakses instance.
Di bagian berikut, Anda harus menggunakan Client ID dan Secret OAuth untuk membuat instance Looker.
Asal JavaScript yang diotorisasi dan URI pengalihan tidak diperlukan.

Di dalam Cloud Console, buat instance berdasarkan screenshot yang diberikan.
Buka LOOKER → CREATE AN INSTANCE
Isi Secret dan Client ID OAuth yang dibuat sebelumnya.



Pilih BUAT.
Saat instance dibuat, Anda akan dialihkan ke halaman Instances di konsol. Anda mungkin perlu memuat ulang halaman untuk melihat status instance baru Anda. Anda juga dapat melihat aktivitas pembuatan instance dengan mengklik ikon notifikasi di menu konsol Google Cloud. Saat instance Anda sedang dibuat, ikon notifikasi di menu konsol Google Cloud akan dilingkari oleh ikon pemuatan.
Setelah instance Looker dibuat, URL Instance akan dibuat. Catat URL-nya.

6. Perbarui Client ID OAuth 2.0
Di bagian berikut, Anda harus memperbarui URI pengalihan yang diberi otorisasi Client ID OAuth yang dibuat sebelumnya dengan menambahkan /oauth2callback ke URL Instance.
Setelah selesai, Anda dapat menggunakan URL Instance untuk login ke UI Looker.
Di dalam Konsol Cloud, buka APIs & SERVICES → CREDENTIALS
Pilih Client ID Oauth 2.0 Anda dan perbarui URL Instance Anda, contoh di bawah:

7. Memvalidasi Akses Looker
Di Konsol Cloud, buka Looker dan pilih URL instance yang akan membuka UI Looker.

Setelah diluncurkan, Anda akan melihat halaman landing seperti screenshot di bawah yang mengonfirmasi akses Anda ke Looker Cloud Core.

8. 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 memberitahukannya ke jaringan peer Anda.
Dalam tutorial ini, Anda akan men-deploy VPN dengan ketersediaan tinggi (HA) antara analytics-vpc dan on-prem-vpc untuk mengilustrasikan konektivitas pribadi ke Looker.
Buat GW VPN HA untuk analytics-vpc
Saat setiap gateway dibuat, dua alamat IPv4 eksternal akan dialokasikan secara otomatis, masing-masing untuk setiap antarmuka gateway. Catat alamat IP ini untuk digunakan nanti dalam langkah-langkah konfigurasi.
Di dalam Cloud Shell, buat GW VPN dengan ketersediaan tinggi (HA)
gcloud compute vpn-gateways create analytics-vpn-gw \
--network=analytics-vpc\
--region=us-central1
Buat GW VPN dengan ketersediaan tinggi (HA) untuk on-prem-vpc
Saat setiap gateway dibuat, dua alamat IPv4 eksternal akan dialokasikan secara otomatis, masing-masing untuk setiap antarmuka gateway. Catat alamat IP ini untuk digunakan nanti dalam langkah-langkah konfigurasi.
Di dalam Cloud Shell, buat GW VPN dengan ketersediaan tinggi (HA).
gcloud compute vpn-gateways create on-prem-vpn-gw \
--network=on-prem-vpc\
--region=us-central1
Memvalidasi pembuatan GW VPN dengan ketersediaan tinggi (HA)
Menggunakan konsol, buka KONEKTIVITAS HYBRID → VPN → GATEWAY CLOUD VPN.

Buat Cloud Router untuk analytics-vpc
Di dalam Cloud Shell, buat Cloud Router yang berada di us-central1
gcloud compute routers create analytics-cr-us-central1 \
--region=us-central1 \
--network=analytics-vpc\
--asn=65001
Buat Cloud Router untuk on-prem-vpc
Di dalam Cloud Shell, buat Cloud Router yang berada di us-central1
gcloud compute routers create on-prem-cr-us-central1 \
--region=us-central1 \
--network=on-prem-vpc \
--asn=65002
Buat tunnel VPN untuk analytics-vpc
Anda akan membuat dua tunnel VPN di setiap gateway VPN dengan ketersediaan tinggi (HA).
Buat VPN tunnel0
Di dalam Cloud Shell, buat tunnel0:
gcloud compute vpn-tunnels create analytics-vpc-tunnel0 \
--peer-gcp-gateway on-prem-vpn-gw \
--region us-central1 \
--ike-version 2 \
--shared-secret [ZzTLxKL8fmRykwNDfCvEFIjmlYLhMucH] \
--router analytics-cr-us-central1 \
--vpn-gateway analytics-vpn-gw \
--interface 0
Buat tunnel VPN1
Di dalam Cloud Shell, buat tunnel1:
gcloud compute vpn-tunnels create analytics-vpc-tunnel1 \
--peer-gcp-gateway on-prem-vpn-gw \
--region us-central1 \
--ike-version 2 \
--shared-secret [bcyPaboPl8fSkXRmvONGJzWTrc6tRqY5] \
--router analytics-cr-us-central1 \
--vpn-gateway analytics-vpn-gw \
--interface 1
Buat tunnel VPN untuk on-prem-vpc
Anda akan membuat dua tunnel VPN di setiap gateway VPN dengan ketersediaan tinggi (HA).
Buat VPN tunnel0
Di dalam Cloud Shell, buat tunnel0:
gcloud compute vpn-tunnels create on-prem-tunnel0 \
--peer-gcp-gateway analytics-vpn-gw \
--region us-central1 \
--ike-version 2 \
--shared-secret [ZzTLxKL8fmRykwNDfCvEFIjmlYLhMucH] \
--router on-prem-cr-us-central1 \
--vpn-gateway on-prem-vpn-gw \
--interface 0
Buat tunnel VPN1
Di dalam Cloud Shell, buat tunnel1:
gcloud compute vpn-tunnels create on-prem-tunnel1 \
--peer-gcp-gateway analytics-vpn-gw \
--region us-central1 \
--ike-version 2 \
--shared-secret [bcyPaboPl8fSkXRmvONGJzWTrc6tRqY5] \
--router on-prem-cr-us-central1 \
--vpn-gateway on-prem-vpn-gw \
--interface 1
Memvalidasi pembuatan tunnel VPN
Dengan menggunakan konsol, buka KONEKTIVITAS HYBRID → VPN → TUNNEL CLOUD VPN.

9. Membuat tetangga BGP
Membuat sesi BGP
Di bagian ini, Anda akan mengonfigurasi antarmuka Cloud Router dan peer BGP.
Membuat antarmuka dan peering BGP untuk analytics-vpc
Di dalam Cloud Shell, buat antarmuka BGP:
gcloud compute routers add-interface analytics-cr-us-central1 \
--interface-name if-tunnel0-to-onprem \
--ip-address 169.254.1.1 \
--mask-length 30 \
--vpn-tunnel analytics-vpc-tunnel0 \
--region us-central1
Di dalam Cloud Shell, buat peer BGP:
gcloud compute routers add-bgp-peer analytics-cr-us-central1 \
--peer-name bgp-on-premises-tunnel0 \
--interface if-tunnel1-to-onprem \
--peer-ip-address 169.254.1.2 \
--peer-asn 65002 \
--region us-central1
Di dalam Cloud Shell, buat antarmuka BGP:
gcloud compute routers add-interface analytics-cr-us-central1 \
--interface-name if-tunnel1-to-onprem \
--ip-address 169.254.2.1 \
--mask-length 30 \
--vpn-tunnel analytics-vpc-tunnel1 \
--region us-central1
Di dalam Cloud Shell, buat peer BGP:
gcloud compute routers add-bgp-peer analytics-cr-us-central1 \
--peer-name bgp-on-premises-tunnel1 \
--interface if-tunnel2-to-onprem \
--peer-ip-address 169.254.2.2 \
--peer-asn 65002 \
--region us-central1
Membuat antarmuka dan peering BGP untuk on-prem-vpc
Di dalam Cloud Shell, buat antarmuka BGP:
gcloud compute routers add-interface on-prem-cr-us-central1 \
--interface-name if-tunnel0-to-analytics-vpc \
--ip-address 169.254.1.2 \
--mask-length 30 \
--vpn-tunnel on-prem-tunnel0 \
--region us-central1
Di dalam Cloud Shell, buat peer BGP:
gcloud compute routers add-bgp-peer on-prem-cr-us-central1 \
--peer-name bgp-analytics-vpc-tunnel0 \
--interface if-tunnel1-to-analytics-vpc \
--peer-ip-address 169.254.1.1 \
--peer-asn 65001 \
--region us-central1
Di dalam Cloud Shell, buat antarmuka BGP:
gcloud compute routers add-interface on-prem-cr-us-central1 \
--interface-name if-tunnel1-to-analytics-vpc \
--ip-address 169.254.2.2 \
--mask-length 30 \
--vpn-tunnel on-prem-tunnel1 \
--region us-central1
Di dalam Cloud Shell, buat peer BGP:
gcloud compute routers add-bgp-peer on-prem-cr-us-central1 \
--peer-name bgp-analytics-vpc-tunnel1\
--interface if-tunnel2-to-analytics-vpc \
--peer-ip-address 169.254.2.1 \
--peer-asn 65001 \
--region us-central1
Buka Hybrid CONNECTIVITY → VPN untuk melihat detail tunnel VPN.

Memvalidasi rute yang dipelajari analytics-vpc melalui VPN dengan ketersediaan tinggi (HA)
Karena tunnel VPN dengan ketersediaan tinggi (HA) dan sesi BGP sudah dibuat, rute dari on-prem-vpc dipelajari dari analytics-vpc. Dengan menggunakan konsol, buka VPC network → VPC networks → analytics-vpc → ROUTES → REGION → us-central1 → VIEW
Perhatikan bahwa analytics-vpc telah mempelajari rute dari on-prem-vpc database-subnet-us-central1 172.16.10.0/27

Memvalidasi bahwa on-prem-vpc belum mempelajari rute melalui VPN dengan ketersediaan tinggi (HA)
analytics-vpc tidak memiliki subnet, sehingga Cloud Router tidak akan mengiklankan subnet apa pun ke on-prem-vpc . Dengan menggunakan konsol, buka VPC network → VPC networks → on-prem-vpc → ROUTES → REGION → us-central1 → VIEW

10. Mengiklankan subnet Looker ke lokal
Subnet Akses Layanan Pribadi (PSA) Looker tidak otomatis diiklankan oleh Cloud Router analytics-cr-us-central1 karena subnet ditetapkan ke PSA, bukan VPC.
Anda harus membuat pemberitahuan rute kustom dari analytics-cr-central1 untuk subnet PSA 192.168.0.0/22 (psa-range-looker) yang akan diiklankan ke lingkungan lokal dan digunakan oleh beban kerja untuk mengakses Looker.
Dari konsol, buka HYBRID CONNECTIVITY → CLOUD ROUTERS → analytics-cr-us-central1, lalu pilih EDIT.
Di bagian Rute yang diiklankan, pilih opsi Buat rute kustom, perbarui kolom berdasarkan contoh di bawah, pilih SELESAI, lalu klik SIMPAN.

11. Validasi bahwa on-prem-vpc telah mempelajari subnet Looker
on-prem-vpc kini dapat mengakses subnet PSA Looker karena telah diiklankan dari analytics-cr-us-central1 sebagai iklan rute kustom.
Dengan menggunakan konsol, buka VPC NETWORK → VPC NETWORKS → on-prem-vpc → ROUTES → REGION → us-central1 → VIEW
Amati rute Looker yang diiklankan dari analytics-vpc:

12. Memvalidasi Peering VPC saat ini
Koneksi antara Looker Cloud Core dan analytics-vpc dilakukan melalui peering VPC yang memungkinkan pertukaran rute kustom yang dipelajari melalui BGP. Dalam tutorial ini, analytics-vpc perlu memublikasikan rute yang dipelajari oleh on-prem-vpc ke Looker. Untuk mengaktifkan fungsi ini, peering VPC memerlukan update untuk mengekspor rute kustom.
Memvalidasi rute yang saat ini diimpor dan diekspor.
Buka VPC NETWORK → VPC NETWORK PEERING → servicenetworking-googleapis-com

Screenshot di bawah ini menjelaskan analytics-vpc yang mengimpor psa-range-looker dari layanan jaringan VPC yang di-peering dan dikelola Google, servicesnetworking.

Memilih RUTE YANG DIEKSPOR tidak akan menampilkan rute yang diekspor ke jaringan VPC yang di-peering karena 1) Subnet tidak dikonfigurasi di analytics-vpc 2) Ekspor rute kustom tidak dipilih

13. Memperbarui Peering VPC
Buka VPC NETWORK → VPC NETWORK PEERING → servicenetworking-googleapis-com → EDIT
Pilih EKSPOR RUTE KUSTOM → SIMPAN

14. Memvalidasi Peering VPC yang diperbarui
Memvalidasi rute yang diekspor.
Buka VPC NETWORK → VPC NETWORK PEERING → servicenetworking-googleapis-com
Memilih RUTE YANG DIEKSPOR akan menampilkan rute on-prem-vpc (subnet database 172.16.10.0/27) yang diekspor ke jaringan VPC yang di-peering yang menghosting Looker oleh analytics-vpc.

15. Pembuatan postgres-database Looker
Di bagian berikut, Anda akan melakukan SSH ke VM postgres-database menggunakan Cloud Shell.
Di dalam Cloud Shell, lakukan SSH ke instance postgres-database**.**
gcloud compute ssh --zone "us-central1-a" "postgres-database" --project "$projectid"
Di dalam OS, identifikasi dan catat alamat IP (ens4) instance postgres-database.
ip a
Contoh:
user@postgres-database:~$ ip a
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
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:ac:10:0a:02 brd ff:ff:ff:ff:ff:ff
altname enp0s4
inet 172.16.10.2/32 metric 100 scope global dynamic ens4
valid_lft 84592sec preferred_lft 84592sec
inet6 fe80::4001:acff:fe10:a02/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, setel 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 memasukkan alamat IP instance postgres-database dan subnet Akses Google Pribadi Looker (192.168.0.0/22) di file pg_hba.conf di bagian koneksi lokal IPv4 sesuai screenshot di bawah:

sudo nano /etc/postgresql/15/main/pg_hba.conf
Di bagian berikut, hapus komentar postgresql.conf untuk memproses semua alamat IP '*' sesuai screenshot di bawah:
sudo nano /etc/postgresql/15/main/postgresql.conf
Sebelum:

Sesudah:

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 Sat 2023-07-01 23:40:59 UTC; 7s ago
Process: 4073 ExecStart=/bin/true (code=exited, status=0/SUCCESS)
Main PID: 4073 (code=exited, status=0/SUCCESS)
CPU: 2ms
Jul 01 23:40:59 postgres-database systemd[1]: Starting postgresql.service - PostgreSQL RDBMS...
Jul 01 23:40:59 postgres-database systemd[1]: Finished postgresql.service - PostgreSQL RDBMS.
16. Buat database postgres
Di bagian berikut, Anda akan membuat database postgres bernama postgres_looker dan skema looker_schema yang digunakan untuk memvalidasi konektivitas looker ke 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 looker dengan looker sandi
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
Contoh:
user@postgres-database$ sudo -u postgres psql postgres
psql (15.3 (Ubuntu 15.3-0ubuntu0.23.04.1))
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 SCHEMA
postgres_looker=# create table looker_schema.test(firstname CHAR(15), lastname CHAR(20));
CREATE TABLE
postgres_looker=# exit
Keluar dari OS, sehingga Anda kembali ke Cloud Shell.
\q
exit
17. Buat Firewall di on-prem-vpc
Di bagian berikut, buat firewall Ingress dengan logging yang memungkinkan komunikasi subnet Looker ke instance postgres-database.
Dari Cloud Shell, buat firewall on-prem-vpc.
gcloud compute --project=$projectid firewall-rules create looker-access-to-postgres --direction=INGRESS --priority=1000 --network=on-prem-vpc --action=ALLOW --rules=all --source-ranges=192.168.0.0/22 --enable-logging
18. Buat Private DNS di analytics-vpc
Meskipun Looker di-deploy di VPC yang dikelola Google, akses ke DNS Pribadi analytics-vpc didukung melalui peering dengan jaringan layanan.
Di bagian berikut, Anda akan membuat Zona DNS Pribadi di analytics-vpc yang terdiri dari data A Nama Domain yang Sepenuhnya Memenuhi Syarat (postgres.analytics.com)) dan alamat IP instance postgres-database.
Dari Cloud Shell, buat analytics.com zona pribadi.
gcloud dns --project=$projectid managed-zones create gcp-private-zone --description="" --dns-name="analytics.com." --visibility="private" --networks="https://www.googleapis.com/compute/v1/projects/$projectid/global/networks/analytics-vpc"
Dari Cloud Shell, identifikasi Alamat IP instance postgres-database.
gcloud compute instances describe postgres-database --zone=us-central1-a | grep networkIP:
Contoh:
user@cloudshell$ gcloud compute instances describe postgres-database --zone=us-central1-a | grep networkIP:
networkIP: 172.16.10.2
Dari Cloud Shell, buat data A, pastikan untuk menambahkan Alamat IP yang diidentifikasi sebelumnya.
gcloud dns --project=$projectid record-sets create postgres.analytics.com. --zone="gcp-private-zone" --type="A" --ttl="300" --rrdatas="your-postgres-database-ip"
Contoh:
user@cloudshell$ gcloud dns --project=$projectid record-sets create postgres.analytics.com. --zone="gcp-private-zone" --type="A" --ttl="300" --rrdatas="172.16.10.2"
NAME: postgres.analytics.com.
TYPE: A
TTL: 300
DATA: 172.16.10.2
Dari Cloud Shell, lakukan peering pada akhiran DNS analytics.com ke jaringan layanan sehingga Looker dapat mengakses zona pribadi analytics-vpc.
gcloud services peered-dns-domains create looker-com --network=analytics-vpc --service=servicenetworking.googleapis.com --dns-suffix=analytics.com.
19. Mengintegrasikan Looker dengan database postgres Postgres
Di bagian berikut, Anda akan menggunakan Konsol Cloud untuk membuat koneksi Database ke instance postgres-database lokal.
Di Konsol Cloud, buka Looker dan pilih URL instance yang akan membuka UI Looker.

Setelah diluncurkan, Anda akan melihat halaman landing seperti screenshot di bawah.

Buka ADMIN → DATABASE → CONNECTIONS → Pilih ADD CONNECTION
Isi detail koneksi sesuai screenshot di bawah, pilih HUBUNGKAN

Koneksi sekarang berhasil

20. Memvalidasi konektivitas Looker
Di bagian berikut, Anda akan mempelajari cara memvalidasi konektivitas Looker ke postgres-database di on-prem-vpc menggunakan tindakan 'test' Looker dan TCPDUMP.
Dari Cloud Shell, login ke postgres-database jika sesi telah berakhir.
Di dalam Cloud Shell, lakukan hal berikut:
gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
projectid=YOUR-PROJECT-NAME
echo $projectid
gcloud compute ssh --zone "us-central1-a" "postgres-database" --project "$projectid"
Dari OS, buat filter TCPDUMP dengan subnet psa-range-looker 192.168.0.0/22
sudo tcpdump -i any net 192.168.0.0/22 -nn
Buka Koneksi Data ADMIN → DATABASE → CONNECTIONS → Select → Test
Setelah Test dipilih, Looker akan berhasil terhubung ke postgres-database seperti yang ditunjukkan di bawah:

Kembali ke terminal OS dan validasi bahwa TCPDUMP telah mengidentifikasi psc-range-looker yang terhubung ke instance postgres-database lokal.
Tambahkan catatan bahwa setiap IP dari rentang PSA akan ditampilkan dari Looker
user@postgres-database$ sudo tcpdump -i any net 192.168.0.0/22 -nn
tcpdump: data link type LINUX_SLL2
tcpdump: verbose output suppressed, use -v[v]... for full protocol decode
listening on any, link-type LINUX_SLL2 (Linux cooked v2), snapshot length 262144 bytes
00:16:55.121631 ens4 In IP 192.168.1.24.46892 > 172.16.10.2.5432: Flags [S], seq 2221858189, win 42600, options [mss 1366,sackOK,TS val 4045928414 ecr 0,nop,wscale 7], length 0
00:16:55.121683 ens4 Out IP 172.16.10.2.5432 > 192.168.1.24.46892: Flags [S.], seq 1464964586, ack 2221858190, win 64768, options [mss 1420,sackOK,TS val 368503074 ecr 4045928414,nop,wscale 7], length 0
21. Rekomendasi Keamanan
Ada beberapa rekomendasi keamanan dan praktik terbaik terkait pengamanan Looker dan database Postgres. Hal ini mencakup:
- Menyiapkan izin akun database dengan hak istimewa terendah untuk Looker yang tetap memungkinkan Looker melakukan fungsi yang diperlukan.
- Data dalam pengiriman antara Klien dan UI Looker serta Looker ke Database dienkripsi menggunakan TLS 1.2+
- Data saat tidak digunakan dienkripsi secara default. Pelanggan juga dapat memanfaatkan CMEK untuk instance Looker ( https://cloud.google.com/looker/docs/looker-core-cmek) dan untuk Postgres ( https://cloud.google.com/sql/docs/postgres/configure-cmek)
- Kontrol Akses Looker - Administrator Looker dapat mengontrol apa yang dapat dilihat dan dilakukan oleh pokok atau grup pengguna di Looker dengan memberikan akses konten, akses data, dan akses fitur. Opsi ini memungkinkan Admin Looker menentukan peran tertentu yang mencakup Model dan set izin serta membuat kontrol akses terperinci ke data.
- Looker mendukung Log Audit dan Log Akses Data yang mencatat siapa yang melakukan apa, kapan, dan di mana. Log Audit diaktifkan secara default, sedangkan log Akses Data harus diaktifkan secara eksplisit.
- Saat ini, VPC-SC mendukung instance Enterprise dan Embed yang dikonfigurasi dengan hanya IP pribadi
22. Pembersihan
Hapus instance Looker Cloud Core, Buka:
LOOKER → looker-tutorial → DELETE

Dari Cloud Shell, hapus komponen tutorial.
gcloud compute vpn-tunnels delete analytics-vpc-tunnel0 analytics-vpc-tunnel1 on-prem-tunnel0 on-prem-tunnel1 --region=us-central1 --quiet
gcloud compute vpn-gateways delete analytics-vpn-gw on-prem-vpn-gw --region=us-central1 --quiet
gcloud compute routers delete analytics-cr-us-central1 on-prem-cr-us-central1 on-prem-cr-us-central1-nat --region=us-central1 --quiet
gcloud compute instances delete postgres-database --zone=us-central1-a --quiet
gcloud compute networks subnets delete database-subnet-us-central1 --region=us-central1 --quiet
gcloud compute firewall-rules delete looker-access-to-postgres on-prem-ssh --quiet
gcloud dns record-sets delete postgres.analytics.com. --type=A --zone=gcp-private-zone
gcloud dns managed-zones delete gcp-private-zone
gcloud compute networks delete on-prem-vpc --quiet
gcloud compute addresses delete psa-range-looker --global --quiet
gcloud compute networks delete analytics-vpc --quiet
23. Selamat
Selamat, Anda telah berhasil mengonfigurasi dan memvalidasi konektivitas Looker melalui jaringan hybrid yang memungkinkan komunikasi data di seluruh lingkungan lokal dan multi-cloud.
Anda juga berhasil menguji konektivitas Looker Cloud Core ke postgres-database menggunakan alat 'Test' Looker Connect dan TCPDUMP di instance postgres-database.
Cosmopup menganggap tutorial itu luar biasa!!

Bacaan lebih lanjut & Video
- Memperkenalkan evolusi baru Looker
- Bermigrasi ke GCP? Hal Pertama: VPC
- Perutean dinamis dengan Cloud Router
Dokumen referensi
- Dokumentasi Looker (Google Cloud core)
- Membuat instance Looker (Google Cloud core)
- Membuat koneksi IP pribadi untuk Looker (Google Cloud core)
- VPN dengan ketersediaan tinggi (HA) antara jaringan Google Cloud
- Menyiapkan dan mengelola penafsiran alamat jaringan (NAT) dengan Cloud NAT
- Opsi untuk bertukar rute dinamis