Dokumen ini menjelaskan opsi untuk menghubungkan ke dan dari internet menggunakan resource Compute Engine yang memiliki alamat IP pribadi. Hal ini berguna bagi developer yang membuat layanan Google Cloud dan bagi administrator jaringan lingkungan Google Cloud.
Tutorial ini mengasumsikan bahwa Anda telah memahami deployment VPC, dengan Compute Engine, dan jaringan TCP/IP dasar.
Tujuan
- Pelajari opsi yang tersedia untuk menghubungkan antara VM pribadi di luar VPC-nya.
- Buat instance Identity-Aware Proxy (IAP) untuk tunnel TCP yang sesuai untuk layanan interaktif seperti SSH.
- Buat instance Cloud NAT untuk memungkinkan VM membuat koneksi keluar ke internet.
- Konfigurasikan load balancer HTTP untuk mendukung koneksi masuk dari internet ke VM Anda.
Biaya
Tutorial ini menggunakan komponen Google Cloud yang dapat ditagih, termasuk:
Gunakan kalkulator harga untuk membuat perkiraan biaya berdasarkan penggunaan yang Anda proyeksikan. Kami menghitung bahwa total untuk menjalankan tutorial ini kurang dari US$5 per hari.
Sebelum memulai
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.
-
Make sure that billing is enabled for your Google Cloud project.
-
Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.
-
Make sure that billing is enabled for your Google Cloud project.
Pengantar
Alamat IP pribadi memberikan sejumlah keunggulan dibandingkan alamat IP publik (eksternal), termasuk:
- Mengurangi permukaan serangan. Menghapus alamat IP eksternal dari VM akan mempersulit penyerang untuk menjangkau VM dan mengeksploitasi potensi kerentanan.
- Lebih fleksibel Memperkenalkan lapisan abstraksi, seperti load balancer atau layanan NAT, memungkinkan pengiriman layanan yang lebih andal dan fleksibel jika dibandingkan dengan alamat IP eksternal statis.
Solusi ini membahas tiga skenario, seperti yang dijelaskan dalam tabel berikut:
Interaktif | Mengambil | Aktif |
---|---|---|
Koneksi SSH dimulai dari host jarak jauh secara langsung ke VM menggunakan
IAP untuk
TCP.
Contoh: Administrasi jarak jauh menggunakan SSH atau RDP |
Koneksi dimulai oleh VM ke host eksternal pada internet menggunakan
Cloud NAT.
Contoh: Update OS, API eksternal |
Koneksi dimulai oleh host jarak jauh ke VM melalui load balancer Google
Cloud global.
Contoh: Frontend aplikasi, WordPress |
Beberapa lingkungan mungkin hanya melibatkan salah satu skenario ini. Namun, banyak lingkungan memerlukan semua skenario ini, dan didukung sepenuhnya di Google Cloud.
Bagian berikut menjelaskan lingkungan multi-region dengan layanan HTTP di-load balanced yang didukung oleh dua VM di dua region. VM ini menggunakan Cloud NAT untuk komunikasi keluar. Untuk administrasi, VM dapat diakses melalui tunnel SSH melalui IAP.
Diagram berikut memberikan ringkasan ketiga kasus penggunaan dan komponen yang relevan.
Membuat instance VM
Untuk memulai tutorial, Anda harus membuat total empat instance mesin virtual (VM) dua—instance per region di dua region yang berbeda. Anda memberikan tag yang sama kepada semua instance, yang kemudian digunakan oleh aturan firewall untuk memungkinkan traffic masuk menjangkau instance Anda.
Diagram berikut menunjukkan instance VM dan grup instance yang Anda buat, yang didistribusikan di dua zona.
Skrip startup yang Anda tambahkan ke setiap instance akan menginstal Apache dan membuat halaman beranda yang unik untuk setiap instance.
Prosedur ini mencakup petunjuk untuk menggunakan konsol Google Cloud
dan gcloud
perintah. Cara termudah untuk menggunakan gcloud
perintah adalah dengan menggunakan
Cloud Shell.
Konsol
Di konsol Google Cloud, buka halaman instance VM.
Klik Create instance.
Setel Nama ke
www-1
.Set Zona ke us-central1-b.
Klik Management, Security, Disks, Networking, Sole Tenancy.
Klik Networking dan buat setelan berikut:
- Untuk traffic HTTP, di kotak Network tags, masukkan
http-tag
. - Di bagian Network Interfaces, klik edit.
- Di bagian External IP, pilih None.
- Untuk traffic HTTP, di kotak Network tags, masukkan
Klik Management lalu tetapkan Startup script ke berikut ini:
sudo apt-get update sudo apt-get install apache2 -y sudo a2ensite default-ssl sudo a2enmod ssl sudo service apache2 restart echo '<!doctype html><html><body><h1>server 1</h1></body></html>' | sudo tee /var/www/html/index.html
Klik Create.
Buat
www-2
dengan setelan yang sama, kecuali tetapkan Skrip startup ke berikut:sudo apt-get update sudo apt-get install apache2 -y sudo a2ensite default-ssl sudo a2enmod ssl sudo service apache2 restart echo '<!doctype html><html><body><h1>server 2<h1></body></html>' | sudo tee /var/www/html/index.html
Buat
www-3
dengan setelan yang sama, kecuali set Zona keeurope-west1-b
dan tetapkan Startup script ke berikut ini:sudo apt-get update sudo apt-get install apache2 -y sudo a2ensite default-ssl sudo a2enmod ssl sudo service apache2 restart echo '<!doctype html><html><body><h1>server 3</h1></body></html>' | sudo tee /var/www/html/index.html
Buat
www-4
dengan setelan yang sama, kecuali set Zona keeurope-west1-b
dan tetapkan Startup script ke berikut ini:sudo apt-get update sudo apt-get install apache2 -y sudo a2ensite default-ssl sudo a2enmod ssl sudo service apache2 restart echo '<!doctype html><html><body><h1>server 4</h1></body></html>' | sudo tee /var/www/html/index.html
gcloud
Buka Cloud Shell:
Buat instance bernama
www-1
dius-central1-b
dengan skrip startup dasar:gcloud compute instances create www-1 \ --image-family debian-9 \ --image-project debian-cloud \ --zone us-central1-b \ --tags http-tag \ --network-interface=no-address \ --metadata startup-script="#! /bin/bash sudo apt-get update sudo apt-get install apache2 -y sudo service apache2 restart echo '<!doctype html><html><body><h1>www-1</h1></body></html>' | tee /var/www/html/index.html EOF"
Buat instance bernama
www-2
dius-central1-b
:gcloud compute instances create www-2 \ --image-family debian-9 \ --image-project debian-cloud \ --zone us-central1-b \ --tags http-tag \ --network-interface=no-address \ --metadata startup-script="#! /bin/bash sudo apt-get update sudo apt-get install apache2 -y sudo service apache2 restart echo '<!doctype html><html><body><h1>www-2</h1></body></html>' | tee /var/www/html/index.html EOF"
Buat instance bernama
www-3
, kali ini dieurope-west1-b
:gcloud compute instances create www-3 \ --image-family debian-9 \ --image-project debian-cloud \ --zone europe-west1-b \ --tags http-tag \ --network-interface=no-address \ --metadata startup-script="#! /bin/bash sudo apt-get update sudo apt-get install apache2 -y sudo service apache2 restart echo '<!doctype html><html><body><h1>www-3</h1></body></html>' | tee /var/www/html/index.html EOF"
Buat instance bernama
www-4
, yang ini juga ada dieurope-west1-b
:gcloud compute instances create www-4 \ --image-family debian-9 \ --image-project debian-cloud \ --zone europe-west1-b \ --tags http-tag \ --network-interface=no-address \ --metadata startup-script="#! /bin/bash sudo apt-get update sudo apt-get install apache2 -y sudo service apache2 restart echo '<!doctype html><html><body><h1>www-4</h1></body></html>' | tee /var/www/html/index.html EOF"
Terraform
Buka Cloud Shell:
clone repositori dari GitHub,
git clone https://github.com/GoogleCloudPlatform/gce-public-connectivity-terraform
Ubah direktori kerja ke direktori repositori:
cd iap
Instal Terraform
Ganti
[YOUR-ORGANIZATION-NAME]
di filescripts/set_env_vars.sh
dengan nama organisasi Google Cloud Anda.Menetapkan variabel lingkungan
source scripts/set_env_vars.sh
Terapkan konfigurasi Terraform:
terraform apply
Mengonfigurasi tunnel IAP untuk berinteraksi dengan instance
Untuk login ke instance VM, Anda harus terhubung ke instance menggunakan alat seperti SSH atau RDP. Dalam konfigurasi yang Anda buat dalam tutorial ini, Anda tidak dapat terhubung langsung ke instance. Namun, Anda dapat menggunakan penerusan TCP di IAP, yang memungkinkan akses jarak jauh untuk pola interaktif ini.
Untuk tutorial ini, Anda menggunakan SSH.
Di bagian ini, Anda akan melakukan hal berikut:
- Hubungkan ke instance Compute Engine menggunakan tunnel IAP.
- Menambahkan pengguna kedua dengan izin tunneling IAP di IAM.
Diagram berikut mengilustrasikan arsitektur yang Anda buat di bagian ini. Area abu-abu akan dibahas di bagian lain tutorial ini.
Batasan IAP
- Bandwidth: Fitur penerusan TCP IAP tidak ditujukan untuk transfer data secara massal. IAP berhak membatasi kapasitas pengguna yang dianggap menyalahgunakan layanan ini.
- Durasi koneksi: IAP tidak akan memutuskan koneksi sesi aktif kecuali jika diperlukan untuk pemeliharaan.
- Protokol: IAP untuk TCP tidak mendukung UDP.
Buat aturan firewall untuk mengizinkan tunneling
Agar dapat terhubung ke instance menggunakan SSH, Anda perlu membuka port yang sesuai pada firewall. Koneksi IAP berasal dari kumpulan alamat IP tertentu (35.235.240.0/20). Oleh sebab itu, Anda dapat membatasi aturan hanya pada rentang CIDR ini.
Konsol
Di konsol Google Cloud, buka halaman Firewall policies:
Klik Create firewall rule.
Setel Nama ke
allow-ssh-from-iap
.Biarkan VPC network sebagai
default
.Di bagian Target, pilih Tag target yang ditentukan.
Setel Target tags ke
http-tag
.Biarkan Source filter ditetapkan ke IP ranges.
Tetapkan Rentang IP Sumber ke
35.235.240.0/20
.Tetapkan Protokol dan port yang diizinkan ke
tcp:22
.Klik Create.
Mungkin perlu waktu beberapa saat agar aturan firewall baru dapat ditampilkan di konsol.
gcloud
Buat aturan firewall bernama
allow-ssh-from-iap
:gcloud compute firewall-rules create allow-ssh-from-iap \ --source-ranges 35.235.240.0/20 \ --target-tags http-tag \ --allow tcp:22
Terraform
Salin file Terraform aturan firewall ke direktori saat ini:
cp iap/vpc_firewall_rules.tf .
Terapkan konfigurasi Terraform:
terraform apply
Tunneling pengujian
Di Cloud Shell, hubungkan ke instance
www-1
menggunakan IAP:gcloud compute ssh www-1 \ --zone us-central1-b \ --tunnel-through-iap
Jika koneksi berhasil, Anda memiliki sesi SSH yang disalurkan melalui IAP langsung ke VM pribadi Anda.
Memberikan akses ke pengguna tambahan
IAP menggunakan peran dan izin project yang sudah ada saat Anda terhubung ke instance VM. Secara default, pemilik instance adalah satu-satunya pengguna yang memiliki peran IAP Secured Tunnel User Jika ingin mengizinkan pengguna lain mengakses VM milik Anda menggunakan tunneling IAP, Anda perlu memberikan peran ini kepada pengguna tersebut.
Di konsol Google Cloud, buka Security > Identity-Aware Proxy:
Jika Anda melihat pesan yang memberi tahu bahwa Anda perlu mengonfigurasi layar izin OAuth, abaikan pesan tersebut; tidak relevan dengan IAP untuk TCP.
Pilih tab SSH and TCP Resources.
Pilih VM yang telah Anda buat:
Di sisi kanan, klik Tambahkan Utama.
Tambahkan pengguna yang ingin Anda beri izin, pilih peran IAP-secured Tunnel User role, lalu klik Save.
Ringkasan
Kini Anda dapat terhubung ke instance menggunakan SSH untuk mengelola instance atau memecahkan masalahnya.
Banyak aplikasi yang harus membuat koneksi keluar untuk mendownload patch, terhubung dengan partner, atau mendownload resource. Di bagian berikutnya, Anda akan mengonfigurasi Cloud NAT agar VM Anda dapat mencapai resource ini.
Men-deploy Cloud NAT untuk pengambilan
Layanan Cloud NAT memungkinkan instance VM Google Cloud yang tidak memiliki alamat IP eksternal untuk terhubung ke internet. Cloud NAT menerapkan NAT keluar bersamaan dengan rute default agar instance Anda dapat menjangkau internet. Layanan ini tidak menerapkan NAT internal. Host di luar jaringan VPC Anda hanya dapat merespons koneksi yang sudah ada yang dimulai oleh instance Anda; mereka tidak dapat memulai koneksi mereka sendiri ke instance Anda menggunakan Cloud NAT. NAT tidak digunakan untuk traffic dalam Google Cloud.
Cloud NAT adalah resource regional. Anda dapat mengonfigurasinya untuk mengizinkan traffic dari semua rentang IP primer dan sekunder subnet di region, atau Anda dapat mengonfigurasinya hanya untuk beberapa dari rentang tersebut.
Di bagian ini, Anda akan mengonfigurasi gateway Cloud NAT di setiap region yang Anda gunakan sebelumnya. Diagram berikut mengilustrasikan arsitektur yang Anda build di bagian ini. Area abu-abu akan dibahas di bagian lain tutorial ini.
Membuat konfigurasi NAT menggunakan Cloud Router
Anda harus membuat instance Cloud Router di region yang sama dengan instance yang perlu menggunakan Cloud NAT. Cloud NAT hanya digunakan untuk menempatkan informasi NAT ke VM; tidak digunakan sebagai bagian dari Cloud NAT yang sebenarnya.
Dengan konfigurasi ini, semua instance di region tersebut dapat menggunakan Cloud NAT untuk semua rentang utama dan alias IP konfigurasi ini juga otomatis mengalokasikan alamat IP eksternal untuk gateway NAT. Untuk mengetahui opsi lainnya, baca dokumentasi gcloud compute routers
Konsol
Buka halaman Cloud NAT:
Klik Mulai atau Create Cloud NAT gateway.
Setel Nama gateway ke
nat-config
.Tetapkan VPC network ke
default
.Setel Wilayah ke
us-central1
.Di bagian Cloud Router, pilih Buat new router, lalu lakukan langkah berikut:
- Setel Nama ke
nat-router-us-central1
. - Klik Buat.
- Setel Nama ke
Klik Create.
Ulangi prosedur, tetapi ganti nilai berikut:
- Nama:
nat-router-europe-west1
- Region:
europe-west1
- Nama:
gcloud
Buat instance Cloud Router di setiap region:
gcloud compute routers create nat-router-us-central1 \ --network default \ --region us-central1 gcloud compute routers create nat-router-europe-west1 \ --network default \ --region europe-west1
Konfigurasikan router untuk Cloud NAT:
gcloud compute routers nats create nat-config \ --router-region us-central1 \ --router nat-router-us-central1 \ --nat-all-subnet-ip-ranges \ --auto-allocate-nat-external-ips gcloud compute routers nats create nat-config \ --router-region europe-west1 \ --router nat-router-europe-west1 \ --nat-all-subnet-ip-ranges \ --auto-allocate-nat-external-ips
Terraform
Salin file konfigurasi NAT Terraform ke direktori saat ini:
cp nat/vpc_nat_gateways.tf .
Terapkan konfigurasi Terraform:
terraform apply
Menguji konfigurasi Cloud NAT
Sekarang Anda dapat menguji apakah Anda dapat membuat permintaan keluar dari instance VM ke internet.
- Tunggu hingga 3 menit sampai konfigurasi NAT diterapkan ke VM.
Di Cloud Shell, hubungkan ke instance Anda menggunakan tunnel yang Anda buat:
gcloud compute ssh www-1 --tunnel-through-iap
Saat Anda login ke instance, gunakan perintah
curl
untuk membuat permintaan keluar:curl example.com
Anda akan melihat output berikut:
<html> <head> <title>Example Domain</title> ... ... ... </head> <body> <div> <h1>Example Domain</h1> <p>This domain is established to be used for illustrative examples in documents. You may use this domain in examples without prior coordination or asking for permission. </p> <p><a href="http://www.iana.org/domains/example">More information...</a></p> </div> </body> </html>
Jika perintah berhasil, berarti Anda telah memvalidasi bahwa VM Anda dapat terhubung ke internet menggunakan Cloud NAT.
Ringkasan
Kini instance Anda dapat membuat koneksi keluar untuk mendownload patch, terhubung dengan partner, atau mendownload resource.
Di bagian berikutnya, Anda akan menambahkan load balancing ke deployment dan mengonfigurasinya agar klien jarak jauh dapat memulai permintaan ke server Anda.
Membuat layanan HTTP yang di-load balanced untuk penayangan
Menggunakan Cloud Load Balancing untuk aplikasi Anda yang memiliki banyak keuntungan. Platform ini dapat menyediakan load balancing yang lancar dan skalabel untuk lebih dari satu juta kueri per detik. Layanan ini juga dapat memindahkan overhead SSL dari VM Anda, merutekan kueri ke region terbaik untuk pengguna berdasarkan lokasi dan ketersediaan, serta mendukung protokol modern seperti HTTP/2 dan QUIC.
Untuk tutorial ini, Anda akan memanfaatkan fitur utama lainnya: proxy koneksi IP anycast global. Fitur ini menyediakan satu alamat IP publik yang dihentikan pada edge Google yang didistribusikan secara global. Klien kemudian dapat terhubung ke resource yang dihosting pada alamat IP pribadi di mana saja di Google Cloud. Konfigurasi ini membantu melindungi instance dari serangan DDoS dan serangan langsung. Cloud Armor juga mengaktifkan fitur seperti Google Cloud Armor untuk mendapatkan keamanan yang lebih baik.
Di bagian tutorial ini, Anda akan melakukan hal-hal berikut:
- Reset instance VM untuk menginstal server web Apache.
- Buat aturan firewall untuk mengizinkan akses dari load balancer.
- Alokasikan alamat IPv4 dan IPv6 global untuk load balancer.
- Buat grup instance untuk instance Anda.
- Mulai kirim traffic ke instance Anda.
Diagram berikut mengilustrasikan arsitektur yang Anda buat di bagian ini. Area abu-abu akan dibahas di bagian lain tutorial ini.
Reset instance VM
Saat Anda membuat instance VM di awal tutorial ini, instance tersebut tidak memiliki akses ke internet, karena tidak ada alamat IP eksternal yang ditetapkan dan Cloud NAT tidak dikonfigurasi. Oleh karena itu, skrip startup yang menginstal Apache tidak dapat diselesaikan dengan sukses.
Cara termudah untuk menjalankan ulang skrip startup adalah dengan mereset instance tersebut sehingga server web Apache dapat diinstal dan digunakan di bagian berikutnya.
Konsol
Di Konsol Google Cloud, buka halaman Instance VM:
Pilih
www-1
,www-2
,www-3
, danwww-4
.Klik tombol Edit di bagian atas halaman.
Jika Anda tidak melihat tombol Reset, klik More actions
, lalu pilih Reset.Konfirmasi reset empat instance dengan mengklik Reset dalam dialog.
gcloud
Reset keempat instance:
gcloud compute instances reset www-1 \ --zone us-central1-b gcloud compute instances reset www-2 \ --zone us-central1-b gcloud compute instances reset www-3 \ --zone europe-west1-b gcloud compute instances reset www-4 \ --zone europe-west1-b
Buka firewall
Tugas berikutnya adalah membuat aturan firewall untuk mengizinkan traffic dari load
balancing ke instance VM Anda. Aturan ini mengizinkan traffic dari
rentang alamat IP Google Cloud yang digunakan oleh load balancer dan health
check. Aturan firewall menggunakan tag http-tag
yang Anda buat sebelumnya; aturan
firewall mengizinkan traffic ke port yang ditetapkan untuk menjangkau instance yang memiliki
tag.
Konsol
Di konsol Google Cloud, buka halaman Firewall policies:
Klik Create firewall rule.
Setel Nama ke
allow-lb-and-healthcheck
.Biarkan VPC network sebagai
default
.Di bagian Target, pilih Tag target yang ditentukan.
Setel Target tags ke
http-tag
.Biarkan Source filter ditetapkan ke IP ranges.
Tetapkan Rentang IP Sumber ke
130.211.0.0/22
dan35.191.0.0/16
.Tetapkan Protokol dan port yang diizinkan ke
tcp:80
.Klik Create.
Mungkin perlu waktu beberapa saat agar aturan firewall baru dapat ditampilkan di konsol.
gcloud
Buat aturan firewall bernama
allow-lb-and-healthcheck
:gcloud compute firewall-rules create allow-lb-and-healthcheck \ --source-ranges 130.211.0.0/22,35.191.0.0/16 \ --target-tags http-tag \ --allow tcp:80
Terraform
Salin file konfigurasi load-balancing Terraform ke direktori saat ini:
cp lb/* .
Terapkan konfigurasi Terraform:
terraform apply
Mengalokasikan alamat IP eksternal untuk load balancer
Jika menyalurkan traffic ke internet, Anda perlu mengalokasikan alamat eksternal untuk load balancer. Anda dapat mengalokasikan alamat IPv4, alamat IPv6, atau keduanya. Di bagian ini, Anda mencadangkan alamat IPv4 dan IPv6 statis yang sesuai untuk ditambahkan ke DNS.
Alamat IP publik tidak dikenai biaya tambahan karena digunakan dengan load balancer.
Konsol
Di konsol Google Cloud, buka halaman External IP addresses:
Klik Reserve static address untuk memesan alamat IPv4.
Setel Nama ke
lb-ip-cr
.Biarkan Type ditetapkan ke Global.
Klik Reserve.
Klik Reserve static address lagi untuk memesan alamat IPv6.
Setel Nama ke
lb-ipv6-cr
.Tetapkan IP version ke IPv6.
Biarkan Type ditetapkan ke Global.
Klik Reserve.
gcloud
Buat alamat IP statis bernama
lb-ip-cr
untuk IPv4:gcloud compute addresses create lb-ip-cr \ --ip-version=IPV4 \ --global
Buat alamat IP statis bernama
lb-ipv6-cr
untuk IPv6:gcloud compute addresses create lb-ipv6-cr \ --ip-version=IPV6 \ --global
Membuat grup instance dan menambahkan instance
Load balancer Google Cloud memerlukan grup instance untuk bertindak sebagai backend untuk traffic. Dalam tutorial ini, Anda akan menggunakan grup instance yang tidak dikelola agar lebih praktis. Namun, Anda juga dapat menggunakan grup instance terkelola untuk memanfaatkan fitur seperti penskalaan otomatis, autohealing, deployment regional (multi-zona), dan update otomatis.
Di bagian ini, Anda akan membuat grup instance untuk setiap zona yang Anda gunakan.
Konsol
Di konsol Google Cloud, buka halaman Instance groups:
Klik Buat grup instance.
Di sebelah kiri, klik Grup instance tidak terkelola baru.
Setel Nama ke
us-resources-w
.Setel Wilayah ke
us-central1
Setel Zona ke
us-central1-b
.Pilih Network (default) dan Subnetwork (default).
Di bagian VM instances, lakukan hal berikut:
- Klik Tambahkan instance, lalu pilih www-1.
- Klik Tambahkan instance lagi, lalu pilih www-2.
- Klik Create.
Ulangi prosedur ini untuk membuat grup instance kedua, tetapi gunakan nilai berikut:
- Nama:
europe-resources-w
- Zone:
europe-west1-b
- Instance:
www-3
danwww-4
- Nama:
Di halaman Instance groups, pastikan Anda memiliki dua grup instance, masing-masing dengan dua instance.
gcloud
Buat grup instance
us-resources-w
:gcloud compute instance-groups unmanaged create us-resources-w \ --zone us-central1-b
Tambahkan instance
www-1
danwww-2
:gcloud compute instance-groups unmanaged add-instances us-resources-w \ --instances www-1,www-2 \ --zone us-central1-b
Buat grup instance
europe-resources-w
:gcloud compute instance-groups unmanaged create europe-resources-w \ --zone europe-west1-b
Tambahkan instance
www-3
danwww-4
:gcloud compute instance-groups unmanaged add-instances europe-resources-w \ --instances www-3,www-4 \ --zone europe-west1-b
Mengonfigurasi layanan load balancing
Fungsi load balancer melibatkan beberapa layanan yang terhubung. Di bagian ini, Anda akan menyiapkan dan menghubungkan layanan. Layanan yang akan Anda buat adalah sebagai berikut:
- Port bernama, yang digunakan load balancer untuk mengarahkan traffic ke grup instance Anda.
- A health check, yang melakukan polling pada instance Anda untuk melihat apakah instance tersebut responsif atau tidak. Load balancer hanya mengirim traffic ke instance yang responsif.
- Layanan backend, yang memantau penggunaan dan kondisi instance. Layanan backend mengetahui apakah instance dalam grup instance dapat menerima traffic. Jika instance tidak dapat menerima traffic, load balancer akan mengalihkan traffic, asalkan instance di tempat lain memiliki kapasitas yang cukup. Backend menentukan kapasitas grup instance yang ada di dalamnya (penggunaan CPU maksimum atau kueri maksimum per detik).
- A Peta URL, yang mengurai URL permintaan dan dapat meneruskan permintaan ke layanan backend tertentu berdasarkan host dan jalur URL permintaan. Dalam tutorial ini, karena Anda tidak menggunakan penerusan berbasis konten, peta URL hanya berisi pemetaan default.
- A Proxy target, yang menerima permintaan dari pengguna dan meneruskannya ke peta URL.
- Dua aturan penerusan global, masing-masing untuk IPv4 dan IPv6, yang menyimpan resource alamat IP eksternal global. Aturan penerusan global meneruskan permintaan masuk ke proxy target.
Membuat load balancer
Di bagian ini, Anda akan membuat load balancer dan mengonfigurasi layanan backend default untuk menangani traffic Anda. Anda juga akan membuat health check.
Konsol
Memulai konfigurasi Anda
Di Konsol Google Cloud, buka halaman Load balancing.
- Klik Create load balancer.
- Untuk Type of load balancer, pilih Application Load Balancer (HTTP/HTTPS) lalu klik Next.
- Untuk Public facing or internal, pilih Public facing (eksternal), lalu klik Next.
- Untuk Global or single region deployment, pilih Best for global Workload, lalu klik Next.
- Untuk Load balancer Generation, pilih Global external Application Load Balancer, lalu klik Next.
- Klik Konfigurasikan.
Konfigurasi dasar
- Tetapkan Nama load balancer ke
web-map
.
Mengonfigurasi load balancer
- Di panel kiri halaman Create global external Application Load Balancer, klik Backend configuration.
- Dalam daftar Buat atau pilih backend services & backend buckets pilih, Backend services, lalu Create backend service. Anda akan melihat kotak dialog Create Backend Service.
- Setel Nama ke
web-map-backend-service
. - Tetapkan Protokol. Untuk protokol HTTP, biarkan nilai ditetapkan ke default.
- Untuk Backend type, pilih Instance Groups.
- Di bagian Backends, tetapkan Instance group ke
us-resources-w
. - Klik Add backend.
- Pilih grup instance europe-resources-w, lalu lakukan langkah berikut:
- Untuk traffic HTTP antara load balancer dan instance,
pastikan Port numbers disetel ke
80
. - Biarkan nilai default untuk kolom lainnya.
- Untuk traffic HTTP antara load balancer dan instance,
pastikan Port numbers disetel ke
- Klik Done.
- Di bagian Health check, pilih Create a health check atau Create another health check.
- Tetapkan parameter health check berikut:
- Name:
http-basic-check
- Protokol:
HTTP
- Port:
80
- Name:
- Klik Create.
gcloud
Untuk setiap grup instance, tentukan layanan HTTP dan petakan nama port ke port yang relevan:
gcloud compute instance-groups unmanaged set-named-ports us-resources-w \ --named-ports http:80 \ --zone us-central1-b gcloud compute instance-groups unmanaged set-named-ports europe-resources-w \ --named-ports http:80 \ --zone europe-west1-b
Membuat health check:
gcloud compute health-checks create http http-basic-check \ --port 80
Buat layanan backend:
gcloud compute backend-services create web-map-backend-service \ --protocol HTTP \ --health-checks http-basic-check \ --global
Anda menetapkan
--protocol
tandaHTTP
karena menggunakan HTTP untuk membuka instance. Untuk health check, Anda menggunakanhttp-basic-check
health check yang Anda buat sebelumnya.Tambahkan grup instance sebagai backend ke layanan backend:
gcloud compute backend-services add-backend web-map-backend-service \ --balancing-mode UTILIZATION \ --max-utilization 0.8 \ --capacity-scaler 1 \ --instance-group us-resources-w \ --instance-group-zone us-central1-b \ --global gcloud compute backend-services add-backend web-map-backend-service \ --balancing-mode UTILIZATION \ --max-utilization 0.8 \ --capacity-scaler 1 \ --instance-group europe-resources-w \ --instance-group-zone europe-west1-b \ --global
Tetapkan aturan host dan jalur
Konsol
Di panel kiri halaman Create global external Application Load Balancer klik Host and path rules.
Untuk tutorial ini, Anda tidak perlu mengonfigurasi aturan host atau jalur apa pun, karena semua traffic akan mengarah ke aturan default. Oleh karena itu, Anda dapat menerima nilai default yang telah diisi sebelumnya.
gcloud
Buat peta URL default yang mengarahkan semua permintaan masuk ke semua instance Anda:
gcloud compute url-maps create web-map \ --default-service web-map-backend-service
Buat proxy HTTP target untuk mengarahkan permintaan ke peta URL:
gcloud compute target-http-proxies create http-lb-proxy \ --url-map web-map
Mengonfigurasi frontend dan menyelesaikan penyiapan
Konsol
- Di panel kiri halaman Create global external Application Load Balancer, klik Frontend configuration.
- Tetapkan Nama ke
http-cr-rule
. - Tetapkan Protokol ke
HTTP
. - Tetapkan Versi IP ke
IPv4
. - Dalam daftar IP address, pilih
lb-ip-cr
, alamat yang telah Anda buat sebelumnya. - Pastikan Port telah disetel ke
80
. - Klik Done.
- Klik Add Frontend IP and Port.
- Tetapkan Nama ke
http-cr-ipv6-rule
. - Untuk Protocol, pilih HTTP.
- Tetapkam Versi IP ke
IPv6
. - Dalam daftar IP address, pilih
lb-ipv6-cr
, alamat lain yang Anda buat sebelumnya. - Pastikan Port telah disetel ke
80
. - Klik Create.
- Klik Done.
- Di panel kiri halaman Create global external Application Load Balancer klik Review and finalize.
- Bandingkan setelan Anda dengan yang ingin Anda buat.
Jika setelan sudah benar, klik Create.
Anda akan kembali ke halaman Load Balancing. Setelah load balancing dibuat, tanda centang hijau di sampingnya menunjukkan bahwa load balancer sedang berjalan.
gcloud
Dapatkan alamat IP statis yang Anda buat untuk load balancer. Catat email tersebut, karena Anda akan menggunakan pada langkah berikutnya.
gcloud compute addresses list
Buat dua aturan penerusan global untuk mengarahkan permintaan masuk ke proxy, satu untuk IPv4 dan satu untuk IPv6. Ganti lb_ip_address dalam perintah dengan alamat IPv4 statis yang Anda buat, dan ganti lb_ipv6_address dengan alamat IPv6 yang Anda buat.
gcloud compute forwarding-rules create http-cr-rule \ --address lb_ip_address \ --global \ --target-http-proxy http-lb-proxy \ --ports 80 gcloud compute forwarding-rules create http-cr-ipv6-rule \ --address lb_ipv6_address \ --global \ --target-http-proxy http-lb-proxy \ --ports 80
Setelah membuat aturan penerusan global, diperlukan waktu beberapa menit untuk menerapkan konfigurasi Anda.
Menguji konfigurasi
Di bagian ini, Anda akan mengirim permintaan HTTP ke instance untuk memverifikasi bahwa konfigurasi load-balancing berfungsi.
Konsol
Di konsol Google Cloud, buka halaman Load balancing:
Pilih load balancer bernama
web-map
untuk melihat detail tentang load balancer yang baru saja Anda buat.Di bagian Backend pada halaman, konfirmasi bahwa instance bersifat responsif dengan melihat kolom Healthy.
Diperlukan waktu beberapa saat hingga tampilan menunjukkan bahwa instance tersebut responsif.
Setelah layar menunjukkan bahwa instance responsif, salin nilai IP:Port dari bagian Frontend, lalu tempelkan ke browser Anda.
Di browser, Anda akan melihat halaman konten default.
gcloud
Dapatkan alamat IP dari aturan penerusan global Anda, dan catatlah untuk langkah selanjutnya:
gcloud compute forwarding-rules list
Gunakan perintah
curl
guna menguji respons berbagai URL untuk layanan Anda. Coba IPv4 dan IPv6. Untuk IPv6, Anda harus menempatkan[]
di sekitar alamat, sepertihttp://[2001:DB8::]/
.curl http://ipv4-address curl -g -6 "http://[ipv6-address]/"
Ringkasan
VM Anda kini dapat menyalurkan traffic ke internet dan dapat mengambil data dari internet. Anda juga dapat mengaksesnya menggunakan SSH untuk melakukan tugas administrasi. Semua fungsi ini dicapai hanya dengan menggunakan alamat IP pribadi, yang membantu melindunginya dari serangan langsung dengan tidak mengekspos alamat IP yang dapat dijangkau dari internet.
Pembersihan
Agar tidak perlu membayar biaya pada akun Google Cloud Anda untuk resource yang digunakan dalam tutorial ini, hapus project yang berisi resource tersebut, atau simpan project dan hapus setiap resource.
Menghapus project
- Di konsol Google Cloud, buka halaman Manage resource.
- Pada daftar project, pilih project yang ingin Anda hapus, lalu klik Delete.
- Pada dialog, ketik project ID, lalu klik Shut down untuk menghapus project.
Langkah selanjutnya
- Membuat Cloud Load Balancing menunjukkan cara membuat load balancer HTTPS dan HTTP2.
- Siapkan cluster pribadi menunjukkan cara menyiapkan cluster Google Kubernetes Engine pribadi.
- Penggunaan IAP untuk penerusan TCP menjelaskan penggunaan lain dalam IAP untuk TCP, seperti RDP atau eksekusi perintah jarak jauh.
- Penggunaan Cloud NAT memberikan contoh untuk Google Kubernetes Engine dan menjelaskan cara mengubah detail parameter.
- Pelajari arsitektur referensi, diagram, dan praktik terbaik tentang Google Cloud. Lihat Cloud Architecture Center kami.