GSP234
Ringkasan
Di lab praktik ini, Anda akan mempelajari cara membuat instance Cloud SQL dengan Terraform, lalu menyiapkan Proxy Cloud SQL, dengan menguji koneksi dengan klien MySQL.
Tujuan
Di lab ini, Anda akan mempelajari cara melakukan tugas berikut:
- Membuat instance Cloud SQL.
- Menginstal Proxy Cloud SQL.
- Menguji konektivitas dengan klien MySQL menggunakan Cloud Shell.
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 Konsol Google Cloud
-
Klik tombol Start Lab. Jika Anda perlu membayar lab, dialog akan terbuka untuk memilih metode pembayaran.
Di sebelah kanan terdapat panel Lab setup and access yang berisi hal-hal berikut:
- Tombol Open Google Cloud console
- Kredensial sementara (nama pengguna dan sandi) yang harus Anda gunakan untuk lab ini
- Informasi lain, jika diperlukan, untuk menyelesaikan lab ini
Perhatikan bahwa timer lab terletak di dekat bagian atas halaman, yang menampilkan waktu yang tersisa.
-
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 setup and access.
-
Klik Next.
-
Salin Password di bawah dan tempel ke dialog Welcome.
{{{user_0.password | "Password"}}}
Anda juga dapat menemukan Password di panel Lab setup and access.
-
Klik Next.
Penting: Anda harus menggunakan kredensial yang diberikan lab. Jangan menggunakan kredensial akun Google Cloud Anda.
Catatan: Penggunaan akun Google Cloud sendiri untuk lab ini mungkin dikenai biaya tambahan.
-
Klik untuk melanjutkan ke halaman berikutnya:
- Setujui persyaratan dan ketentuan.
- Jangan tambahkan opsi pemulihan atau autentikasi 2 langkah (karena ini akun sementara).
- Jangan daftar 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.
Menginstal Terraform
Terraform tidak diinstal sebelumnya di Cloud Shell. Anda harus menginstal Terraform CLI dan mengonfigurasinya agar tetap ada di seluruh sesi Cloud Shell.
- Untuk mengonfigurasi repositori HashiCorp dan menginstal Terraform, serta memastikan penginstalan ini tetap ada di sesi mendatang, jalankan perintah berikut di terminal Cloud Shell:
cat <<'EOF' > ~/.customize_environment
# Siapkan repositori HashiCorp dan instal Terraform
wget -O - https://apt.releases.hashicorp.com/gpg | sudo gpg --dearmor -o /usr/share/keyrings/hashicorp-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/hashicorp-archive-keyring.gpg] https://apt.releases.hashicorp.com $(grep -oP '(?<=UBUNTU_CODENAME=).*' /etc/os-release || lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/hashicorp.list
sudo apt update && sudo apt install -y terraform
EOF
bash ~/.customize_environment
- Untuk memverifikasi bahwa Terraform telah diinstal dengan benar, jalankan:
terraform --version
Output akan menampilkan versi yang diinstal (v1.5.7 atau yang lebih baru):
Terraform v1.9.0
Cloud SQL
Cloud SQL adalah layanan database terkelola sepenuhnya yang mempermudah penyiapan, pemeliharaan, pengelolaan, dan pengaturan database relasional di Google Cloud. Anda dapat menggunakan Cloud SQL dengan MySQL atau PostgreSQL.
Tugas 1. Mendownload file yang diperlukan
- Gunakan perintah berikut di terminal Cloud Shell untuk membuat direktori dan mengambil skrip Terraform yang diperlukan dari bucket Cloud Storage:
mkdir sql-with-terraform
cd sql-with-terraform
gcloud storage cp gs://spls/gsp234/gsp234.zip .
- Jalankan perintah berikut untuk mengekstrak konten yang didownload:
unzip gsp234.zip
Tugas 2. Memahami kode
- Gunakan perintah
cat untuk melihat konten file main.tf:
cat main.tf
Contoh output:
...
resource "google_sql_database_instance" "master" {
name = "example-mysql-${random_id.name.hex}"
project = var.project
region = var.region
database_version = var.database_version
master_instance_name = var.master_instance_name
settings {
tier = var.tier
activation_policy = var.activation_policy
authorized_gae_applications = var.authorized_gae_applications
disk_autoresize = var.disk_autoresize
dynamic "backup_configuration" {
for_each = [var.backup_configuration]
content {
binary_log_enabled = lookup(backup_configuration.value, "binary_log_enabled", null)
enabled = lookup(backup_configuration.value, "enabled", null)
start_time = lookup(backup_configuration.value, "start_time", null)
}
}
dynamic "ip_configuration" {
for_each = [var.ip_configuration]
content {
ipv4_enabled = lookup(ip_configuration.value, "ipv4_enabled", true)
private_network = lookup(ip_configuration.value, "private_network", null)
require_ssl = lookup(ip_configuration.value, "require_ssl", null)
dynamic "authorized_networks" {
for_each = lookup(ip_configuration.value, "authorized_networks", [])
content {
expiration_time = lookup(authorized_networks.value, "expiration_time", null)
name = lookup(authorized_networks.value, "name", null)
value = lookup(authorized_networks.value, "value", null)
}
}
}
}
...
Selanjutnya, Anda akan memperbarui file variables.tf untuk menggunakan ID project dan region yang dialokasikan untuk lab ini.
- Klik Open Editor di Cloud Shell.
- Buka
variables.tf dan modifikasi variabel project serta region dengan nilai yang ditunjukkan di bawah ini:
Setelah selesai, simpan perubahan yang telah dilakukan.
Tugas 3. Menjalankan Terraform
Perintah terraform init digunakan untuk melakukan inisialisasi direktori kerja yang berisi file konfigurasi Terraform.
Perintah ini menjalankan beberapa langkah inisialisasi yang berbeda untuk menyiapkan direktori kerja agar dapat digunakan. Perintah ini selalu aman untuk dijalankan beberapa kali, untuk memperbarui direktori kerja dengan perubahan dalam konfigurasi.
- Jalankan
terraform init:
terraform init
Perintah terraform plan adalah perintah opsional tetapi direkomendasikan dan digunakan untuk membuat rencana eksekusi. Terraform akan melakukan refresh, kecuali jika dinonaktifkan secara eksplisit, kemudian menentukan tindakan yang diperlukan untuk mencapai status yang diinginkan yang telah ditentukan dalam file konfigurasi.
Perintah ini merupakan cara mudah untuk memeriksa apakah rencana eksekusi untuk serangkaian perubahan sesuai dengan harapan Anda atau tidak, tanpa membuat perubahan apa pun pada resource sebenarnya atau pada statusnya. Misalnya, terraform plan dapat dijalankan sebelum melakukan perubahan pada kontrol versi, untuk meyakinkan Anda bahwa kontrol versi tersebut akan berperilaku sesuai harapan.
- Jalankan
terraform plan:
terraform plan -out=tfplan
Argumen -out yang bersifat opsional dapat digunakan untuk menyimpan rencana yang dihasilkan ke sebuah file untuk dieksekusi pada lain waktu dengan terraform apply.
Perintah terraform apply digunakan untuk menerapkan perubahan yang diperlukan untuk mencapai status konfigurasi yang diinginkan, atau serangkaian tindakan yang telah ditentukan sebelumnya yang dihasilkan oleh rencana eksekusi terraform plan.
- Terapkan Terraform plan yang baru saja Anda buat:
terraform apply tfplan
Proses ini memerlukan waktu beberapa saat hingga selesai. Setelah selesai, Anda akan melihat output seperti di bawah ini.
Output:
Apply complete! Resources: 5 added, 0 changed, 0 destroyed.
The state of your infrastructure has been saved to the path
below. This state is required to modify and destroy your
infrastructure, so keep it safe. To inspect the complete state
use the `terraform show` command.
State path: terraform.tfstate
Outputs:
generated_user_password =
instance_address = 35.232.204.44
instance_address_time_to_retire =
instance_name = example-mysql-6808
self_link = https://www.googleapis.com/sql/v1beta4/projects/[PROJECT_ID]/instances/example-mysql-6808
Menguji tugas yang sudah selesai
Klik Periksa progres saya untuk memverifikasi tugas yang telah dijalankan.
Membuat instance Cloud SQL menggunakan skrip Terraform
Tugas 4. Memahami Proxy Cloud SQL
Yang disediakan oleh proxy
Proxy Cloud SQL menyediakan akses aman ke instance Cloud SQL Generasi Kedua Anda tanpa harus memasukkan alamat IP ke daftar yang diizinkan atau mengonfigurasi SSL.
Mengakses instance Cloud SQL Anda menggunakan Proxy Cloud SQL menawarkan keuntungan berikut:
-
Koneksi aman: Proxy akan otomatis mengenkripsi traffic ke dan dari database menggunakan TLS 1.2 dengan cipher AES 128-bit. Sertifikat SSL digunakan untuk memverifikasi identitas klien dan server.
-
Pengelolaan koneksi yang lebih mudah: Proxy akan menangani autentikasi dengan Cloud SQL, sehingga Anda tidak perlu menyediakan alamat IP statis.
Catatan: Anda tidak perlu menggunakan proxy atau mengonfigurasi SSL untuk terhubung ke Cloud SQL dari lingkungan standar atau fleksibel App Engine. Koneksi ini menggunakan implementasi proxy "bawaan" secara otomatis.
Cara kerja Proxy Cloud SQL
Proxy Cloud SQL bekerja dengan menjalankan klien lokal, yang disebut proxy, di lingkungan lokal. Aplikasi Anda berkomunikasi dengan proxy menggunakan protokol standar yang digunakan oleh database Anda. Proxy menggunakan tunnel yang aman untuk berkomunikasi dengan proses pendampingnya yang berjalan di server.
Diagram berikut menunjukkan cara proxy terhubung ke Cloud SQL:

Tugas 5. Menginstal Proxy Cloud SQL
- Jalankan perintah berikut untuk mendownload proxy:
wget https://dl.google.com/cloudsql/cloud_sql_proxy.linux.amd64 -O cloud_sql_proxy
- Jalankan perintah berikut untuk membuat proxy dapat dieksekusi:
chmod +x cloud_sql_proxy
Anda dapat menginstal proxy di mana saja di lingkungan Anda. Lokasi program biner proxy tidak akan memengaruhi tempat proxy tersebut akan me-listen data dari aplikasi Anda.
Opsi startup proxy
Saat memulai proxy, Anda memberinya serangkaian informasi berikut:
- Instance Cloud SQL yang akan dihubungkan
- Tempat proxy akan me-listen data yang datang dari aplikasi Anda dan akan dikirim ke Cloud SQL
- Tempat proxy akan menemukan kredensial yang digunakan untuk mengautentikasi aplikasi Anda ke Cloud SQL
Opsi startup proxy yang Anda berikan menentukan apakah proxy tersebut akan me-listen di port TCP atau di soket Unix. Jika me-listen di soket Unix, proxy tersebut akan membuat soket di lokasi yang Anda pilih; biasanya di direktori /cloudsql/. Untuk TCP, proxy akan me-listen localhost secara default.
Tugas 6. Menguji koneksi ke database
- Mulai dengan menjalankan proxy Cloud SQL untuk instance Cloud SQL:
MYSQL_DB_NAME=$(terraform output -json | jq -r '.instance_name.value')
MYSQL_CONN_NAME="{{{project_0.project_id | PROJECT_ID}}}:{{{project_0.default_region|REGION}}}:${MYSQL_DB_NAME}"
- Jalankan perintah berikut:
./cloud_sql_proxy -instances=${MYSQL_CONN_NAME}=tcp:3306
Sekarang Anda akan memulai tab Cloud Shell lain dengan mengklik ikon plus (+). Anda akan menggunakan shell ini untuk terhubung ke proxy Cloud SQL.
- Jalankan perintah berikut untuk membuka direktori
sql-with-terraform:
cd ~/sql-with-terraform
- Dapatkan sandi yang dihasilkan untuk MYSQL dengan perintah berikut:
echo MYSQL_PASSWORD=$(terraform output -json | jq -r '.generated_user_password.value')
- Jalankan perintah berikut untuk menguji koneksi MySQL:
mysql -udefault -p --host 127.0.0.1 default
-
Saat diminta, masukkan nilai MYSQL_PASSWORD, yang ditemukan di output di atas, lalu tekan ENTER.
-
Anda seharusnya dapat login ke command line MYSQL. Keluar dari MYSQL dengan menekan CTRL+D.
Jika Anda kembali ke tab Cloud Shell pertama, Anda akan melihat log untuk koneksi yang dibuat ke Proxy Cloud SQL.
Tugas 7. Menguji pemahaman Anda
Di bawah ini terdapat beberapa pertanyaan pilihan ganda untuk memperkuat pemahaman Anda tentang konsep-konsep dalam lab ini. Jawab pertanyaan tersebut sebaik mungkin.
Selamat!
Di lab ini, Anda menggunakan Terraform untuk membuat instance Cloud SQL dan menyiapkan Proxy Cloud SQL. Kemudian, Anda menguji koneksi antara keduanya dengan klien MySQL.
Langkah berikutnya/Pelajari lebih lanjut
Baca informasi tentang cara mengelola project Google Cloud dengan Terraform
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 29 Agustus 2025
Lab Terakhir Diuji pada 13 Oktober 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.