GSP919

Ringkasan
Cloud SQL adalah layanan database relasional yang terkelola sepenuhnya untuk MySQL, PostgreSQL, dan Microsoft SQL Server yang menawarkan berbagai layanan untuk tugas administratif umum seperti pencadangan, replikasi, dan logging. Anda dapat dengan mudah menghubungkan aplikasi ke instance Cloud SQL untuk memanfaatkan berbagai layanan yang berguna ini.
Di lab ini, Anda akan membuat cluster Kubernetes terlebih dahulu dan men-deploy aplikasi sederhana ke cluster tersebut. Kemudian Anda menghubungkan aplikasi ke instance Cloud SQL untuk PostgreSQL yang disediakan dan mengonfirmasi bahwa aplikasi tersebut dapat menulis ke dan membaca dari instance tersebut.
Yang akan Anda lakukan
- Membuat cluster Kubernetes dan men-deploy aplikasi sederhana ke cluster tersebut.
- Menghubungkan aplikasi ke instance database Cloud SQL untuk PostgreSQL yang disediakan.
- Mengonfirmasi bahwa aplikasi dapat menulis ke dan membaca dari database.
Penyiapan dan persyaratan
Sebelum mengklik tombol Start Lab
Baca petunjuk ini. Lab memiliki timer dan Anda tidak dapat menjedanya. Timer yang dimulai saat Anda mengklik Start Lab akan menampilkan durasi ketersediaan resource Google Cloud untuk Anda.
Lab interaktif ini dapat Anda gunakan untuk melakukan aktivitas lab di lingkungan cloud sungguhan, bukan di lingkungan demo atau simulasi. Untuk mengakses lab ini, Anda akan diberi kredensial baru yang bersifat sementara dan dapat digunakan untuk login serta mengakses Google Cloud selama durasi lab.
Untuk menyelesaikan lab ini, Anda memerlukan:
- Akses ke browser internet standar (disarankan browser Chrome).
Catatan: Gunakan jendela Samaran (direkomendasikan) atau browser pribadi untuk menjalankan lab ini. Hal ini akan mencegah konflik antara akun pribadi Anda dan akun siswa yang dapat menyebabkan tagihan ekstra pada akun pribadi Anda.
- Waktu untuk menyelesaikan lab. Ingat, setelah dimulai, lab tidak dapat dijeda.
Catatan: Hanya gunakan akun siswa untuk lab ini. Jika Anda menggunakan akun Google Cloud yang berbeda, Anda mungkin akan dikenai tagihan ke akun tersebut.
Cara memulai lab dan login ke Google Cloud Console
-
Klik tombol Start Lab. Jika Anda perlu membayar lab, dialog akan terbuka untuk memilih metode pembayaran.
Di sebelah kiri ada panel Lab Details yang berisi hal-hal berikut:
- Tombol Open Google Cloud console
- Waktu tersisa
- Kredensial sementara yang harus Anda gunakan untuk lab ini
- Informasi lain, jika diperlukan, untuk menyelesaikan lab ini
-
Klik Open Google Cloud console (atau klik kanan dan pilih Open Link in Incognito Window jika Anda menjalankan browser Chrome).
Lab akan menjalankan resource, lalu membuka tab lain yang menampilkan halaman Sign in.
Tips: Atur tab di jendela terpisah secara berdampingan.
Catatan: Jika Anda melihat dialog Choose an account, klik Use Another Account.
-
Jika perlu, salin Username di bawah dan tempel ke dialog Sign in.
{{{user_0.username | "Username"}}}
Anda juga dapat menemukan Username di panel Lab Details.
-
Klik Next.
-
Salin Password di bawah dan tempel ke dialog Welcome.
{{{user_0.password | "Password"}}}
Anda juga dapat menemukan Password di panel Lab Details.
-
Klik Next.
Penting: Anda harus menggunakan kredensial yang diberikan lab. Jangan menggunakan kredensial akun Google Cloud Anda.
Catatan: Menggunakan akun Google Cloud sendiri untuk lab ini dapat dikenai biaya tambahan.
-
Klik halaman berikutnya:
- Setujui persyaratan dan ketentuan.
- Jangan tambahkan opsi pemulihan atau autentikasi 2 langkah (karena ini akun sementara).
- Jangan mendaftar uji coba gratis.
Setelah beberapa saat, Konsol Google Cloud akan terbuka di tab ini.
Catatan: Untuk mengakses produk dan layanan Google Cloud, klik Navigation menu atau ketik nama layanan atau produk di kolom Search.
Mengaktifkan Cloud Shell
Cloud Shell adalah mesin virtual yang dilengkapi dengan berbagai alat pengembangan. Mesin virtual ini menawarkan direktori beranda persisten berkapasitas 5 GB dan berjalan di Google Cloud. Cloud Shell menyediakan akses command-line untuk resource Google Cloud Anda.
-
Klik Activate Cloud Shell
di bagian atas Konsol Google Cloud.
-
Klik jendela berikut:
- Lanjutkan melalui jendela informasi Cloud Shell.
- Beri otorisasi ke Cloud Shell untuk menggunakan kredensial Anda guna melakukan panggilan Google Cloud API.
Setelah terhubung, Anda sudah diautentikasi, dan project ditetapkan ke Project_ID, . Output berisi baris yang mendeklarasikan Project_ID untuk sesi ini:
Project Cloud Platform Anda dalam sesi ini disetel ke {{{project_0.project_id | "PROJECT_ID"}}}
gcloud adalah alat command line untuk Google Cloud. Alat ini sudah terinstal di Cloud Shell dan mendukung pelengkapan command line.
- (Opsional) Anda dapat menampilkan daftar nama akun yang aktif dengan perintah ini:
gcloud auth list
- Klik Authorize.
Output:
ACTIVE: *
ACCOUNT: {{{user_0.username | "ACCOUNT"}}}
Untuk menetapkan akun aktif, jalankan:
$ gcloud config set account `ACCOUNT`
- (Opsional) Anda dapat menampilkan daftar ID project dengan perintah ini:
gcloud config list project
Output:
[core]
project = {{{project_0.project_id | "PROJECT_ID"}}}
Catatan: Untuk mendapatkan dokumentasi gcloud yang lengkap di Google Cloud, baca panduan ringkasan gcloud CLI.
Menetapkan region dan zona
Resource Compute Engine tertentu berada di region dan zona. Region adalah lokasi geografis spesifik tempat Anda dapat menjalankan resource. Setiap region memiliki satu atau beberapa zona.
Jalankan perintah gcloud berikut di Cloud Shell guna menetapkan region dan zona default untuk lab Anda:
gcloud config set compute/zone "{{{project_0.default_zone|ZONE}}}"
export ZONE=$(gcloud config get compute/zone)
gcloud config set compute/region "{{{project_0.default_region|REGION}}}"
export REGION=$(gcloud config get compute/region)
Tugas 1. Melakukan inisialisasi API dan membuat akun layanan Cloud IAM
Untuk menyelesaikan tugas ini, Anda harus melakukan inisialisasi API dan membuat akun layanan IAM yang akan digunakan untuk mengizinkan aplikasi Anda terhubung ke database Cloud SQL.
Mengaktifkan API
Anda harus mengaktifkan API yang diperlukan untuk lab ini. Anda akan membangun dan mengirim container ke Artifact Registry dalam tugas selanjutnya, jadi Anda harus mengaktifkan Artifact Registry API terlebih dahulu.
- Di Cloud Shell, jalankan perintah berikut untuk mengaktifkan Artifact Registry API:
gcloud services enable artifactregistry.googleapis.com
Membuat Akun Layanan untuk Cloud SQL
Anda perlu mengonfigurasi kredensial akun layanan IAM untuk aplikasi yang akan Anda deploy nanti. Akun layanan harus terikat ke peran yang memungkinkannya membuat dan mengakses database Cloud SQL.
- Di Cloud Shell, buat Akun Layanan dan ikat ke peran admin Cloud SQL di project lab:
export PROJECT_ID=$(gcloud config list --format 'value(core.project)')
export CLOUDSQL_SERVICE_ACCOUNT=cloudsql-service-account
gcloud iam service-accounts create $CLOUDSQL_SERVICE_ACCOUNT --project=$PROJECT_ID
gcloud projects add-iam-policy-binding $PROJECT_ID \
--member="serviceAccount:$CLOUDSQL_SERVICE_ACCOUNT@$PROJECT_ID.iam.gserviceaccount.com" \
--role="roles/cloudsql.admin"
- Di Cloud Shell, buat dan ekspor kunci ke file lokal:
gcloud iam service-accounts keys create $CLOUDSQL_SERVICE_ACCOUNT.json \
--iam-account=$CLOUDSQL_SERVICE_ACCOUNT@$PROJECT_ID.iam.gserviceaccount.com \
--project=$PROJECT_ID
File akan disimpan ke folder beranda Anda di Cloud Shell.
Klik Periksa progres saya untuk memverifikasi tujuan. Membuat akun layanan IAM untuk Cloud SQL.
Tugas 2. Men-deploy aplikasi GKE ringan
Dalam tugas ini, Anda akan membuat cluster Kubernetes dan men-deploy aplikasi Google Kubernetes Engine (GKE) ringan di cluster tersebut. Anda akan mengonfigurasi aplikasi agar memiliki akses ke instance Cloud SQL yang disediakan.
Aplikasi yang disediakan adalah aplikasi web Flask-SQLAlchemy sederhana yang disebut gMemegen. Aplikasi ini membuat meme dengan menyediakan sekumpulan foto dan mengambil teks header dan footer, menyimpannya di database, dan merender meme tersebut ke folder lokal. Aplikasi ini berjalan di satu pod dengan dua container; satu untuk aplikasi dan satu untuk Cloud SQL Auth Proxy yang di-deploy dalam pola sidecar.
Load balancer akan mengarahkan permintaan antara aplikasi dan database melalui sidecar tersebut. Load balancer ini akan mengekspos alamat IP Ingress eksternal yang akan Anda gunakan untuk mengakses aplikasi di browser.
Membuat cluster Kubernetes
Pada langkah ini, Anda akan membuat cluster Kubernetes minimal. Deployment cluster ini akan memerlukan waktu beberapa menit.
- Di Cloud Shell, buat cluster Kubernetes minimal sebagaimana berikut:
ZONE={{{project_0.default_zone|ZONE}}}
gcloud container clusters create postgres-cluster \
--zone=$ZONE --num-nodes=2
Membuat secret Kubernetes untuk akses database
Pada langkah ini, Anda akan membuat sepasang secret Kubernetes yang berisi kredensial yang diperlukan untuk terhubung ke instance dan database Cloud SQL.
- Di Cloud Shell, jalankan perintah berikut untuk membuat secret:
kubectl create secret generic cloudsql-instance-credentials \
--from-file=credentials.json=$CLOUDSQL_SERVICE_ACCOUNT.json
kubectl create secret generic cloudsql-db-credentials \
--from-literal=username=postgres \
--from-literal=password=supersecret! \
--from-literal=dbname=gmemegen_db
Mendownload dan membangun container aplikasi GKE
Agar dapat men-deploy aplikasi gMemegen ke cluster GKE, Anda harus membangun container dan mengirimkannya ke repositori.
- Di Cloud Shell, download kode aplikasi yang disediakan dan ubah ke direktori aplikasi:
gsutil -m cp -r gs://spls/gsp919/gmemegen .
cd gmemegen
- Buat variabel lingkungan untuk region, Project ID, dan repositori Artifact Registry:
export REGION={{{ project_0.default_region | "REGION" }}}
export PROJECT_ID=$(gcloud config list --format 'value(core.project)')
export REPO=gmemegen
- Konfigurasi autentikasi Docker untuk Artifact Registry:
gcloud auth configure-docker ${REGION}-docker.pkg.dev
- Masukkan
Y jika Anda diminta melakukan konfirmasi.
- Buat repositori Artifact Registry:
gcloud artifacts repositories create $REPO \
--repository-format=docker --location=$REGION
- Bangun image Docker lokal:
docker build -t ${REGION}-docker.pkg.dev/${PROJECT_ID}/gmemegen/gmemegen-app:v1 .
Untuk tujuan lab ini, Anda dapat mengabaikan peringatan tentang menjalankan 'pip' sebagai pengguna 'root', meskipun perlu diingat bahwa, secara umum, sebaiknya gunakan lingkungan virtual terutama saat menangani mesin lokal.
- Kirim image ke Artifact Registry:
docker push ${REGION}-docker.pkg.dev/${PROJECT_ID}/gmemegen/gmemegen-app:v1
Mengonfigurasi dan men-deploy aplikasi GKE
Anda harus mengubah manifes deployment Kubernetes untuk aplikasi gMemegen agar mengarah ke container yang benar dan mengonfigurasi pola sidecar Cloud SQL Auth Proxy dengan string koneksi untuk instance Cloud SQL PostgreSQL.
Petunjuk ini menjelaskan cara mengedit file menggunakan Cloud Shell Editor, tetapi Anda dapat menggunakan editor lain jika mau, seperti vi atau nano, dari Cloud Shell untuk langkah-langkah ini.
-
Di panel menu Cloud Shell, klik Open Editor untuk membuka Cloud Shell Editor.
-
Buka panel Explorer di sisi kiri, sehingga meluaskan folder gmemegen, lalu pilih gmemegen_deployment.yaml untuk mengedit file.
-
Di baris 33, pada atribut image, ganti ${REGION} dengan dan ${PROJECT_ID} dengan . Baris tersebut sekarang akan tampak seperti berikut:
image: {{{ project_0.default_region | "REGION" }}}-docker.pkg.dev/{{{ project_0.project_id | "Project ID" }}}/gmemegen/gmemegen-app:v1
- Di baris 60, ganti
${REGION} dengan dan ${PROJECT_ID} dengan . Baris tersebut sekarang akan tampak seperti berikut:
-instances={{{ project_0.project_id | "Project ID" }}}:{{{ project_0.default_region | "REGION" }}}:postgres-gmemegen=tcp:5432
Untuk mengonfirmasi apakah nama koneksi sudah benar, di Konsol Cloud, buka Databases > SQL, pilih instance postgres-gmemegen, lalu bandingkan dengan Connection name di panel Overview. Nama koneksi yang valid memiliki format PROJECT_ID:REGION:CLOUD_SQL_INSTANCE_ID.
-
Simpan perubahan Anda dengan memilih File > Save dari menu Cloud Shell Editor.
-
Di Konsol Cloud, klik Open Terminal untuk membuka kembali Cloud Shell. Anda mungkin perlu mengubah ukuran jendela Terminal dengan menarik tuas ke bawah di bagian tengah atas panel menu, sehingga dapat melihat jendela Konsol Cloud di atas.
-
Di Cloud Shell, deploy aplikasi dengan menjalankan perintah berikut:
kubectl create -f gmemegen_deployment.yaml
- Di Cloud Shell, periksa apakah deployment berhasil atau tidak dengan menjalankan perintah berikut:
kubectl get pods
Mungkin perlu waktu sekitar satu menit agar pod dimulai, karena pod perlu mengambil image dari repositori. Ulangi perintah di atas hingga Anda melihat pod yang memiliki 2 container, dengan status Running.
Klik Periksa progres saya untuk memverifikasi tujuan. Men-deploy aplikasi GKE ringan.
Tugas 3. Menghubungkan aplikasi GKE ke load balancer eksternal
Dalam tugas ini, Anda akan membuat load balancer untuk mengarahkan permintaan di antara container dalam pod GKE dan mengakses aplikasi menggunakan alamat IP eksternalnya dari browser.
Membuat load balancer agar aplikasi GKE Anda dapat diakses dari web
Pada langkah ini, Anda akan membuat layanan load balancer Kubernetes yang akan menyediakan alamat IP publik untuk aplikasi Anda.
- Di Cloud Shell, jalankan perintah berikut untuk membuat load balancer bagi aplikasi:
kubectl expose deployment gmemegen \
--type "LoadBalancer" \
--port 80 --target-port 8080
Uji aplikasi untuk menghasilkan beberapa data
Pada langkah ini, Anda akan mengakses aplikasi gMemegen dari browser web Anda.
Aplikasi ini memiliki antarmuka yang sangat sederhana. Antarmuka tersebut diluncurkan ke halaman beranda aplikasi, yang menampilkan 6 gambar kandidat untuk membuat meme. Anda dapat memilih gambar dengan mengkliknya.
Halaman Create Meme ditampilkan. Di sini, Anda memasukkan dua item teks yang akan ditampilkan di bagian atas dan bawah gambar. Meme akan dirender dan ditampilkan setelah Anda mengklik Submit. Antarmuka tidak menyediakan navigasi dari halaman meme yang telah selesai. Anda harus menggunakan tombol kembali di browser untuk kembali ke halaman beranda.
Ada dua halaman lain, Recent dan Random, tiap halaman ini menampilkan sekumpulan meme yang baru dibuat dan meme acak. Membuat meme dan membuka UI akan menghasilkan aktivitas database yang dapat Anda lihat di log seperti yang dijelaskan di bawah.
Tunggu hingga load balancer mengekspos IP eksternal, yang dapat Anda ambil sebagai berikut:
- Di Cloud Shell, salin atribut alamat IP eksternal
LoadBalancer Ingress dari output:
kubectl describe service gmemegen
Output:
Name: gmemegen
Namespace: default
Labels: app=gmemegen
Annotations:
Selector: app=gmemegen
Type: LoadBalancer
IP Families:
IP: 10.3.240.201
IPs: 10.3.240.201
LoadBalancer Ingress: 34.67.122.203
Port: 80/TCP
TargetPort: 8080/TCP
NodePort: 31837/TCP
Endpoints: 10.0.0.7:8080
Session Affinity: None
External Traffic Policy: Cluster
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal EnsuringLoadBalancer 85s service-controller Ensuring load balancer
Normal EnsuredLoadBalancer 36s service-controller Ensured load balancer
Perlu waktu sekitar satu menit agar atribut LoadBalancer Ingress disertakan dalam output (lihat di atas), jadi ulangi perintah ini hingga atribut tersebut muncul sebelum melakukan langkah berikutnya.
- Di browser, buka alamat IP Ingress load balancer.
Anda dapat membuat link yang bisa diklik ke alamat IP eksternal load balancer di Cloud Shell menggunakan perintah berikut:
export LOAD_BALANCER_IP=$(kubectl get svc gmemegen \
-o=jsonpath='{.status.loadBalancer.ingress[0].ip}' -n default)
echo gMemegen Load Balancer Ingress IP: http://$LOAD_BALANCER_IP
-
Klik link di Cloud Shell dan Anda akan melihat aplikasi gMemegen berjalan pada tab baru di browser Anda.
-
Buat meme sebagai berikut:
- Di halaman Home, klik salah satu gambar yang ditampilkan.
- Masukkan teks di kotak teks Top dan Bottom.
- Klik tombol Submit.
Meme baru Anda akan ditampilkan.

-
Untuk membuat lebih banyak meme, gunakan tombol kembali browser untuk membuka halaman beranda.
-
Untuk melihat meme yang sudah ada, klik Recent atau Random di menu aplikasi. (Perhatikan bahwa Random akan membuka tab browser baru)
-
Di Cloud Shell, lihat aktivitas aplikasi dengan menjalankan perintah berikut:
POD_NAME=$(kubectl get pods --output=json | jq -r ".items[0].metadata.name")
kubectl logs $POD_NAME gmemegen | grep "INFO"
Perintah ini akan mengkueri log dari container gmemegen dan akan menampilkan aktivitas aplikasi di pod, termasuk pernyataan SQL, yang dicatat ke stderr saat dieksekusi.
Klik Periksa progres saya untuk memverifikasi tujuan. Menghubungkan aplikasi GKE ke load balancer eksternal.
Tugas 4. Memverifikasi kemampuan baca/tulis penuh aplikasi ke database
Dalam tugas ini, Anda akan memverifikasi bahwa aplikasi dapat menulis ke dan membaca dari database.
Membuat koneksi ke database dan mengkueri tabel aplikasi
Pada langkah ini, Anda akan membuat koneksi ke instance Cloud SQL dengan menjalankan PL/SQL di Cloud Shell.
-
Di Konsol Google Cloud, buka Databases > SQL, lalu pilih instance postgres-gmemegen.
-
Di panel Overview, scroll ke bawah ke Connect to this instance, lalu klik tombol Open Cloud Shell.
-
Jalankan perintah yang otomatis terisi di Cloud Shell.
-
Saat diminta, masukkan sandi: supersecret!
-
Pada prompt postgres=>, masukkan perintah berikut untuk memilih database gmemegen_db:
\c gmemegen_db
-
Saat diminta, masukkan sandi: supersecret!
-
Pada prompt gmemegen_db=>, masukkan:
select * from meme;
Prompt ini akan menampilkan baris untuk setiap meme yang telah Anda buat melalui aplikasi gMemegen.
Klik Periksa progres saya untuk memverifikasi tujuan. Memverifikasi kemampuan baca/tulis penuh aplikasi ke database-nya.
Selamat!
Di lab ini, Anda telah mengonfigurasi aplikasi guna mengakses database Cloud SQL untuk PostgreSQL. Anda telah membuat cluster Kubernetes dan men-deploy aplikasi pembuatan meme sederhana ke cluster tersebut, serta menghubungkan aplikasi ke instance database Cloud SQL untuk PostgreSQL yang disediakan dan mengonfirmasi bahwa aplikasi tersebut dapat menulis ke dan membaca dari instance tersebut.
Sertifikasi dan pelatihan Google Cloud
...membantu Anda mengoptimalkan teknologi Google Cloud. Kelas kami mencakup keterampilan teknis dan praktik terbaik untuk membantu Anda memahami dengan cepat dan melanjutkan proses pembelajaran. Kami menawarkan pelatihan tingkat dasar hingga lanjutan dengan opsi on demand, live, dan virtual untuk menyesuaikan dengan jadwal Anda yang sibuk. Sertifikasi membantu Anda memvalidasi dan membuktikan keterampilan serta keahlian Anda dalam teknologi Google Cloud.
Manual Terakhir Diperbarui pada 28 Februari 2025
Lab Terakhir Diuji pada 28 Februari 2025
Hak cipta 2026 Google LLC. Semua hak dilindungi undang-undang. Google dan logo Google adalah merek dagang dari Google LLC. Semua nama perusahaan dan produk lain mungkin adalah merek dagang masing-masing perusahaan yang bersangkutan.