1. Pengantar
Halo, terima kasih sudah datang hari ini. Siap untuk mempelajari Google Compute Engine?
Dalam codelab ini, kita akan mempelajari Compute Engine yang menangani aplikasi contoh Buku Tamu.
Anda akan membuat instance Compute Engine, men-deploy nginx, dan terakhir menempatkan load balancer jaringan di depan. Anda dapat membuat instance Compute Engine dari konsol grafis atau command line. Lab ini akan memandu Anda menggunakan command line.
Google Compute Engine menawarkan mesin virtual yang berjalan di pusat data Google yang terhubung ke jaringan fiber di seluruh dunia. Alat dan alur kerja yang ditawarkan memungkinkan penskalaan dari satu instance ke cloud computing global yang seimbang.
VM ini melakukan booting dengan cepat, dilengkapi penyimpanan disk persisten, dan memberikan performa yang konsisten. Mesin tersedia dalam banyak konfigurasi termasuk ukuran yang telah ditentukan dan juga dapat dibuat dengan Jenis Mesin Kustom yang dioptimalkan untuk kebutuhan spesifik Anda.
Terakhir, mesin virtual Compute Engine juga merupakan teknologi yang digunakan oleh beberapa produk Google Cloud lainnya (Kubernetes Engine, Cloud Dataproc, Cloud Dataflow, dll.).
2. Penyiapan dan Persyaratan
Penyiapan lingkungan mandiri
- 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.
- Nama project adalah nama tampilan untuk peserta project ini. String ini adalah string karakter yang tidak digunakan oleh Google API, dan Anda dapat memperbaruinya kapan saja.
- Project ID harus unik di semua project Google Cloud dan tidak dapat diubah (tidak dapat diubah setelah ditetapkan). Cloud Console otomatis menghasilkan string unik; biasanya Anda tidak peduli dengan kata-katanya. Pada sebagian besar codelab, Anda harus mereferensikan Project ID (dan biasanya diidentifikasi sebagai
PROJECT_ID
). Jadi, jika Anda tidak menyukainya, buat ID acak lain, atau, Anda dapat mencoba sendiri dan melihat apakah menyediakannya. Kemudian file akan "dibekukan" setelah project dibuat. - Ada nilai ketiga, Nomor Project yang digunakan oleh beberapa API. Pelajari lebih lanjut ketiga nilai ini di dokumentasi.
- Selanjutnya, Anda harus mengaktifkan penagihan di Cloud Console untuk menggunakan API/resource Cloud. Menjalankan operasi dalam codelab ini seharusnya tidak memerlukan banyak biaya, bahkan mungkin tidak sama sekali. Untuk menonaktifkan resource sehingga Anda tidak dikenai penagihan di luar tutorial ini, ikuti petunjuk "pembersihan" yang ada di akhir codelab. Pengguna baru Google Cloud memenuhi syarat untuk mengikuti program Uji Coba Gratis seharga$300 USD.
Google Cloud Shell
Meskipun Google Cloud dan Compute Engine dapat dioperasikan dari jarak jauh dari laptop Anda, dalam codelab ini, kita akan menggunakan Google Cloud Shell, lingkungan command line yang berjalan di Cloud.
Mesin virtual berbasis Debian ini memuat semua alat pengembangan yang akan Anda perlukan. Layanan ini menawarkan direktori beranda tetap sebesar 5 GB dan beroperasi di Google Cloud, sehingga sangat meningkatkan performa dan autentikasi jaringan. Ini berarti bahwa semua yang Anda perlukan untuk codelab ini adalah browser (ya, ini berfungsi di Chromebook).
- Untuk mengaktifkan Cloud Shell dari Cloud Console, cukup klik Aktifkan Cloud Shell (hanya perlu beberapa saat untuk melakukan penyediaan dan terhubung ke lingkungan).
Setelah terhubung ke Cloud Shell, Anda akan melihat bahwa Anda sudah diautentikasi dan project sudah ditetapkan ke PROJECT_ID
.
gcloud auth list
Output perintah
Credentialed accounts: - <myaccount>@<mydomain>.com (active)
gcloud config list project
Output perintah
[core] project = <PROJECT_ID>
Jika, untuk beberapa alasan, project belum disetel, cukup jalankan perintah berikut:
gcloud config set project <PROJECT_ID>
Mencari PROJECT_ID
Anda? Periksa ID yang Anda gunakan di langkah-langkah penyiapan atau cari di dasbor Cloud Console:
Cloud Shell juga menetapkan beberapa variabel lingkungan secara default, yang mungkin berguna saat Anda menjalankan perintah di masa mendatang.
echo $GOOGLE_CLOUD_PROJECT
Output perintah
<PROJECT_ID>
- Terakhir, tetapkan zona dan konfigurasi project default.
gcloud config set compute/zone us-central1-f
Anda dapat memilih berbagai zona yang berbeda. Untuk informasi selengkapnya, lihat Region & Zona.
3 Membuat instance Compute Engine
Seperti yang telah dibahas sebelumnya, kita akan menggunakan command line gcloud
dalam codelab ini. Semua yang dilakukan di sini dapat dilakukan menggunakan konsol (tersedia di console.cloud.google.com).
Pertama-tama, buat instance dengan setelan default :
$ gcloud compute instances create myinstance Created [...]. NAME: myinstance ZONE: us-central1-f MACHINE_TYPE: n1-standard-1 PREEMPTIBLE: INTERNAL_IP: 10.128.X.X EXTERNAL_IP: X.X.X.X STATUS: RUNNING
Catat EXTERNAL_IP
- yang penting nanti.
Instance dibuat menggunakan sejumlah default :
- Zona yang Anda pilih. Semua instance berada di zona. Anda dapat memilih zona pada waktu pembuatan instance dengan menggunakan flag
--zone
atau menetapkan zona default (seperti yang kita lakukan pada penyiapan awal) dan menghapus flag--zone
. - Image Debian GNU/Linux 9 (regang) terbaru. Jika menggunakan gambar kustom sendiri, berikan nama gambar di sini. Misalnya,
--image my-own-image
. - Jenis mesin
n1-standard-1
. Anda dapat memilih jenis mesin lain sepertin1-highmem-4
ataun1-highcpu-6
. Jika tidak ada jenis mesin standar yang cocok dengan kebutuhan Anda, gunakan jenis mesin kustom. - Jika nama persistent disk root sama dengan nama instance, disk akan otomatis dipasangkan ke instance.
Jalankan gcloud compute instances create --help
untuk melihat semua opsi yang tersedia.
4. Aktifkan Firewall untuk Port 80
Secara default, Google Cloud Platform hanya mengizinkan sedikit akses port. Karena kita akan segera menginstal Nginx - mari kita aktifkan port 80 di konfigurasi firewall terlebih dahulu.
$ gcloud compute firewall-rules create allow-80 --allow tcp:80 Created [...]. NAME: allow-80 NETWORK: default DIRECTION: INGRESS PRIORITY: 1000 ALLOW: tcp:80 DENY: DISABLED: False
Tindakan ini akan membuat aturan firewall bernama allow-80
yang memiliki daftar blok alamat IP default yang diizinkan untuk membuat koneksi masuk (--source-ranges
) ditetapkan ke 0.0.0.0/0
(Di mana saja).
Jalankan gcloud compute firewall-rules create --help
untuk melihat semua setelan default dan semua opsi yang tersedia, termasuk kemampuan untuk menerapkan aturan firewall berdasarkan tag.
5. SSH Ke Instance
Untuk menerapkan SSH ke instance dari command line (masih dari Cloud Shell) :
$ gcloud compute ssh myinstance Waiting for SSH key to propagate. Warning: Permanently added 'compute.12345' (ECDSA) to the list of known hosts. ... yourusername@myinstance:~#
Selesai. cukup mudah. (Dalam produksi, pastikan Anda memasukkan frasa sandi :)
Atau, Anda juga dapat menerapkan SSH ke instance langsung dari konsol ( konsol.cloud.google.com ), dengan membukaMesin Komputasi >Instance VM, lalu mengklikSSH data.
6. Menginstal Nginx
Login ke myinstance, instance yang baru dibuat, dan instal nginx:
$ sudo su - # apt update # apt install -y nginx # service nginx start # exit
Uji apakah server berjalan menggunakan curl
dari myinstance:
$ curl -s localhost | grep nginx <title>Welcome to nginx!</title> <h1>Welcome to nginx!</h1> <p>If you see this page, the nginx web server is successfully installed and <a href="http://nginx.org/">nginx.org</a>.<br/> <a href="http://nginx.com/">nginx.com</a>.</p> <p><em>Thank you for using nginx.</em></p>
Temukan IP eksternal untuk instance Anda dengan mencantumkan instance Anda melalui UI web:
Pastikan Anda keluar dari SSH, lalu jalankan perintah ini dari Cloud Shell:
$ gcloud compute instances list NAME: myinstance ZONE: us-central1-f MACHINE_TYPE: n1-standard-1 PREEMPTIBLE: INTERNAL_IP: 10.128.X.X EXTERNAL_IP: X.X.X.X STATUS: RUNNING
Kemudian, buka http://EXTERNAL_IP/
dengan EXTERNAL_IP
adalah IP publik myinstance dan Anda akan dapat melihat halaman nginx:
7. Skrip Startup
Daripada menyiapkan instance setiap saat, Anda dapat menggunakan skrip startup untuk melakukan inisialisasi instance saat startup.
Buat file bernama startup.sh
dengan konten berikut (Anda dapat menggunakan editor teks favorit: vim
, nano
, atau emacs
):
#! /bin/bash apt-get update apt-get install -y nginx service nginx start sed -i -- 's/nginx/Google Cloud Platform - '"$HOSTNAME"'/' /var/www/html/index.nginx-debian.html
Untuk membuat instance VM baru dengan skrip startup ini, cukup ketik :
$ gcloud compute instances create nginx \ --metadata-from-file startup-script=startup.sh Created [...]. NAME: nginx ZONE: us-central1-f MACHINE_TYPE: n1-standard-1 PREEMPTIBLE: INTERNAL_IP: 10.128.X.X EXTERNAL_IP: X.X.X.X STATUS: RUNNING
Jelajahi http://EXTERNAL_IP/
dan Anda akan melihat halaman beranda yang diperbarui. Jika halaman tidak langsung muncul lagi setelah beberapa detik, host mungkin masih memulai nginx.
8 Membuat Cluster Server
Untuk membuat cluster server, Anda harus membuat Template Instance terlebih dahulu. Setelah template instance dibuat, Anda kemudian dapat membuat grup instance untuk mengelola jumlah instance yang akan dibuat.
Pertama, buat template instance menggunakan skrip startup :
$ gcloud compute instance-templates create nginx-template \ --metadata-from-file startup-script=startup.sh Created [...]. NAME: nginx-template MACHINE_TYPE: n1-standard-1 PREEMPTIBLE: CREATION_TIMESTAMP: 2022-03-18T15:10:37.621-07:00
Kedua, mari kita buat kumpulan target. Kumpulan target memungkinkan kami memiliki titik akses tunggal ke semua instance dalam sebuah grup dan diperlukan untuk melakukan load balancing pada langkah-langkah berikutnya.
$ gcloud compute target-pools create nginx-pool Created [...]. NAME: nginx-pool REGION: us-central1 SESSION_AFFINITY: NONE BACKUP: HEALTH_CHECKS:
Terakhir, buat grup instance menggunakan template tersebut:
$ gcloud compute instance-groups managed create nginx-group \ --base-instance-name nginx \ --size 2 \ --template nginx-template \ --target-pool nginx-pool Created [...]. NAME: nginx-group LOCATION: us-central1-f SCOPE: zone BASE_INSTANCE_NAME: nginx SIZE: 0 TARGET_SIZE: 2 INSTANCE_TEMPLATE: nginx-template AUTOSCALED: no
Ini akan membuat dua instance VM tambahan dengan nama yang diawali dengan nginx-
.
Sekarang Anda dapat melihat semua instance yang dibuat.
$ gcloud compute instances list NAME: myinstance ZONE: us-central1-f MACHINE_TYPE: n1-standard-1 PREEMPTIBLE: INTERNAL_IP: 10.128.X.X EXTERNAL_IP: X.X.X.X STATUS: RUNNING NAME: nginx ZONE: us-central1-f MACHINE_TYPE: n1-standard-1 PREEMPTIBLE: INTERNAL_IP: 10.128.X.X EXTERNAL_IP: X.X.X.X STATUS: RUNNING NAME: nginx-frpl ZONE: us-central1-f MACHINE_TYPE: n1-standard-1 PREEMPTIBLE: INTERNAL_IP: 10.128.X.X EXTERNAL_IP: X.X.X.X STATUS: RUNNING NAME: nginx-ztg4 ZONE: us-central1-f MACHINE_TYPE: n1-standard-1 PREEMPTIBLE: INTERNAL_IP: 10.128.X.X EXTERNAL_IP: X.X.X.X STATUS: RUNNING
9. Membuat Load Balancer Jaringan
Ada beberapa jenis load balancer di Google Cloud Platform, termasuk :
Mari kita buat load balancer jaringan regional yang menargetkan grup instance kita:
$ gcloud compute forwarding-rules create nginx-lb \ --ports 80 \ --target-pool nginx-pool Created [...]. $ gcloud compute forwarding-rules list NAME: nginx-lb REGION: us-central1 IP_ADDRESS: X.X.X.X IP_PROTOCOL: TCP TARGET: us-central1/targetPools/nginx-pool
Kemudian, Anda dapat membuka load balancer dari browser http://IP_ADDRESS/
dengan IP_ADDRESS
adalah alamat yang ditampilkan sebagai hasil dari menjalankan perintah sebelumnya.
Karena waktu, kami tidak akan membuat load balancer HTTP hari ini.
10. Membersihkan Cluster
Jangan lupa mematikan cluster Anda. Jika tidak, cluster tersebut akan terus berjalan dan menimbulkan biaya. Perintah berikut akan menghapus instance Google Compute Engine, Grup Instance, Grup Penargetan, dan Load Balancer.
$ gcloud compute forwarding-rules delete nginx-lb $ gcloud compute instance-groups managed delete nginx-group $ gcloud compute target-pools delete nginx-pool $ gcloud compute instance-templates delete nginx-template $ gcloud compute instances delete nginx $ gcloud compute instances delete myinstance $ gcloud compute firewall-rules delete allow-80
Setiap perintah di atas akan meminta Anda untuk mengonfirmasi penghapusan resource.
11. Apa selanjutnya?
Selamat, Anda telah menyelesaikan codelab Compute Engine ini.
Fitur Compute Engine lainnya
Google Compute Engine memiliki serangkaian fitur yang lengkap. Anda mungkin ingin mempelajari beberapa hal ini :
- VM yang Dapat Diakhiri - https://cloud.google.com/compute/docs/instances/create-start-preemptible-instance
- Node tenant tunggal - https://cloud.google.com/compute/docs/nodes/create-nodes
- GPU & TPU - https://cloud.google.com/compute/docs/gpus/add-gpus
- Instance Windows - https://cloud.google.com/compute/docs/instances/windows/making-managing-windows-instances
- Referensi Pelabelan - https://cloud.google.com/compute/docs/labeling-resources
- Memigrasikan VM ke Compute Engine - https://cloud.google.com/compute/docs/vm-migration/
Google Kubernetes Engine
Google Kubernetes Engine (GKE) adalah penawaran Kubernetes yang dihosting dan terkelola sepenuhnya oleh Google Cloud. Ada beberapa codelab yang tersedia untuk membantu Anda memulai dengan GKE. Berikut langkah yang baik untuk memulai :
- Codelab Google Kubernetes Engine - https://codelabs.developers.google.com/codelabs/cloud-gke-workshop-v2
Kirimkan masukan Anda
- Luangkan waktu Anda untuk menyelesaikan survei singkat kami