Membuat database AlloyDB dengan Tugas Cloud Run

1. Ringkasan

Di lab ini, Anda akan membuat database AlloyDB dengan Cloud Run Job. Anda akan mengonfigurasi Akses layanan pribadi dan Akses VPC serverless untuk mengaktifkan konektivitas antara Cloud Run Job dan Database AlloyDB menggunakan IP Pribadi.

Yang akan Anda pelajari

Di lab ini, Anda akan mempelajari cara melakukan hal-hal berikut:

  • Menyiapkan cluster dan instance AlloyDB
  • Men-deploy Tugas Cloud Run untuk membuat database AlloyDB

2. Penyiapan dan Persyaratan

Penyiapan Project Cloud

  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.

b35bf95b8bf3d5d8.png

a99b7ace416376c4.png

bd84a6d3004737c5.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 harus unik di semua project Google Cloud dan tidak dapat diubah (tidak dapat diubah setelah ditetapkan). Cloud Console otomatis membuat string unik; biasanya Anda tidak peduli tentang apa itu. Di sebagian besar codelab, Anda harus mereferensikan Project ID (biasanya diidentifikasi sebagai PROJECT_ID). Jika Anda tidak menyukai ID yang dihasilkan, 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 akan tetap ada 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 seharusnya tidak memerlukan banyak biaya, bahkan mungkin tidak sama sekali. Untuk mematikan resource agar tidak menimbulkan penagihan di luar tutorial ini, Anda dapat menghapus resource yang dibuat atau menghapus seluruh project. Pengguna baru Google Cloud memenuhi syarat untuk mengikuti program Uji Coba Gratis senilai $300 USD.

Penyiapan Lingkungan

Aktifkan Cloud Shell dengan mengklik ikon di sebelah kanan kotak penelusuran.

eb0157a992f16fa3.png

Untuk mengaktifkan API layanan, salin dan tempel perintah di bawah ke terminal lalu tekan Enter:

gcloud services enable \
    alloydb.googleapis.com \
    artifactregistry.googleapis.com \
    cloudbuild.googleapis.com \
    run.googleapis.com \
    vpcaccess.googleapis.com \
    compute.googleapis.com \
    servicenetworking.googleapis.com \
    --quiet

Menetapkan variabel lingkungan:

export PROJECT_ID=$(gcloud config get-value project)
export PROJECT_NUMBER=$(gcloud projects describe $PROJECT_ID --format='value(projectNumber)')
export PROJECT_NAME=$(gcloud projects describe $PROJECT_ID --format='value(name)')
export DB_DATABASE=test
export DB_USER=postgres
export DB_PASSWORD=password123
export REGION=us-central1
export CLUSTER=test-cluster
export INSTANCE=test-instance
export VPC_CONNECTOR=vpcconnector

3. Siapkan dan Buat cluster AlloyDB

Tetapkan izin yang diperlukan untuk penyiapan. Tindakan ini akan memungkinkan Cloud Run Job terhubung ke database AlloyDB.

gcloud projects add-iam-policy-binding $PROJECT_NAME \
  --member="serviceAccount:$PROJECT_NUMBER-compute@developer.gserviceaccount.com" \
  --role="roles/alloydb.client"

Mengonfigurasi akses layanan Pribadi

Akses layanan pribadi diterapkan sebagai koneksi peering VPC antara jaringan VPC Anda dan jaringan VPC Google Cloud dasar tempat resource AlloyDB Anda (cluster dan instance) berada. Koneksi pribadi memungkinkan resource di jaringan VPC Anda berkomunikasi dengan resource AlloyDB yang mereka akses secara eksklusif menggunakan alamat IP internal. Resource di jaringan VPC Anda tidak memerlukan akses Internet atau alamat IP eksternal untuk mencapai resource AlloyDB.

Untuk membuat konfigurasi akses layanan pribadi dalam jaringan VPC yang berada di project Cloud yang sama dengan AlloyDB, Anda harus melakukan dua operasi:

Buat rentang alamat IP yang dialokasikan di jaringan VPC.

gcloud compute addresses create google-managed-services-default \
    --global \
    --purpose=VPC_PEERING \
    --prefix-length=20 \
    --network=projects/$PROJECT_ID/global/networks/default

Membuat koneksi pribadi antara jaringan VPC dan jaringan VPC Google Cloud yang mendasarinya. Langkah ini memerlukan waktu ~2 menit.

gcloud services vpc-peerings connect \
    --service=servicenetworking.googleapis.com \
    --ranges=google-managed-services-default \
    --network=default \
    --project=$PROJECT_ID

Buat cluster AlloyDB.

gcloud beta alloydb clusters create $CLUSTER \
    --password=$DB_PASSWORD \
    --network=default \
    --region=$REGION \
    --project=$PROJECT_NAME

gcloud beta alloydb clusters describe $CLUSTER --region=$REGION

Buat instance AlloyDB. Langkah ini memerlukan waktu ~10 menit.

gcloud beta alloydb instances create $INSTANCE \
    --cluster=$CLUSTER \
    --region=$REGION \
    --instance-type=PRIMARY \
    --cpu-count=2 \
    --project=$PROJECT_NAME

gcloud beta alloydb instances describe $INSTANCE \
    --cluster=$CLUSTER \
    --region $REGION

Tinjau cluster yang dibuat di Cloud Console.

568d273c0e0d6408.pngS

Simpan alamat IP database ke dalam variabel.""

export DB_HOST=$(gcloud beta alloydb instances describe $INSTANCE \
    --cluster=$CLUSTER \
    --region=$REGION \
    --format=json | jq \
    --raw-output ".ipAddress")

echo "DB_HOST=$DB_HOST"

4. Mempelajari kode Tugas Cloud Run

Ada beberapa cara untuk membuat database AlloyDB. Salah satunya adalah membuat VM Compute Engine, menginstal klien psql, lalu terhubung ke instance untuk membuat database. Anda dapat membaca selengkapnya tentang pendekatan ini di sini.

Di lab ini, Anda akan membuat database AlloyDB baru menggunakan Tugas Cloud Run.

Tinjau file di bawah:

  • Dockerfile - menginstal dependensi yang diperlukan(postgresql-client)
  • skrip.sh - menggunakan utilitas command line untuk membuat database

Di Cloud Shell, buat folder baru:

mkdir ~/alloy-db-cloud-run-job
cd ~/alloy-db-cloud-run-job 

Buat file baru Dockerfile:

cat > Dockerfile <<EOF
FROM ubuntu:latest
RUN apt-get update && apt-get install -y postgresql-client && apt-get clean
COPY script.sh /
RUN chmod +x /script.sh
CMD ["/script.sh"]
ENTRYPOINT ["/bin/bash"]
EOF

Buat file baru script.sh dengan konten di bawah ini:

echo "Connecting to $DB_HOST"
createdb -h $DB_HOST -p 5432 $PGDB
echo "Created $PGDB database"

psql -h $DB_HOST -l

Ubah izin di script.sh:

chmod +x script.sh

5. Men-deploy Tugas Cloud Run

Konfigurasikan Akses VPC serverless. Hal ini memungkinkan Cloud Run Job berkomunikasi dengan cluster AlloyDB menggunakan IP internal/pribadi. Langkah ini memerlukan waktu ~2 menit.

gcloud compute networks vpc-access connectors create ${VPC_CONNECTOR} \
    --region=${REGION} \
    --range=10.8.0.0/28

Buat repositori Artifact Registry untuk menyimpan image container.

gcloud artifacts repositories create db-job-repository \
  --repository-format=docker \
  --location=$REGION

Bangun dan publikasikan image container ke Artifact Registry.

gcloud builds submit -t $REGION-docker.pkg.dev/$PROJECT_NAME/db-job-repository/db-job:latest

Men-deploy Tugas Cloud Run.

gcloud beta run jobs create db-job \
    --image=$REGION-docker.pkg.dev/$PROJECT_NAME/db-job-repository/db-job:latest \
    --set-env-vars DB_HOST=$DB_HOST \
    --set-env-vars PGUSER=$DB_USER \
    --set-env-vars PGPASSWORD=$DB_PASSWORD \
    --set-env-vars PGDB=$DB_DATABASE \
    --vpc-connector $VPC_CONNECTOR \
    --region $REGION

Meninjau tanda yang digunakan untuk membuat tugas:

--vpc-connector - Tugas Cloud Run akan menggunakan konektor VPC untuk mencapai alamat IP Pribadi AlloyDB.

Tinjau tugas yang dibuat di Cloud Console.

93d8224eca8c687f.pngS

Jalankan Tugas Cloud Run untuk membuat database test.

gcloud beta run jobs execute db-job --region $REGION

Tinjau log Tugas Cloud Run di Cloud Console.

3f2269736b53f44c.pngS

6. Selamat!

Selamat, Anda telah menyelesaikan codelab!

Yang telah kita bahas:

  • Cara membuat cluster dan instance AlloyDB
  • Cara membuat database AlloyDB menggunakan Tugas Cloud Run

Pembersihan

Agar tidak menimbulkan biaya pada akun Google Cloud Anda untuk resource yang digunakan dalam tutorial ini, hapus project yang berisi resource, atau simpan project dan hapus resource satu per satu.

Menghapus project

Cara termudah untuk menghilangkan penagihan adalah dengan menghapus project yang Anda buat untuk tutorial.