Membuat instance

Halaman ini menjelaskan cara membuat instance Cloud SQL untuk PostgreSQL.

Untuk mengetahui informasi mendetail tentang semua setelan instance, lihat Setelan instance.

Instance yang baru dibuat memiliki database postgres.

Sebelum memulai

  1. Login ke akun Google Cloud Anda. Jika Anda baru menggunakan Google Cloud, buat akun untuk mengevaluasi performa produk kami dalam skenario dunia nyata. Pelanggan baru juga mendapatkan kredit gratis senilai $300 untuk menjalankan, menguji, dan men-deploy workload.
  2. Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.

    Buka pemilih project

  3. Pastikan penagihan telah diaktifkan untuk project Google Cloud Anda.

  4. Menginstal Google Cloud CLI.
  5. Untuk initialize gcloud CLI, jalankan perintah berikut:

    gcloud init
  6. Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.

    Buka pemilih project

  7. Pastikan penagihan telah diaktifkan untuk project Google Cloud Anda.

  8. Menginstal Google Cloud CLI.
  9. Untuk initialize gcloud CLI, jalankan perintah berikut:

    gcloud init
  10. Pastikan Anda memiliki peran Admin Cloud SQL dan Compute Viewer di akun pengguna.

    Buka halaman IAM

    Pelajari lebih lanjut tentang peran dan perizinan

Buat instance PostgreSQL

Konsol

  1. Di konsol Google Cloud, buka halaman Instance Cloud SQL.

    Buka Instance Cloud SQL

  2. Klik Create instance.
  3. Di panel Choose your database engine pada halaman Create an instance, klik Choose PostgreSQL.
  4. Di kolom Instance ID pada panel Instance info, masukkan ID untuk instance Anda.

    Anda tidak perlu menyertakan project ID dalam nama instance. Hal ini dilakukan secara otomatis jika sesuai (misalnya, di file log).

  5. Masukkan sandi untuk pengguna postgres.
  6. Untuk melihat sandi dalam teks yang jelas, klik ikon Tampilkan sandi.

    Anda dapat memasukkan sandi secara manual atau mengklik Buat agar Cloud SQL membuat sandi untuk Anda secara otomatis.
  7. Opsional: Konfigurasikan kebijakan sandi untuk instance sebagai berikut:

    1. Centang kotak Aktifkan kebijakan sandi.
    2. Klik tombol Siapkan kebijakan sandi, tetapkan satu atau beberapa opsi berikut, lalu klik Save.
      • Panjang minimum: Menentukan jumlah karakter minimum yang harus dimiliki oleh sandi.
      • Kompleksitas sandi: periksa apakah sandi merupakan kombinasi karakter huruf kecil, huruf besar, numerik, dan non-alfanumerik.
      • Batasi penggunaan ulang sandi: Menentukan jumlah sandi sebelumnya yang tidak dapat Anda gunakan kembali.
      • Larang nama pengguna: Mencegah penggunaan nama pengguna dalam sandi.
      • Tetapkan interval perubahan sandi: Menentukan jumlah jam minimum yang diperlukan untuk mengubah sandi.
  8. Pilih versi database untuk instance Anda: PostgreSQL 15 (default), PostgreSQL 14,
    PostgreSQL 13, PostgreSQL 12, PostgreSQL 11, PostgreSQL 10, atau PostgreSQL 9.6.

    Versi database tidak dapat diedit setelah instance dibuat.

  9. .Pilih edisi Cloud SQL untuk instance Anda: Enterprise atau Enterprise plus. Untuk informasi selengkapnya tentang edisi Cloud SQL, lihat Pengantar edisi Cloud SQL.
  10. Pada bagian Pilih region dan ketersediaan zona, pilih region dan zona untuk instance Anda. Ketersediaan region mungkin berbeda berdasarkan edisi Cloud SQL Anda. Untuk informasi selengkapnya, lihat Tentang setelan instance.

    Tempatkan instance Anda di region yang sama dengan resource yang mengaksesnya. Region yang dipilih tidak dapat diubah pada masa mendatang. Pada umumnya, Anda tidak perlu menentukan zona.

    Jika mengonfigurasi instance untuk ketersediaan tinggi, Anda dapat memilih zona utama dan sekunder.

    Kondisi berikut berlaku jika zona sekunder digunakan selama pembuatan instance:

    • Zona secara default ditetapkan keAny untuk zona utama dan Any (different from primary) untuk zona sekunder.
    • Jika zona utama dan sekunder ditentukan, keduanya harus berada di zona yang berbeda.
  11. Pada bagian Sesuaikan instance, perbarui setelan untuk instance Anda. Mulailah dengan mengklik TAMPILKAN OPSI KONFIGURASI untuk menampilkan grup setelan. Kemudian, perluas grup yang diinginkan untuk meninjau dan menyesuaikan setelannya. Ringkasan semua opsi yang telah dipilih ditampilkan di sebelah kanan. Penyesuaian setelan instance ini bersifat opsional. Default ditetapkan di setiap kasus ketika tidak ada penyesuaian yang dilakukan.

    Tabel berikut adalah referensi cepat untuk setelan instance. Untuk mengetahui detail selengkapnya tentang setiap setelan, lihat halaman setelan instance.

    Setelan Notes
    Machine type
    Machine type Pilih dari Shared core atau Dedicated core. Untuk Shared core, setiap jenis mesin diklasifikasikan berdasarkan jumlah CPU (cores) dan jumlah memori untuk instance Anda.
    Cores Jumlah vCPU untuk instance Anda. Pelajari lebih lanjut.
    Memori Jumlah memori untuk instance Anda, dalam GB. Pelajari lebih lanjut.
    Kustom Untuk jenis mesin Dedicated core, daripada memilih konfigurasi yang telah ditetapkan, pilih tombol Khusus untuk membuat instance dengan konfigurasi kustom. Saat memilih opsi ini, Anda harus memilih jumlah inti dan jumlah memori untuk instance. Pelajari lebih lanjut.
    Penyimpanan
    Jenis penyimpanan Tentukan apakah instance Anda menggunakan penyimpanan SSD atau HDD. Pelajari lebih lanjut.
    Kapasitas penyimpanan Jumlah penyimpanan yang disediakan untuk instance. Pelajari lebih lanjut.
    Aktifkan peningkatan penyimpanan otomatis Menentukan apakah Cloud SQL menyediakan lebih banyak penyimpanan secara otomatis untuk instance Anda saat ruang kosong hampir habis. Pelajari lebih lanjut.
    Enkripsi
    Enkripsi yang dikelola GoogleOpsi default.
    Kunci enkripsi yang dikelola pelanggan (CMEK)Pilih untuk menggunakan kunci Anda dengan Google Cloud Key Management Service. Pelajari lebih lanjut.
    Koneksi
    IP Pribadi Menambahkan alamat IP pribadi untuk instance Anda. Untuk memungkinkan koneksi ke instance, diperlukan konfigurasi tambahan.
    Secara opsional, Anda dapat menentukan rentang IP yang dialokasikan untuk instance yang akan digunakan pada koneksi.
    1. Perluas Opsi tampilkan rentang IP yang dialokasikan.
    2. Pilih rentang IP dari menu drop-down.

    Instance Anda dapat memiliki alamat IP publik dan pribadi.

    IP Publik Menambahkan alamat IP publik untuk instance Anda. Selanjutnya, Anda dapat menambahkan jaringan yang diizinkan untuk terhubung ke instance.

    Instance Anda dapat memiliki alamat IP publik dan pribadi.

    Pelajari lebih lanjut cara menggunakan IP publik.

    Jaringan yang diizinkanTambahkan nama untuk jaringan baru dan Alamat jaringan. Pelajari lebih lanjut.
    Jalur pribadi untuk layanan Google Cloud

    Dengan mencentang kotak ini, Anda mengizinkan layanan Google Cloud lainnya, seperti BigQuery, untuk mengakses data di Cloud SQL dan membuat kueri terhadap data ini melalui koneksi pribadi.

    Perlindungan data
    Otomatiskan pencadangan Periode waktu saat Anda ingin pencadangan dimulai. Pelajari lebih lanjut.
    Pilih tempat untuk menyimpan cadangan AndaPilih Multi-region untuk sebagian besar kasus penggunaan. Jika Anda perlu menyimpan cadangan di region tertentu, misalnya, jika ada alasan peraturan untuk melakukannya, pilih Region kemudian pilih region Anda dari menu drop-down Lokasi.
    Pilih jumlah cadangan yang akan disimpanJumlah cadangan otomatis yang ingin Anda pertahankan (dari 1 hingga 365 hari). Pelajari lebih lanjut.
    Aktifkan pemulihan point-in-time Mengaktifkan pemulihan point-in-time dan write-ahead logging. Pelajari lebih lanjut.
    Aktifkan perlindungan penghapusan Menentukan apakah akan melindungi instance dari penghapusan yang tidak disengaja. Pelajari lebih lanjut.
    Pilih jumlah hari untuk log yang akan disimpan Mengonfigurasi retensi write-ahead log dari 1 hingga 7 hari. Setelan defaultnya yakni 7 hari. Pelajari lebih lanjut.
    Pemeliharaan
    Periode pilihan Menentukan periode satu jam ketika Cloud SQL dapat melakukan pemeliharaan yang mengganggu pada instance Anda. Jika Anda tidak menyetel periode ini, pemeliharaan yang mengganggu dapat dilakukan kapan saja. Pelajari lebih lanjut.
    Urutan update Waktu yang Anda pilih untuk update instance, relatif terhadap instance lain dalam project yang sama. Pelajari lebih lanjut.
    Tanda
    Tambahkan tanda Anda dapat menggunakan tanda database untuk mengontrol setelan dan parameter untuk instance. Pelajari lebih lanjut.
    Label
    TAMBAHKAN LABELTambahkan kunci dan nilai untuk setiap label yang ditambahkan. Anda menggunakan label untuk membantu mengatur instance.
    Cache data
    Aktifkan cache data (opsional) Mengaktifkan cache data untuk Cloud SQL untuk instance edisi PostgreSQL Enterprise Plus. Untuk mengetahui informasi selengkapnya tentang cache data, lihat cache data.
  12. Klik Create Instance.

    Catatan: Mungkin diperlukan waktu beberapa menit untuk membuat instance. Namun, Anda dapat melihat informasi tentang instance saat sedang dibuat.

gcloud

Untuk mengetahui informasi cara menginstal dan memulai gcloud CLI, lihat Menginstal gcloud CLI. Untuk mengetahui informasi cara memulai Cloud Shell, lihat dokumentasi Cloud Shell.

  1. Gunakan perintah gcloud sql instances create untuk membuat instance:
    Untuk instance edisi Cloud SQL Enterprise Plus:
    gcloud sql instances create INSTANCE_NAME \
    --database-version=POSTGRES_14 \
    --region=REGION \
    --zone=ZONE \
    --tier=TIER \
    --edition=ENTERPRISE_PLUS

    Untuk instance edisi Cloud SQL Enterprise:
    gcloud sql instances create INSTANCE_NAME \
    --database-version=POSTGRES_14 \
    --cpu=NUMBER_CPUS \
    --memory=MEMORY_SIZE \
    --region=REGION \
    --zone=ZONE
    Sebagai alternatif, Anda dapat menggunakan tanda --tier jika memilih db-f1-micro atau db-g1-small sebagai jenis mesin:
    gcloud sql instances create INSTANCE_NAME \
    --tier=API_TIER_STRING \
    --region=REGION

    vCPU dan ukuran memori memiliki batasan nilai:

    • vCPU harus berupa 1 atau bilangan genap antara 2 dan 96.
    • Memori harus:
      • 0,9 hingga 6,5 GB per vCPU
      • Kelipatan 256 MB
      • Setidaknya 3,75 GB (3840 MB)

    Misalnya, string berikut akan membuat instance edisi Cloud SQL Enterprise dengan dua vCPU dan memori 7,680 MB:

    gcloud sql instances create myinstance \
    --database-version=POSTGRES_14 \
    --cpu=2 \
    --memory=7680MB \
    --region=us-central1

    String berikut akan membuat instance edisi Cloud SQL Enterprise dengan empat inti:

    gcloud sql instances create myinstance \
    --database-version=POSTGRES_14 \
    --tier=db-perf-optimized-N-4 \
    --edition=ENTERPRISE_PLUS \
    --region=us-central1
    Lihat Konfigurasi instance kustom untuk informasi selengkapnya tentang cara menentukan ukuran --cpu dan --memory.

    Nilai default untuk REGION adalah us-central1.

    Jangan menyertakan informasi sensitif atau informasi identitas pribadi dalam nama instance Anda; terlihat secara eksternal.
    Anda tidak perlu menyertakan project ID dalam nama instance. Hal ini dilakukan secara otomatis jika sesuai (misalnya, di file log).

    Jika membuat instance untuk ketersediaan tinggi, Anda dapat menentukan zona utama dan sekunder menggunakan parameter --zone dan --secondary-zone. Kondisi berikut berlaku jika zona sekunder digunakan selama pembuatan atau pengeditan instance:

    • Zona harus berupa zona yang valid.
    • Jika zona sekunder ditentukan, zona utama juga harus ditentukan.
    • Jika zona utama dan sekunder ditentukan, zona tersebut harus berbeda.
    • Jika zona utama dan sekunder ditentukan, zona tersebut harus berada di region yang sama.

    Anda dapat menambahkan parameter lainnya untuk menentukan setelan instance lainnya:

    Setelan Parameter Notes
    Parameter yang diperlukan
    Versi database --database-version Versi database, yang didasarkan pada edisi Cloud SQL Anda.
    Region --region Lihat nilai yang valid.
    Menetapkan kebijakan sandi
    Aktifkan kebijakan sandi --enable-password-policy Mengaktifkan kebijakan sandi saat digunakan. Secara default, kebijakan sandi dinonaktifkan. Jika dinonaktifkan menggunakan parameter --clear-password-policy, parameter kebijakan sandi lainnya akan direset.
    Panjang minimum --password-policy-min-length Menentukan jumlah karakter minimum yang harus dimiliki sandi.
    Kerumitan sandi --password-policy-complexity Mengaktifkan pemeriksaan kerumitan sandi untuk memastikan bahwa sandi berisi salah satu dari setiap jenis karakter berikut: huruf kecil, huruf besar, numerik, dan non-alfanumerik. Tetapkan nilai ke COMPLEXITY_DEFAULT.
    Batasi penggunaan kembali sandi --password-policy-reuse-interval Menentukan jumlah sandi sebelumnya yang tidak dapat Anda gunakan kembali.
    Larang nama pengguna --password-policy-disallow-username-substring Mencegah penggunaan nama pengguna dalam sandi. Gunakan parameter --no-password-policy-disallow-username-substring untuk menonaktifkan pemeriksaan tersebut.
    Atur interval perubahan sandi --password-policy-password-change-interval Menentukan durasi minimum yang setelahnya Anda dapat mengubah sandi, misalnya, 2 mnt selama 2 menit.
    Konektivitas
    IP Pribadi --network

    --no-assign-ip (opsional)

    --allocated-ip-range-name (opsional)

    --enable-google-private-path (opsional)

    --network: Menentukan nama jaringan VPC yang ingin Anda gunakan untuk instance ini. Akses layanan pribadi harus sudah dikonfigurasi untuk jaringan tersebut.ork. Hanya tersedia untuk perintah beta (gcloud beta sql instances create).

    --no-assign-ip: Instance hanya akan memiliki alamat IP pribadi.

    --allocated-ip-range-name: Jika telah ditentukan, tetapkan nama rentang untuk rentang IP yang dialokasikan. Contoh , google-managed-services-default. Nama rentang harus sesuai dengan RFC-1035 dan terdiri dari 1-63 karakter. (gcloud alpha sql instances create).

    --enable-google-private-path: Jika menggunakan parameter ini, berarti Anda mengizinkan layanan Google Cloud lainnya, seperti BigQuery, untuk mengakses data di Cloud SQL dan membuat kueri terhadap data ini melalui koneksi pribadi.

    Parameter ini hanya valid jika:

    • Anda menggunakan parameter --no-assign-ip.
    • Gunakan parameter --network untuk menentukan nama jaringan VPC yang ingin Anda gunakan untuk membuat koneksi pribadi.

    Pelajari lebih lanjut cara mengonfigurasi IP pribadi.

    IP Publik --authorized-networks Untuk koneksi IP publik, hanya koneksi dari jaringan yang diizinkan yang dapat terhubung ke instance Anda. Pelajari lebih lanjut.
    Penerapan SSL

    --ssl-mode

    --require-ssl

    Parameter ssl-mode memberlakukan penerapan SSL/TLS untuk koneksi. Untuk mengetahui informasi selengkapnya, lihat Setelan Cloud SQL untuk PostgreSQL.

    Parameter require-ssl menentukan apakah koneksi SSL melalui IP diterapkan atau tidak. require-ssl adalah parameter lama. Sebagai gantinya, gunakan ssl-mode. Untuk mengetahui informasi selengkapnya, lihat IpConfiguration.

    Jenis mesin dan penyimpanan
    Machine type --tier Digunakan untuk menentukan instance dengan shared-core (db-f1-micro atau db-g1-small). Untuk konfigurasi instance kustom, gunakan parameter --cpu atau --memory sebagai gantinya. Lihatkonfigurasi instance kustom.
    Jenis penyimpanan --storage-type Tentukan apakah instance Anda menggunakan penyimpanan SSD atau HDD. Pelajari lebih lanjut.
    Kapasitas penyimpanan --storage-size Jumlah penyimpanan yang disediakan untuk instance, dalam GB. Pelajari lebih lanjut.
    Peningkatan Penyimpanan Otomatis --storage-auto-increase Menentukan apakah Cloud SQL menyediakan lebih banyak penyimpanan secara otomatis untuk instance Anda saat ruang kosong hampir habis. Pelajari lebih lanjut.
    Batas peningkatan penyimpanan otomatis --storage-auto-increase-limit Tentukan seberapa besar Cloud SQL dapat meningkatkan penyimpanan secara otomatis. Hanya tersedia untuk perintah beta (gcloud beta sql instances create). Pelajari lebih lanjut.
    Cache data (opsional) --enable-data-cache Mengaktifkan atau menonaktifkan cache data untuk instance. Untuk informasi selengkapnya, lihat cache data.
    Pencadangan otomatis dan ketersediaan tinggi
    Ketersediaan tinggi --availability-type Untuk instance dengan ketersediaan tinggi, tetapkan ke REGIONAL. Pelajari lebih lanjut.
    Zona sekunder --secondary-zone ika membuat instance untuk ketersediaan tinggi, Anda dapat menentukan zona utama dan sekunder menggunakan --zone dan --secondary-zone parameters. Pembatasan berikut berlaku jika zona sekunder digunakan selama pembuatan atau pengeditan instance:
    • Zona harus berupa zona yang valid.
    • Jika zona sekunder ditentukan, zona utama juga harus ditentukan.
    • Jika zona utama dan sekunder ditentukan, zona tersebut harus berbeda.

      Jika zona utama dan sekunder ditentukan, zona tersebut harus berada di region yang sama.

    Backup otomatis --backup-start-time Periode waktu saat Anda ingin pencadangan dimulai. Pelajari lebih lanjut.
    Setelan retensi untuk cadangan otomatis --retained-backups-count Jumlah cadangan otomatis yang perlu dipertahankan. Pelajari lebih lanjut.
    Pemulihan point-in-time --enable-point-in-time recovery Mengaktifkan pemulihan point-in-time dan logging tulis di depan. Pelajari lebih lanjut.
    Setelan retensi untuk logging biner --retained-transaction-log-days Jumlah hari untuk menyimpan log write-ahead untuk pemulihan point-in-time.Pelajari lebih lanjut.
    Tambahkan tanda database
    Tanda database --database-flags Anda dapat menggunakan tanda database untuk mengontrol setelan dan parameter untuk instance. Pelajari flag database lebih lanjut.
    Jadwal pemeliharaan
    Masa pemeliharaan --maintenance-window-day,
    --maintenance-window-hour
    Menentukan periode satu jam kapan Cloud SQL dapat melakukan pemeliharaan yang mengganggu pada instance Anda. Jika Anda tidak menyetel periode, maka pemeliharaan yang dapat mengganggu bisa dilakukan kapan saja. Pelajari lebih lanjut.
    Waktu pemeliharaan --maintenance-release-channel Waktu yang Anda pilih untuk update instance, relatif terhadap instance lain dalam project yang sama. Gunakan preview untuk update sebelumnya, dan production untuk update berikutnya. Pelajari lebih lanjut.
    Integrasi dengan Vertex AI
    --enable-google-ml-integration Memungkinkan instance Cloud SQL terhubung ke Vertex AI untuk meneruskan permintaan prediksi real-time dan insight ke AI.
    --database-flags cloudsql.enable_google_ml_integration=on Dengan mengaktifkan flag ini, Cloud SQL dapat berintegrasi dengan Vertex AI.

  2. Catat alamat IP yang ditetapkan secara otomatis.

    Jika tidak menggunakan Proxy Auth Cloud SQL, Anda akan menggunakan alamat ini sebagai alamat host yang digunakan aplikasi atau alat Anda untuk terhubung ke instance.

  3. Setel sandi untuk pengguna postgres:
    gcloud sql users set-password postgres \
    --instance=INSTANCE_NAME \
    --password=PASSWORD

Terraform

Untuk membuat instance, gunakan resource Terraform.

resource "google_sql_database_instance" "postgres_pvp_instance_name" {
  name             = "postgres-pvp-instance-name"
  region           = "asia-northeast1"
  database_version = "POSTGRES_14"
  root_password    = "abcABC123!"
  settings {
    tier = "db-custom-2-7680"
    password_validation_policy {
      min_length                  = 6
      reuse_interval              = 2
      complexity                  = "COMPLEXITY_DEFAULT"
      disallow_username_substring = true
      password_change_interval    = "30s"
      enable_password_policy      = true
    }
  }
  # set `deletion_protection` to true, will ensure that one cannot accidentally delete this instance by
  # use of Terraform whereas `deletion_protection_enabled` flag protects this instance at the GCP level.
  deletion_protection = false
}

Menerapkan perubahan

Untuk menerapkan konfigurasi Terraform di project Google Cloud, selesaikan langkah-langkah di bagian berikut.

Menyiapkan Cloud Shell

  1. Luncurkan Cloud Shell.
  2. Tetapkan project Google Cloud default tempat Anda ingin menerapkan konfigurasi Terraform.

    Anda hanya perlu menjalankan perintah ini sekali per project, dan dapat dijalankan di direktori mana pun.

    export GOOGLE_CLOUD_PROJECT=PROJECT_ID

    Variabel lingkungan akan diganti jika Anda menetapkan nilai eksplisit dalam file konfigurasi Terraform.

Menyiapkan direktori

Setiap file konfigurasi Terraform harus memiliki direktorinya sendiri (juga disebut modul root).

  1. Di Cloud Shell, buat direktori dan file baru di dalam direktori tersebut. Nama file harus memiliki ekstensi .tf—misalnya main.tf. Dalam tutorial ini, file ini disebut sebagai main.tf.
    mkdir DIRECTORY && cd DIRECTORY && touch main.tf
  2. Jika mengikuti tutorial, Anda dapat menyalin kode contoh di setiap bagian atau langkah.

    Salin kode contoh ke dalam main.tf yang baru dibuat.

    Atau, salin kode dari GitHub. Tindakan ini direkomendasikan jika cuplikan Terraform adalah bagian dari solusi menyeluruh.

  3. Tinjau dan ubah contoh parameter untuk diterapkan pada lingkungan Anda.
  4. Simpan perubahan Anda.
  5. Lakukan inisialisasi Terraform. Anda hanya perlu melakukan ini sekali per direktori.
    terraform init

    Secara opsional, untuk menggunakan versi penyedia Google terbaru, sertakan opsi -upgrade:

    terraform init -upgrade

Menerapkan perubahan

  1. Tinjau konfigurasi dan pastikan resource yang akan dibuat atau diupdate oleh Terraform sesuai yang Anda inginkan:
    terraform plan

    Koreksi konfigurasi jika diperlukan.

  2. Terapkan konfigurasi Terraform dengan menjalankan perintah berikut dan memasukkan yes pada prompt:
    terraform apply

    Tunggu hingga Terraform menampilkan pesan "Apply complete!".

  3. Buka project Google Cloud Anda untuk melihat hasilnya. Di Konsol Google Cloud, buka resource Anda di UI untuk memastikan bahwa Terraform telah membuat atau mengupdatenya.

Menghapus perubahan

Untuk menghapus perubahan Anda, lakukan langkah-langkah berikut:

  1. Untuk menonaktifkan perlindungan penghapusan, di file konfigurasi Terraform Anda, tetapkan argumen deletion_protection ke false.
    deletion_protection =  "false"
  2. Terapkan konfigurasi Terraform terbaru dengan menjalankan perintah berikut dan memasukkan yes pada perintah:
    terraform apply
  1. Hapus resource yang sebelumnya diterapkan dengan konfigurasi Terraform Anda dengan menjalankan perintah berikut dan memasukkan yes pada prompt:

    terraform destroy

REST v1

Buat instance

Contoh ini akan membuat sebuah instance. Beberapa parameter opsional, seperti cadangan dan logging biner juga disertakan. Untuk mengetahui daftar lengkap parameter panggilan ini, lihat halaman Instances:insert. Untuk mengetahui informasi tentang setelan instance, termasuk nilai yang valid untuk region, lihat Setelan instance.

Jangan menyertakan informasi sensitif atau informasi identitas pribadi di ID instance Anda; karena informasi tersebut terlihat dari luar.
Anda tidak perlu menyertakan project ID dalam nama instance. Hal ini dilakukan secara otomatis jika sesuai (misalnya, di file log).

Sebelum menggunakan data permintaan lain, buat pengganti berikut:

  • PROJECT_ID: project ID Anda.
  • INSTANCE_ID: ID instance Anda
  • REGION: Region
  • DATABASE_VERSION: string enum versi database. Contoh: POSTGRES_13
  • PASSWORD: sandi untuk pengguna root
  • MACHINE_TYPE: string enum jenis mesin (tingkat), seperti: db-custom-[CPUS]-[MEMORY_MBS]
  • EDITION_TYPE: edisi Cloud SQL Anda
  • DATA_CACHE_ENABLED: (opsional) ditetapkan ke true untuk mengaktifkan cache data untuk instance Anda
  • PRIVATE_NETWORK: Tentukan nama jaringan Virtual Private Cloud (VPC) yang ingin Anda gunakan untuk instance ini. Akses layanan pribadi harus sudah dikonfigurasi untuk jaringan tersebut.
  • AUTHORIZED_NETWORKS: Untuk koneksi IP publik, tentukan koneksi dari jaringan resmi yang dapat terhubung ke instance Anda.

Untuk menetapkan kebijakan sandi saat membuat instance, sertakan objek passwordValidationPolicy dalam permintaan. Tetapkan parameter berikut, jika diperlukan:

  • enablePasswordPolicy: Mengaktifkan kebijakan sandi saat disetel ke true.

    Untuk menghapus kebijakan sandi, Anda dapat menggunakan permintaan PATCH dengan null sebagai nilai untuk enablePasswordPolicy. Dalam kasus ini, parameter kebijakan sandi lainnya akan diatur ulang.

  • minLength: Menentukan jumlah karakter minimum yang harus dimiliki sandi.
  • complexity: Memeriksa apakah sandi merupakan kombinasi karakter huruf kecil, huruf besar, angka, dan non-alfanumerik. Nilai defaultnya adalah COMPLEXITY_DEFAULT.
  • reuseInterval: Menentukan jumlah sandi sebelumnya yang tidak dapat Anda gunakan kembali.
  • disallowUsernameSubstring: Mencegah penggunaan nama pengguna dalam sandi ketika ditetapkan ke true.
  • passwordChangeInterval: Menentukan durasi minimum setelah Anda dapat mengubah sandi. Nilai dalam detik dengan maksimal sembilan digit pecahan, yang diakhiri dengan s. Misalnya, 3.5s.

Untuk membuat instance agar dapat terintegrasi dengan Vertex AI, sertakan objek enableGoogleMlIntegration dalam permintaan. Dengan integrasi ini, Anda dapat menerapkan model bahasa besar (LLM), yang dihosting di Vertex AI, ke database Cloud SQL untuk PostgreSQL.

Tetapkan parameter berikut, jika diperlukan:

  • enableGoogleMlIntegration: jika parameter ini ditetapkan ke true, instance Cloud SQL dapat terhubung ke Vertex AI untuk meneruskan permintaan prediksi real-time dan insight ke AI
  • cloudsql.enable_google_ml_integration: jika parameter ini ditetapkan ke on, Cloud SQL dapat berintegrasi dengan Vertex AI

Metode HTTP dan URL:

POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances

Meminta isi JSON:

{
  "name": "INSTANCE_ID",
  "region": "REGION",
  "databaseVersion": "DATABASE_VERSION",
  "rootPassword": "PASSWORD",
  "settings": {
    "tier": "MACHINE_TYPE",
    "edition": "EDITION_TYPE",
    "enableGoogleMlIntegration": "true" | "false"
    "databaseFlags":
    [
      {
        "name": "cloudsql.enable_google_ml_integration",
        "value": "on" | "off"
      }
    ]
    "dataCacheConfig" = {
      "dataCacheEnabled": DATA_CACHE_ENABLED
    },
    "backupConfiguration": {
      "enabled": true
    },
    "passwordValidationPolicy": {
      "enablePasswordPolicy": true
      "minLength": "MIN_LENGTH",
      "complexity": COMPLEXITY_DEFAULT,
      "reuseInterval": "REUSE_INTERVAL",
      "disallowUsernameSubstring": "DISALLOW_USERNAME_SUBSTRING",
      "passwordChangeInterval": "PASSWORD_CHANGE_INTERVAL"
    }
    "ipConfiguration": {
      "privateNetwork": "PRIVATE_NETWORK",
      "authorizedNetworks": [AUTHORIZED_NETWORKS],
      "ipv4Enabled": false,
      "enablePrivatePathForGoogleCloudServices": true
    }
  }
}

Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:

Anda akan menerima respons JSON seperti berikut:

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID",
  "status": "PENDING",
  "user": "user@example.com",
  "insertTime": "2019-09-25T22:19:33.735Z",
  "operationType": "CREATE",
  "name": "OPERATION_ID",
  "targetId": "INSTANCE_ID",
  "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID",
  "targetProject": "PROJECT_ID"
}

Responsnya adalah operasi yang berjalan lama, yang mungkin memerlukan waktu beberapa menit untuk diselesaikan.

Mengambil alamat IPv4

Ambil alamat IPv4 yang ditetapkan secara otomatis untuk instance baru:

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • project-id: project ID Anda.
  • instance-id: ID instance yang dibuat di langkah sebelumnya

Metode HTTP dan URL:

GET https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id

Untuk mengirim permintaan, perluas salah satu opsi berikut:

Anda akan menerima respons JSON seperti berikut:

{
  "kind": "sql#instance",
  "state": "RUNNABLE",
  "databaseVersion": "MYSQL_8_0_18",
  "settings": {
    "authorizedGaeApplications": [],
    "tier": "db-f1-micro",
    "kind": "sql#settings",
    "pricingPlan": "PER_USE",
    "replicationType": "SYNCHRONOUS",
    "activationPolicy": "ALWAYS",
    "ipConfiguration": {
      "authorizedNetworks": [],
      "ipv4Enabled": true
    },
    "locationPreference": {
      "zone": "us-west1-a",
      "kind": "sql#locationPreference"
    },
    "dataDiskType": "PD_SSD",
    "backupConfiguration": {
      "startTime": "18:00",
      "kind": "sql#backupConfiguration",
      "enabled": true,
      "binaryLogEnabled": true
    },
    "settingsVersion": "1",
    "storageAutoResizeLimit": "0",
    "storageAutoResize": true,
    "dataDiskSizeGb": "10"
  },
  "etag": "--redacted--",
  "ipAddresses": [
    {
      "type": "PRIMARY",
      "ipAddress": "10.0.0.1"
    }
  ],
  "serverCaCert": {
    ...
  },
  "instanceType": "CLOUD_SQL_INSTANCE",
  "project": "project-id",
  "serviceAccountEmailAddress": "redacted@gcp-sa-cloud-sql.iam.gserviceaccount.com",
  "backendType": "SECOND_GEN",
  "selfLink": "https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id",
  "connectionName": "project-id:region:instance-id",
  "name": "instance-id",
  "region": "us-west1",
  "gceZone": "us-west1-a"
}

Cari kolom ipAddress dalam respons.

REST v1beta4

Buat instance

Contoh ini akan membuat sebuah instance. Beberapa parameter opsional, seperti cadangan dan logging biner juga disertakan. Untuk daftar lengkap parameter panggilan ini, lihat halaman instances:insert. Untuk mengetahui informasi tentang setelan instance, termasuk nilai yang valid untuk region, lihat Setelan instance

Jangan sertakan informasi sensitif atau informasi identitas pribadi di ID instance Anda; informasi ini terlihat secara eksternal.
Anda tidak perlu menyertakan project ID dalam nama instance. Hal ini dilakukan secara otomatis jika sesuai (misalnya, di file log).

Sebelum menggunakan data permintaan lain, buat pengganti berikut:

  • PROJECT_ID: project ID Anda.
  • INSTANCE_ID: ID instance Anda
  • REGION: Region
  • DATABASE_VERSION: string enum versi database. Contoh: POSTGRES_13
  • PASSWORD: sandi untuk pengguna root
  • MACHINE_TYPE: string enum jenis mesin (tingkat), seperti: db-custom-[CPUS]-[MEMORY_MBS]
  • EDITION_TYPE: edisi Cloud SQL Anda
  • DATA_CACHE_ENABLED: (opsional) ditetapkan ke true untuk mengaktifkan cache data untuk instance Anda

Untuk menetapkan kebijakan sandi saat membuat instance, sertakan objek passwordValidationPolicy dalam permintaan. Tetapkan parameter berikut, jika diperlukan:

  • enablePasswordPolicy: Mengaktifkan kebijakan sandi saat disetel ke true.

    Untuk menghapus kebijakan sandi, Anda dapat menggunakan permintaan PATCH dengan null sebagai nilai untuk enablePasswordPolicy. Dalam kasus ini, parameter kebijakan sandi lainnya akan diatur ulang.

  • minLength: Menentukan jumlah karakter minimum yang harus dimiliki sandi.
  • complexity: Memeriksa apakah sandi merupakan kombinasi karakter huruf kecil, huruf besar, angka, dan non-alfanumerik. Nilai defaultnya adalah COMPLEXITY_DEFAULT.
  • reuseInterval: Menentukan jumlah sandi sebelumnya yang tidak dapat Anda gunakan kembali.
  • disallowUsernameSubstring: Mencegah penggunaan nama pengguna dalam sandi ketika ditetapkan ke true.
  • passwordChangeInterval: Menentukan durasi minimum setelah Anda dapat mengubah sandi. Nilai dalam detik dengan maksimal sembilan digit pecahan, yang diakhiri dengan s. Misalnya, 3.5s.

Untuk membuat instance agar dapat terintegrasi dengan Vertex AI, sertakan objek enableGoogleMlIntegration dalam permintaan. Dengan integrasi ini, Anda dapat menerapkan model bahasa besar (LLM), yang dihosting di Vertex AI, ke database Cloud SQL untuk PostgreSQL.

Tetapkan parameter berikut, jika diperlukan:

  • enableGoogleMlIntegration: jika parameter ini ditetapkan ke true, instance Cloud SQL dapat terhubung ke Vertex AI untuk meneruskan permintaan prediksi real-time dan insight ke AI
  • cloudsql.enable_google_ml_integration: jika parameter ini ditetapkan ke on, Cloud SQL dapat berintegrasi dengan Vertex AI

Metode HTTP dan URL:

POST https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances

Meminta isi JSON:

{
  "name": "INSTANCE_ID",
  "region": "REGION",
  "databaseVersion": "DATABASE_VERSION",
  "rootPassword": "PASSWORD",
  "settings": {
    "tier": "MACHINE_TYPE",
    "edition": "EDITION_TYPE",
    "enableGoogleMlIntegration": "true" | "false"
    "databaseFlags":
    [
      {
        "name": "cloudsql.enable_google_ml_integration",
        "value": "on" | "off"
      }
    ]
    "dataCacheConfig" = {
      "dataCacheEnabled": DATA_CACHE_ENABLED
    },
    "backupConfiguration": {
      "enabled": true
    },
    "passwordValidationPolicy": {
      "enablePasswordPolicy": true
      "minLength": "MIN_LENGTH",
      "complexity": COMPLEXITY_DEFAULT,
      "reuseInterval": "REUSE_INTERVAL",
      "disallowUsernameSubstring": "DISALLOW_USERNAME_SUBSTRING",
      "passwordChangeInterval": "PASSWORD_CHANGE_INTERVAL"
    }
  }
}

Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:

Anda akan melihat respons JSON seperti berikut:

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID",
  "status": "PENDING",
  "user": "user@example.com",
  "insertTime": "2020-01-01T19:13:21.834Z",
  "operationType": "CREATE",
  "name": "OPERATION_ID",
  "targetId": "INSTANCE_ID",
  "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID",
  "targetProject": "PROJECT_ID"
}

Responsnya adalah operasi yang berjalan lama, yang mungkin memerlukan waktu beberapa menit untuk diselesaikan.

Mengambil alamat IPv4

Ambil alamat IPv4 yang ditetapkan secara otomatis untuk instance baru:

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • project-id: project ID Anda.
  • instance-id: ID instance yang dibuat di langkah sebelumnya

Metode HTTP dan URL:

GET https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id

Untuk mengirim permintaan, perluas salah satu opsi berikut:

Anda akan menerima respons JSON seperti berikut:

{
  "kind": "sql#instance",
  "state": "RUNNABLE",
  "databaseVersion": "MYSQL_8_0_18",
  "settings": {
    "authorizedGaeApplications": [],
    "tier": "db-f1-micro",
    "kind": "sql#settings",
    "pricingPlan": "PER_USE",
    "replicationType": "SYNCHRONOUS",
    "activationPolicy": "ALWAYS",
    "ipConfiguration": {
      "authorizedNetworks": [],
      "ipv4Enabled": true
    },
    "locationPreference": {
      "zone": "us-west1-a",
      "kind": "sql#locationPreference"
    },
    "dataDiskType": "PD_SSD",
    "backupConfiguration": {
      "startTime": "18:00",
      "kind": "sql#backupConfiguration",
      "enabled": true,
      "binaryLogEnabled": true
    },
    "settingsVersion": "1",
    "storageAutoResizeLimit": "0",
    "storageAutoResize": true,
    "dataDiskSizeGb": "10"
  },
  "etag": "--redacted--",
  "ipAddresses": [
    {
      "type": "PRIMARY",
      "ipAddress": "10.0.0.1"
    }
  ],
  "serverCaCert": {
    ...
  },
  "instanceType": "CLOUD_SQL_INSTANCE",
  "project": "project-id",
  "serviceAccountEmailAddress": "redacted@gcp-sa-cloud-sql.iam.gserviceaccount.com",
  "backendType": "SECOND_GEN",
  "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id",
  "connectionName": "project-id:region:instance-id",
  "name": "instance-id",
  "region": "us-west1",
  "gceZone": "us-west1-a"
}

Cari kolom ipAddress dalam respons.

Untuk melihat cara permintaan REST API yang mendasarinya dibuat untuk tugas ini, lihat Penjelajah API pada instances:insert page.

Konfigurasi instance kustom

Menentukan memori dan inti virtual yang tersedia untuk instance Cloud SQL Anda. Ketersediaan jenis mesin ditentukan oleh edisi Cloud SQL Anda.

Untuk workload yang memerlukan pemrosesan real-time, seperti pemrosesan transaksi online (OLTP), pastikan instance Anda memiliki cukup memori untuk memuat seluruh set pekerjaan. Namun, ada faktor lain yang dapat memengaruhi persyaratan memori, seperti jumlah koneksi aktif, dan proses overhead internal. Anda harus melakukan pengujian beban untuk menghindari masalah performa di lingkungan produksi.

Saat mengonfigurasi instance, pilih memori dan vCPU yang cukup untuk menangani workload Anda, dan upgrade seiring peningkatan beban kerja. Konfigurasi mesin dengan vCPU yang tidak memadai dapat kehilangan cakupan SLA-nya. Untuk informasi selengkapnya, lihat Panduan operasional.

Jenis mesin untuk instance edisi Cloud SQL Enterprise Plus

Untuk instance edisi Cloud SQL Enterprise Plus, jenis mesin telah ditetapkan sebelumnya sebagai berikut:

Jenis mesin Enterprise plus vCPUs Memori (GB) SSD Lokal
db-perf-optimized-N-2 2 16 375
db-perf-optimized-N-4 4 32 375
db-perf-optimized-N-8 8 64 375
db-perf-optimized-N-16 16 128 750
db-perf-optimized-N-32 32 256 1500
db-perf-optimized-N-48 48 384 3000
db-perf-optimized-N-64 64 512 6000
db-perf-optimized-N-80 80 640 6000
db-perf-optimized-N-96 96 768 6000
db-perf-optimized-N-128 128 864 9.000

Jenis mesin untuk instance edisi Cloud SQL Enterprise

Untuk instance edisi Cloud SQL Enterprise, Anda juga dapat membuat konfigurasi instance kustom menggunakan perintah gcloud sql instances create. Dengan konfigurasi instance kustom, Anda dapat memilih jumlah memori dan CPU yang diperlukan instance. Fleksibilitas ini memungkinkan Anda memilih bentuk VM yang sesuai dengan workload Anda.

Nama jenis mesin menggunakan format berikut: db-custom-#-#

Ganti placeholder # pertama dengan jumlah CPU dalam mesin, dan placeholder # kedua dengan jumlah memori di mesin.

Misalnya, jika nama mesin Anda adalah db-custom, dan komputer Anda memiliki 1 CPU dan RAM 3840 MB, format mesin tersebut adalah db-custom-1-3840.

Saat memilih jumlah CPU dan jumlah memori, ada beberapa batasan pada konfigurasi yang Anda pilih:

  • vCPU harus berupa 1 atau bilangan genap antara 2 dan 96.
  • Memori harus:
    • 0,9 hingga 6,5 GB per vCPU
    • Kelipatan 256 MB
    • Setidaknya 3,75 GB (3840 MB)

Tabel berikut berisi daftar nama setiap jenis mesin lama, jumlah CPU dan RAM untuk setiap jenis mesin, serta string yang dihasilkan untuk jenis mesin tersebut.

Anda dapat membuat jenis mesin yang setara dengan menentukan CPU dan RAM yang setara di Google Cloud Console, dengan menggunakan gcloud CLI, atau dengan menentukan db-custom-#-# di API.

Jenis mesin lama vCPUs Memori (MB) string db-custom-CPU-RAM (string tingkat API)
db-n1-standard-1 1 3840 db-custom-1-3840
db-n1-standard-2 2 7680 db-custom-2-7680
db-n1-standard-4 4 15360 db-custom-4-15360
db-n1-standard-8 8 30720 db-custom-8-30720
db-n1-standard-16 16 61440 db-custom-16-61440
db-n1-standard-32 32 122880 db-custom-32-122880
db-n1-standard-64 64 245760 db-custom-64-245760
db-n1-standard-96 96 368640 db-custom-96-368640
db-n1-highmem-2 2 13312 db-custom-2-13312
db-n1-highmem-4 4 26624 db-custom-4-26624
db-n1-highmem-8 8 53248 db-custom-8-53248
db-n1-highmem-16 16 106496 db-custom-16-106496
db-n1-highmem-32 32 212992 db-custom-32-212992
db-n1-highmem-64 64 425984 db-custom-64-425984
db-n1-highmem-96 96 638976 db-custom-96-638976

Memecahkan masalah

Masalah Pemecahan masalah
Pesan error: Failed to create subnetwork. Couldn't find free blocks in allocated IP ranges. Please allocate new ranges for this service provider. Tidak ada lagi alamat yang tersedia dalam rentang IP yang dialokasikan. Ada beberapa kemungkinan skenario:

  • Ukuran rentang IP yang dialokasikan untuk koneksi layanan pribadi lebih kecil dari /24.
  • Ukuran rentang IP yang dialokasikan untuk koneksi layanan pribadi terlalu kecil untuk jumlah instance Cloud SQL.
  • Persyaratan ukuran rentang IP yang dialokasikan akan lebih besar jika instance dibuat di beberapa region. Lihat ukuran rentang yang dialokasikan

Untuk mengatasi masalah ini, Anda dapat memperluas rentang IP yang dialokasikan atau mengalokasikan rentang IP tambahan ke koneksi layanan pribadi. Untuk informasi selengkapnya, lihat Mengalokasikan rentang alamat IP.

Jika menggunakan tanda --allocated-ip-range-name saat membuat instance Cloud SQL, Anda hanya dapat memperluas rentang IP yang ditentukan.

Jika Anda mengalokasikan rentang baru, pastikan alokasinya tidak tumpang tindih dengan alokasi yang ada.

Setelah membuat rentang IP baru, perbarui peering vpc dengan perintah berikut:

gcloud services vpc-peerings update \
--service=servicenetworking.googleapis.com \
--ranges=OLD_RESERVED_RANGE_NAME,NEW_RESERVED_RANGE_NAME \
--network=VPC_NETWORK \
--project=PROJECT_ID \
--force
    

Jika Anda memperluas alokasi yang sudah ada, pastikan untuk hanya menambah rentang alokasi dan tidak menguranginya. Misalnya, jika alokasi asli adalah 10.0.10.0/24, buat alokasi baru dengan minimal 10.0.10.0/23.

Secara umum, jika dimulai dari alokasi /24, mengurangi /mask sebesar 1 untuk setiap kondisi (grup jenis instance tambahan, region tambahan) adalah aturan praktis yang baik. Misalnya, jika mencoba membuat kedua grup jenis instance pada alokasi yang sama, beralih dari /24 ke /23 sudah cukup.

Setelah memperluas rentang IP yang ada, perbarui peering vpc dengan perintah berikut:

gcloud services vpc-peerings update \
--service=servicenetworking.googleapis.com \
--ranges=RESERVED_RANGE_NAME \
--network=VPC_NETWORK \
--project=PROJECT_ID
    
Pesan error: Failed to create subnetwork. Router status is temporarily unavailable. Please try again later. Help Token: [token-ID]. Coba buat instance Cloud SQL lagi.

Langkah selanjutnya

  1. Buat database PostgreSQL pada instance.
  2. Buat pengguna PostgreSQL pada instance.
  3. Amankan dan kontrol akses ke instance.
  4. Hubungkan ke instance dengan klien PostgreSQL.
  5. Impor data ke database.