NEG Internet HTTPS Southbound PSA Looker

Tentang codelab ini
schedule38 menit
subjectTerakhir diperbarui 2 April 2025
account_circleDitulis oleh Deepak Michael, Emanuele Mazza

Hanya instance Looker (Google Cloud core) yang menggunakan akses layanan pribadi untuk koneksi pribadinya yang mendukung konfigurasi IP pribadi dan IP publik.

Instance Looker (Google Cloud core) yang memiliki koneksi IP pribadi (akses layanan pribadi) dan koneksi IP publik memiliki URL publik, dan semua traffic masuk akan melalui koneksi IP publik. Traffic keluar dirutekan melalui VPC Anda, yang dapat dikonfigurasi untuk hanya mengizinkan traffic IP pribadi seperti yang diilustrasikan dalam gambar 1.

Figure1

9f587c14791dd92e.png

Komunikasi ke github.com di-resolve ke alamat IP publik sehingga tidak dapat dijangkau dari instance Looker yang di-deploy sebagai Pribadi atau Publik+Pribadi.

Dalam codelab ini, Anda akan melakukan koneksi HTTPS southbound ke GitHub menggunakan load balancer proxy tcp internal dan grup endpoint jaringan internet (NEG) yang dipanggil dari PSA Looker.

Yang akan Anda pelajari

  • Persyaratan jaringan
  • Membangun konektivitas ke GitHub dari Looker menggunakan Koneksi Pengujian

Yang Anda butuhkan

5348de53f0a78a50.png

2. Yang akan Anda build

Anda akan men-deploy load balancer proxy TCP internal dan NEG Internet yang dikonfigurasi dengan alamat IP github.com yang di-resolve yang memanfaatkan Cloud NAT untuk traffic keluar internet ke organisasi github.com yang di-resolve oleh Looker.

3. Persyaratan jaringan

Berikut adalah perincian persyaratan jaringan:

Komponen

Deskripsi

VPC ($vpc_network)

VPC mode kustom

subnet aturan penerusan

Digunakan untuk mengalokasikan alamat IP untuk Load Balancer Proxy TCP Internal Regional

Subnet Khusus Proxy

Setiap proxy load balancer diberi alamat IP internal. Paket yang dikirim dari proxy ke VM atau endpoint backend memiliki alamat IP sumber dari subnet khusus proxy.

NEG Internet

Resource yang digunakan untuk menentukan backend eksternal untuk load balancer. Endpoint tidak dapat dijangkau hanya melalui Cloud VPN atau Cloud Interconnect.

Layanan Backend

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

Cloud Router

Cloud NAT mengandalkan Cloud Router untuk kemampuan bidang kontrol, tetapi tidak untuk pengelolaan sesi BGP.

Cloud NAT

NEG internet regional memanfaatkan Cloud NAT untuk traffic keluar internet.

4. Topologi codelab

c5871e5418d37f13.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]
vpc_network=[VPC Name]
echo $project
echo $region
echo $vpc-network

Aktifkan semua layanan yang diperlukan:

gcloud services enable compute.googleapis.com

7. Komponen Jaringan VPC

Jaringan VPC

Prasyarat tutorial ini adalah Instance Looker PSA yang ada sehingga VPC terkait sudah dibuat.

Di dalam Cloud Shell, buat subnet aturan penerusan:

gcloud compute networks subnets create psa-fr-subnet --network $vpc_network --range 172.16.20.0/28 --region $region --enable-private-ip-google-access

Di dalam Cloud Shell, buat subnet khusus proxy regional:

gcloud compute networks subnets create $region-proxyonly-subnet \
  --purpose=REGIONAL_MANAGED_PROXY \
  --role=ACTIVE \
  --region=$region \
  --network=$vpc_network \
  --range=10.10.10.0/24

Membuat gateway Public NAT

NAT Gateway digunakan oleh load balancer proxy tcp internal regional untuk traffic keluar internet dengan opsi konfigurasi, –endpoint-types=ENDPOINT_TYPE_MANAGED_PROXY_LB, sehingga NATGW yang sama tidak akan mendukung traffic keluar internet GCE/GKE. Deploy GW NAT tambahan dengan –endpoint-types=ENDPOINT_TYPE_VM untuk traffic keluar internet GCE/GKE.

Di dalam Cloud Shell, buat Cloud Router:

gcloud compute routers create $vpc_network-cloud-router --network $vpc_network --region $region

Di dalam Cloud Shell, buat gateway Cloud NAT yang mengaktifkan traffic keluar internet untuk load balancer proxy tcp:

gcloud compute routers nats create $vpc_network-natgw \
  --router=$vpc_network-cloud-router \
  --endpoint-types=ENDPOINT_TYPE_MANAGED_PROXY_LB \
  --nat-custom-subnet-ip-ranges=$region-proxyonly-subnet \
  --auto-allocate-nat-external-ips \
  --region=$region

Mencadangkan alamat IP load balancer

Di dalam Cloud Shell, cadangkan alamat IP internal untuk load balancer yang akan digunakan nanti sebagai data A DNS untuk github.com:

gcloud compute addresses create internet-neg-lb-ip \
  --region=$region \
  --subnet=psa-fr-subnet

Di dalam Cloud Shell, lihat Alamat IP yang dicadangkan:

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

Contoh output:

user@cloudshell$ gcloud compute addresses describe internet-neg-lb-ip   --region=$region | grep -i address:
address: 172.16.20.2

8. NEG Internet

Ada dua cara untuk mengonfigurasi endpoint eksternal yang dirujuk oleh NEG Internet: INTERNET_FQDN_PORT atau INTERNET_IP_PORT. Jika format INTERNET_IP_PORT (Opsi 1) dipilih, hanya alamat IP internet publik yang dapat dirutekan yang dapat digunakan; jika format INTERNET_FQDN_PORT (Opsi 2) dipilih, FQDN dapat di-resolve ke alamat IP internet publik yang dapat dirutekan atau ke alamat IP pribadi, bergantung pada cakupan endpoint: regional atau global.

Opsi 1: Menyiapkan NEG Internet menggunakan Alamat IP

NEG Internet memerlukan alamat IP Github.com yang di-resolve, sehingga untuk mendapatkan performa terbaik, buka terminal lokal dan lakukan dig serta dapatkan Alamat IP github.com.

Contoh dari terminal lokal menghasilkan Alamat IP yang di-resolve 140.82.113.4

bash-3.2$ dig github.com
; <<>> DiG 9.10.6 <<>> github.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 64801
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;github.com.                        IN        A
;; ANSWER SECTION:
github.com.                60        IN        A        140.82.113.4
;; Query time: 409 msec
;; SERVER: ::1#53(::1)
;; WHEN: Thu Sep 26 15:50:45 CDT 2024
;; MSG SIZE  rcvd: 65

Buat NEG Internet, dan tetapkan –network-endpoint-type ke internet_ip_port.

Di dalam Cloud Shell, buat NEG Internet yang digunakan untuk github.com:

gcloud compute network-endpoint-groups create github-internet-neg \
    --network-endpoint-type=INTERNET_IP_PORT \
    --network=$vpc_network \
    --region=$region

Di dalam Cloud Shell, perbarui NEG Internet github-internet-neg dengan alamat IP github.com dan port 443 yang di-resolve:

gcloud compute network-endpoint-groups update github-internet-neg \
    --add-endpoint="ip=[your-resolved-ip],port=443" \
    --region=$region

Contoh:

gcloud compute network-endpoint-groups update github-internet-neg \
    --add-endpoint="ip=140.82.113.4,port=443" \
    --region=$region

Opsi 2: Menyiapkan NEG internet menggunakan FQDN

Secara opsional, Anda dapat membuat NEG Internet, dan menetapkan –network-endpoint-type ke internet_FQDN_port.

Di dalam Cloud Shell, buat NEG Internet yang digunakan untuk github.com:

gcloud compute network-endpoint-groups create github-internet-neg \
    --network-endpoint-type=INTERNET_FQDN_PORT \
    --network=$vpc_network \
    --region=$region

Di dalam Cloud Shell, perbarui NEG Internet github-internet-neg dengan FQDN github.com:

gcloud compute network-endpoint-groups update github-internet-neg \
    --add-endpoint="fqdn=github.com,port=443" \
    --region=$region

9. Membuat layanan GitHub

Membuat Komponen Load Balancer

Di dalam Cloud Shell, lakukan hal berikut:

gcloud compute backend-services create psa-backend-svc  --protocol=tcp --region=$region --load-balancing-scheme=INTERNAL_MANAGED

gcloud compute backend-services add-backend psa-backend-svc --network-endpoint-group=github-internet-neg --network-endpoint-group-region=$region --region=$region

Di Cloud Shell, Buat proxy TCP target untuk merutekan permintaan ke layanan backend Anda:

gcloud compute target-tcp-proxies create producer-lb-tcp-proxy \
      --backend-service=psa-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 psa-github-fr \
     --load-balancing-scheme=INTERNAL_MANAGED \
     --network-tier=PREMIUM \
     --network=$vpc_network \
     --subnet=psa-fr-subnet \
     --address=internet-neg-lb-ip \
     --target-tcp-proxy=producer-lb-tcp-proxy \
     --target-tcp-proxy-region=$region \
     --region=$region \
     --ports=443

10. Zona DNS GitHub

Di bagian berikut, Anda akan membuat kebijakan respons DNS untuk GitHub.com dengan data A yang terdiri dari alamat IP load balancer proxy tcp internal.

Setelah itu, peering DNS akan membagikan zona github.com dengan PSA Looker yang memungkinkan konektivitas ke github melalui load balancer internal yang dikombinasikan dengan NEG Internet dan Cloud NAT.

Di Cloud Shell, buat zona kebijakan respons:

gcloud dns --project=$project response-policies create github-com --description="" --networks="$vpc_network"

Di Cloud Shell, buat data A DNS yang terdiri dari Alamat IP load balancer proxy tcp, [insert-your-ip-address]:

gcloud dns --project=$project response-policies rules create github --response-policy="github-com" --dns-name="github.com." --local-data=name="github.com.",type="A",ttl=300,rrdatas="[insert-your-ip-address]"

Contoh:

gcloud dns --project=$project response-policies rules create github --response-policy="github-com" --dns-name="github.com." --local-data=name="github.com.",type="A",ttl=300,rrdatas="172.16.20.2"

7b41b2f44609e5ed.png

Memperbarui peering DNS

Di bagian ini, Anda akan menggunakan sintaksis "gcloud services peered-dns-domains create" yang membuat domain DNS peering untuk koneksi layanan pribadi yang mengirim permintaan untuk data di namespace tertentu yang berasal dari jaringan VPC produsen layanan ke jaringan VPC konsumen untuk di-resolve.

Di Cloud Shell, buat peered-dns-domain yang akan dikueri oleh Looker untuk github.com:

gcloud services peered-dns-domains create github-com --project=$project --network=$vpc_network --dns-suffix=github.com.

11. Menguji Konektivitas ke GitHub

Pada langkah-langkah berikut, Anda akan menggunakan Konsol Looker untuk membuat project guna memvalidasi konektivitas HTTPS ke github.com.

12. Membuat project baru

Mengaktifkan mode Pengembangan

Di Konsol Looker, buka:

Aktifkan Mode Pengembangan (halaman kiri bawah), setelah dipilih, banner 'Anda berada dalam Mode Pengembangan' akan ditampilkan.

70c9ded749decfbe.png

Membuat project baru

Di Cloud Console, buka:

Kembangkan → Project

e8ae11e0392a776d.png

Memilih Project LookML Baru

65a3c2573e97e1e9.png

Berikan nama project, pilih Blank Project, lalu Create Project.

9185808e001fa540.png

Pilih Konfigurasi Git

42f5e51ce70642ad.png

Mengonfigurasi Git

Perbarui URL Repositori dengan detail GitHub HTTPS Anda, pastikan untuk menambahkan URL dengan .git, lalu pilih Lanjutkan.

f5c448f6659b8fc1.png

Contoh:

4065ab1d196589f.png

Perbarui pilihan dengan nama pengguna GitHub dan Token Akses Pribadi (klasik), lalu pilih Uji dan Selesaikan Penyiapan.

1dc44d63c555a9ae.png

Memilih Tindakan Git

b5903668a50a99ca.png

Memilih Uji Koneksi Git

51b722e84f2df38c.png

Memvalidasi Uji Koneksi Git

8fb7386b739f60be.png

13. Pembersihan

Dari satu terminal Cloud Shell, hapus komponen lab:

gcloud compute forwarding-rules delete psa-github-fr --region=$region -q

gcloud compute target-tcp-proxies delete producer-lb-tcp-proxy --region=$region -q

gcloud compute backend-services delete psa-backend-svc --region=$region -q

gcloud compute routers nats delete $vpc_network-natgw --router=$vpc_network-cloud-router --router-region=$region -q

gcloud compute routers delete $vpc_network-cloud-router --region=$region -q

gcloud compute network-endpoint-groups delete github-internet-neg --region=$region -q

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

gcloud compute networks subnets delete psa-fr-subnet $region-proxyonly-subnet --region=$region -q

gcloud services peered-dns-domains delete github-com --network=$vpc_network -q

gcloud dns --project=$project response-policies rules delete github --response-policy="github-com" -q

gcloud dns response-policies update github-com --networks= -q

gcloud dns response-policies delete github-com

14. Selamat

Selamat, Anda telah berhasil mengonfigurasi dan memvalidasi konektivitas ke GitHub menggunakan Konsol Looker.

Cosmopup menganggap codelab itu luar biasa.

c911c127bffdee57.jpeg

Apa selanjutnya?

Bacaan lebih lanjut & Video

Dokumen referensi