1. Pengantar
Looker (Google Cloud core) menyediakan penyediaan, konfigurasi, dan pengelolaan instance Looker yang disederhanakan dan disederhanakan 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 dari internet.
- Pribadi: Koneksi jaringan menggunakan alamat IP Virtual Private Cloud (VPC) internal yang dihosting Google.
- Publik dan pribadi: Koneksi jaringan menggunakan alamat IP publik dan alamat IP pribadi, di mana traffic masuk akan dirutekan melalui IP publik, dan traffic keluar akan dirutekan melalui IP pribadi.
Dalam tutorial ini, Anda akan men-deploy Jaringan pribadi yang komprehensif dan menyeluruh untuk mendukung konektivitas Looker ke VPC lokal melalui VPN dengan ketersediaan tinggi (HA) yang dapat direplikasi untuk memenuhi kebutuhan Anda terkait konektivitas multi-cloud dan lokal.
Looker (Google Cloud core) mendukung IP pribadi untuk instance yang memenuhi kriteria berikut:
- Edisi instance harus berupa 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 infrastruktur lokal.
Anda akan menyiapkan jaringan VPC bernama on-prem-vpc
untuk mewakili lingkungan lokal. Untuk deployment Anda, vpc lokal tidak akan ada, tetapi jaringan hybrid ke pusat data lokal atau penyedia cloud Anda akan digunakan.
Berikut adalah langkah-langkah utama dalam tutorial
- Membuat VPC mandiri di us-central1
- Mengalokasikan subnet IP ke Akses Layanan Pribadi
- Men-deploy instance Looker di VPC mandiri
- Membuat jaringan lokal dan hybrid
- Mengiklankan dan memvalidasi rentang IP Looker melalui BGP
- Mengintegrasikan dan memvalidasi komunikasi data Looker dan Postgresql
Gambar1
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
- Menghubungkan vpc lokal 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
Membuat analytics-vpc
Di dalam Cloud Shell, lakukan hal berikut:
gcloud compute networks create analytics-vpc --project=$projectid --subnet-mode=custom
Membuat on-prem-vpc
Di dalam Cloud Shell, lakukan hal berikut:
gcloud compute networks create on-prem-vpc --project=$projectid --subnet-mode=custom
Membuat 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 ini 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 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=$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"
Buat Aturan Firewall
Agar IAP dapat terhubung ke instance VM Anda, buat aturan firewall yang:
- Berlaku untuk semua instance VM yang Anda inginkan agar dapat diakses dengan 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 mengaktifkan 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.
Alokasikan 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 untuk memastikan bahwa tidak ada konflik 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 primer 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 alamat dan flag panjang awalan. 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, validasikan 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, yaitu 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.
Jika Anda terhubung ke beberapa produsen layanan, gunakan alokasi unik untuk setiap produsen layanan. Praktik ini akan membantu Anda mengelola setelan jaringan, seperti rute dan aturan firewall, untuk setiap produsen layanan.
Di dalam Cloud Shell, buat koneksi pribadi, catat nama operasinya.
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 di 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 Rahasia OAuth untuk membuat instance Looker.
Asal JavaScript yang sah dan URI pengalihan tidak diperlukan.
Di dalam Cloud Console, buat instance berdasarkan screenshot yang diberikan.
Buka LOOKER → CREATE AN INSTANCE
Isi Client ID dan Secret OAuth yang dibuat sebelumnya.
Pilih CREATE
Saat instance dibuat, Anda akan dialihkan ke halaman Instances dalam konsol. Anda mungkin perlu memuat ulang halaman untuk melihat status instance baru. 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. Memperbarui Client ID OAuth 2.0
Di bagian berikut, Anda harus memperbarui URI pengalihan yang diotorisasi 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 Cloud Console, buka APIs & SERVICES → CREDENTIALS
Pilih Client ID Oauth 2.0 dan perbarui URL Instance Anda, contoh di bawah:
7. Memvalidasi Akses Looker
Di Konsol Cloud, buka Looker dan pilih URL instance Anda yang akan membuka UI Looker.
Setelah diluncurkan, Anda akan melihat halaman landing sesuai 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 mengumumkannya ke jaringan peer Anda.
Dalam tutorial, Anda akan men-deploy VPN dengan ketersediaan tinggi (HA) antara analytics-vpc dan on-prem-vpc untuk mengilustrasikan konektivitas pribadi ke Looker.
Membuat GW VPN dengan ketersediaan tinggi (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
Membuat 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.
Membuat Cloud Router untuk analytics-vpc
Di dalam Cloud Shell, buat Cloud Router yang terletak di us-central1
gcloud compute routers create analytics-cr-us-central1 \
--region=us-central1 \
--network=analytics-vpc\
--asn=65001
Membuat Cloud Router untuk on-prem-vpc
Di dalam Cloud Shell, buat Cloud Router yang terletak di us-central1
gcloud compute routers create on-prem-cr-us-central1 \
--region=us-central1 \
--network=on-prem-vpc \
--asn=65002
Membuat tunnel VPN untuk analytics-vpc
Anda akan membuat dua tunnel VPN di setiap gateway VPN dengan ketersediaan tinggi (HA).
Membuat tunnel VPN
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
Membuat 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
Membuat tunnel VPN untuk on-prem-vpc
Anda akan membuat dua tunnel VPN di setiap gateway VPN dengan ketersediaan tinggi (HA).
Membuat tunnel VPN
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
Membuat 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 HYBRID CONNECTIVITY → VPN → CLOUD VPNFiberS.
9. Membuat tetangga BGP
Membuat sesi BGP
Di bagian ini, Anda akan mengonfigurasi antarmuka Cloud Router dan peer BGP.
Membuat antarmuka BGP dan peering 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 BGP dan peering 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 KONEKTIVITAS Hybrid → 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, rute dari vpc lokal akan dipelajari dari analytics-vpc. Dengan menggunakan konsol, buka Jaringan VPC → Jaringan VPC → analytics-vpc → ROUTES → REGION → us-central1 → LIHAT
Amati analytics-vpc telah mempelajari rute dari database-subnet-us-central1 172.16.10.0/27 on-prem-vpc
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 Jaringan VPC → Jaringan VPC → lokal-vpc → ROUTES → REGION → us-central1 → LIHAT
10. Beri tahukan 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 iklan 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 workload untuk mengakses Looker.
Dari konsol, buka HYBRID CONNECTIVITY → CLOUD ROUTERS → analytics-cr-us-central1, lalu pilih EDIT.
Di bagian Advertised routes, pilih opsi Create custom routes, perbarui kolom berdasarkan contoh di bawah, pilih DONE, lalu klik SAVE.
11. Memvalidasi 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, analytics-vpc harus memublikasikan rute yang dipelajari oleh vpc lokal ke Looker. Untuk mengaktifkan fungsi ini, peering VPC memerlukan update untuk mengekspor rute kustom.
Memvalidasi rute yang diimpor dan diekspor saat ini.
Buka VPC NETWORK → VPC NETWORK PEERING → servicenetworking-googleapis-com
Screenshot di bawah ini menjelaskan analytics-vpc yang mengimpor psa-range-looker dari jaringan vpc peering yang dikelola Google, servicesnetworking.
Pilih ROUTES EKSPOR tidak berisi rute yang diekspor ke jaringan VPC yang Di-peering sejak 1) Subnet tidak dikonfigurasi di analytics-vpc 2) Rute kustom ekspor tidak dipilih
13. Memperbarui Peering VPC
Buka VPC NETWORK → VPC NETWORK PEERING → servicenetworking-googleapis-com → EDIT
Pilih EXPORT CUSTOM ROUTES → SAVE
14. Memvalidasi Peering VPC yang diperbarui
Memvalidasi rute yang diekspor.
Buka VPC NETWORK → VPC NETWORK PEERING → servicenetworking-googleapis-com
Memilih EXPORTED ROUTES akan menampilkan rute on-prem-vpc (subnet database 172.16.10.0/27) yang diekspor ke jaringan VPC Peering yang menghosting Looker oleh analytics-vpc.
15. 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 "us-central1-a" "postgres-database" --project "$projectid"
Di dalam OS, identifikasi dan catat alamat IP (ens4) instance database postgres.
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 menyisipkan alamat IP instance database postgres dan subnet Akses Pribadi Google Looker (192.168.0.0/22) dalam 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 tanda 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. Membuat database postgres
Di bagian berikut, Anda akan membuat database postgres bernama postgres_looker dan schemalooker_schema yang digunakan untuk memvalidasi pencari ke konektivitas lokal.
Di dalam OS, masuk 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 pencari pengguna dengan pencari 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, dan akan mengembalikan Anda ke Cloud Shell.
\q
exit
17. Membuat Firewall di on-prem-vpc
Di bagian berikut, buat firewall Ingress dengan logging yang memungkinkan komunikasi subnet Looker ke instance database postgres.
Dari Cloud Shell, buat firewall lokal 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. Membuat DNS Pribadi 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 dari instance database postgres, Nama Domain yang Memenuhi Syarat (postgres.analytics.com)
, dan alamat IP.
Dari Cloud Shell, buat zona pribadi analytics.com.
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 database postgres.
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, peering dns-suffix analytics.com ke jaringan layanan sehingga memungkinkan Looker 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 Cloud Console untuk membuat koneksi Database ke instance postgres-database lokal.
Di Cloud Console, buka Looker dan pilih URL instance Anda yang akan membuka UI Looker.
Setelah diluncurkan, Anda akan melihat halaman landing sesuai dengan screenshot di bawah.
Buka ADMIN → DATABASE → CONNECTIONS → Pilih ADD CONNECTION
Isi detail koneksi sesuai screenshot di bawah, lalu pilih HUBUNGKAN
Koneksi kini berhasil
20. 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 sesi habis.
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 database postgres seperti yang ditunjukkan di bawah:
Kembali ke terminal OS dan validasi TCPDUMP telah mengidentifikasi psc-range-looker yang terhubung ke instance database postgres on-premise.
Tambahkan catatan bahwa IP apa pun 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 cara mengamankan Looker dan database Postgres. Hal ini mencakup:
- Menyiapkan izin akun database dengan hak istimewa paling rendah untuk Looker yang masih memungkinkannya menjalankan fungsi yang diperlukan.
- Data dalam pengiriman antara Klien dan UI Looker serta Looker ke Database dienkripsi menggunakan TLS 1.2+
- Data dalam penyimpanan 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 prinsip atau grup pengguna di Looker dengan memberikan akses konten, akses data, dan akses fitur. Opsi ini memungkinkan Looker Admin menentukan peran tertentu yang mencakup Set izin dan Model serta membuat kontrol akses yang terperinci ke data.
- Looker mendukung Log Audit dan Log Akses Data yang mencatat siapa yang melakukan apa 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 hanya dengan IP pribadi
22. Pembersihan
Untuk menghapus 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 database postgres menggunakan alat 'Test' Lookers Connect dan TCPDUMP di instance postgres-database.
Cosmopup menganggap tutorialnya luar biasa!!
Bacaan &Video lebih lanjut
- Memperkenalkan evolusi Looker berikutnya
- Bermigrasi ke GCP? Hal Pertama yang Paling Penting: VPC
- Pemilihan rute dinamis dengan Cloud Router
Dokumen referensi
- Dokumentasi Looker (Google Cloud core)
- Membuat instance Looker (Google Cloud core)
- Membuat koneksi IP pribadi untuk Looker (inti Google Cloud)
- VPN dengan ketersediaan tinggi (HA) di antara jaringan Google Cloud
- Menyiapkan dan mengelola penafsiran alamat jaringan dengan Cloud NA
- Opsi untuk bertukar rute dinamis