Memetakan Domain Kustom

Anda dapat menyiapkan domain kustom bukan alamat default yang disediakan Cloud Run untuk layanan yang di-deploy.

Ada beberapa cara untuk menyiapkan domain kustom pada layanan Cloud Run:

Anda dapat melakukan pemetaan beberapa domain kustom ke layanan Cloud Run yang sama.

Sebelum memulai

Beli domain baru, kecuali Anda sudah memiliki domain yang ingin Anda gunakan. Anda dapat menggunakan registrar nama domain apa pun.

Memetakan domain kustom menggunakan Load Balancer Aplikasi eksternal global

Dengan opsi ini, Anda akan menambahkan Load Balancer Aplikasi eksternal global di depan layanan Cloud Run Anda dan mengonfigurasi domain kustom di tingkat load balancer.

Salah satu keuntungan menggunakan Load Balancer Aplikasi eksternal global adalah Anda memiliki banyak kontrol terkait penyiapan domain kustom Anda. Misalnya, Anda dapat menggunakan sertifikat TLS Anda sendiri atau menggunakan rute jalur URL tertentu ke layanan Cloud Run. Anda juga dapat mengonfigurasi Cloud CDN untuk menyimpan data ke dalam cache dan Google Cloud Armor untuk keamanan tambahan.

Anda juga dapat memetakan beberapa layanan ke nama host atau jalur dinamis dalam pola URL domain kustom Anda untuk satu load balancer, misalnya, <service>.example.com, menggunakan masker URL.

Lihat dokumentasi tentang menyiapkan Load Balancer Aplikasi eksternal global dengan Cloud Run.

Petakan domain kustom menggunakan Firebase Hosting

Dengan opsi ini, Anda akan mengonfigurasi Firebase Hosting di depan layanan Cloud Run Anda dan menghubungkan domain ke Firebase Hosting.

Menggunakan Firebase Hosting memiliki biaya yang rendah dan secara opsional memungkinkan Anda untuk menghosting dan menyajikan konten statis bersama konten dinamis yang disajikan oleh layanan Cloud Run Anda.

Untuk melakukan pemetaan domain kustom menggunakan Firebase Hosting:

  1. Tambahkan Firebase ke project Google Cloud Anda.
  2. Menginstal Firebase CLI
  3. Dalam folder yang berbeda dari kode sumber layanan Anda, buat firebase.json dengan isi berikut:

      {
        "hosting": {
          "rewrites": [{
            "source": "**",
            "run": {
              "serviceId": "SERVICE_NAME",
              "region": "REGION"
            }
          }]
        }
      }
    

    Ganti SERVICE_NAME dan REGION dengan nama dan region layanan Cloud Run Anda.

  4. Deploy konfigurasi Firebase Hosting:

    firebase deploy --only hosting --project PROJECT_ID
  5. Hubungkan domain kustom ke Firebase Hosting.

Baca selengkapnya tentang Firebase Hosting dan Cloud Run.

Memetakan domain kustom menggunakan pemetaan domain Cloud Run (Ketersediaan terbatas dan Pratinjau)

Batasan pemetaan domain Cloud Run

Pertimbangan berikut berlaku pada pemetaan domain Cloud Run:

  • Pemetaan domain Cloud Run sedang dalam tahap peluncuran pratinjau. Karena masalah latensi, fitur ini tidak siap produksi dan tidak didukung pada Ketersediaan Umum. Saat ini, opsi ini tidak direkomendasikan untuk layanan produksi.
  • Sertifikat yang dikelola oleh Google untuk koneksi HTTPS secara otomatis diterbitkan dan diperpanjang saat Anda melakukan pemetaan layanan ke domain kustom.
  • Penyediaan sertifikat SSL biasanya memakan waktu sekitar 15 menit tapi dapat juga lebih dari 24 jam.
  • Anda tidak dapat menonaktifkan TLS 1.0 dan 1.1. Jika hal tersebut terjadi, Anda dapat menggunakan Firebase Hosting atau Cloud Load Balancing untuk mengaktifkan lalu lintas TLS 1.2 saja.
  • Anda tidak dapat mengupload dan menggunakan sertifikat Anda sendiri (dikelola sendiri).
  • Pemetaan domain Cloud Run dibatasi hingga 64 karakter.
  • Pemetaan domain tersedia di region berikut:
    • asia-east1
    • asia-northeast1
    • asia-southeast1
    • europe-north1
    • europe-west1
    • europe-west4
    • us-central1
    • us-east1
    • us-east4
    • us-west1
  • Untuk memetakan domain kustom di region lain, Anda harus menggunakan salah satu opsi pemetaan lainnya.
  • Saat Anda menggunakan pemetaan domain Cloud Run, Anda melakukan pemetaan domain kustom pada layanan Anda, kemudian memperbarui data DNS Anda.
  • Anda dapat melakukan pemetaan domain, seperti example.com atau subdomain, seperti subdomain.example.com.
  • Anda hanya dapat melakukan pemetaan domain ke /, bukan ke jalur URL tertentu seperti /users.
  • Anda tidak dapat menggunakan sertifikat karakter pengganti dengan fitur ini.

Melakukan pemetaan domain kustom ke suatu layanan

Anda dapat menggunakan konsol Google Cloud, gcloud CLI, atau Terraform untuk melakukan pemetaan domain kustom ke suatu layanan.

Konsol

  1. Buka halaman pemetaan domain di konsol Google Cloud:
    Halaman pemetaan domain

  2. Klik Tambahkan Pemetaan.

    Jika jendela tampilan Anda terlalu kecil, tombol Tambahkan Pemetaan tidak ditampilkan dan Anda harus mengklik ikon elips vertikal tiga titik di sudut halaman.

  3. Dari menu drop-down, pilih layanan yang domain kustomnya Anda petakan.

  4. Pilih Cloud Run Domain Mappings.

  5. Di formulir Tambahkan pemetaan, pilih Verifikasi domain baru.

  6. Di kolom Base domain to verify, Anda harus memverifikasi kepemilikan domain sebelum dapat menggunakannya, kecuali jika Anda membeli domain dari Google.

    Jika Anda ingin memetakan subdomain.example.com atau subdomain1.subdomain2.example.com, Anda harus memverifikasi kepemilikan example.com. Untuk mengetahui informasi selengkapnya tentang cara melakukan verifikasi kepemilikan domain, baca bantuan Search Console

  7. Klik Lanjutkan.

  8. Setelah verifikasi domain selesai, klik Lanjutkan verifikasi dan tutup.

  9. Perbarui data DNS di situs registrar domain Anda menggunakan data DNS yang ditampilkan pada langkah terakhir. Anda dapat menampilkan data kapan saja dengan mengklik Data DNS pada "..." menu tindakan untuk pemetaan domain.

  10. Klik Done.

gcloud

  1. Anda harus melakukan verifikasi domain kepemilikan saat pertama kali Anda menggunakan domain tersebut di project Google Cloud, kecuali Anda membeli domain kustom Anda dari Google. Anda dapat menentukan apakah domain kustom yang ingin Anda gunakan sudah diverifikasi dengan menjalankan perintah berikut:

    gcloud domains list-user-verified

    Jika kepemilikan domain Anda perlu diverifikasi, buka halaman verifikasi Search Console:

    gcloud domains verify BASE-DOMAIN

    tempat BASE-DOMAIN merupakan domain dasar yang ingin Anda verifikasi. Misalnya, jika Anda ingin memetakan subdomain.example.com, Anda harus memverifikasi kepemilikan example.com.

    Di Search Console, selesaikan verifikasi kepemilikan domain. Untuk mengetahui informasi selengkapnya, baca bantuan Search Console.

  2. Lakukan pemetaan layanan Anda ke domain kustom:

    gcloud beta run domain-mappings create --service SERVICE --domain DOMAIN
    • Ganti SERVICE dengan nama layanan Anda.
    • Ganti DOMAIN dengan domain kustom Anda, misalnya, example.com atau subdomain.example.com

Terraform

Untuk mempelajari cara menerapkan atau menghapus konfigurasi Terraform, lihat Perintah dasar Terraform.

Untuk membuat layanan Cloud Run, tambahkan kode berikut ke file Andamain.tf yang sudah ada:

resource "google_cloud_run_v2_service" "default" {
  name     = "custom-domain"
  location = "us-central1"

  deletion_protection = false # set to true to prevent destruction of the resource

  template {
    containers {
      image = "us-docker.pkg.dev/cloudrun/container/hello"
    }
  }
}

Ganti nilai untuk name dengan nama layanan Anda sendiri.

Lakukan pemetakan layanan Cloud Run ke domain kustom:

data "google_project" "project" {}

resource "google_cloud_run_domain_mapping" "default" {
  name     = "verified-domain.com"
  location = google_cloud_run_v2_service.default.location
  metadata {
    namespace = data.google_project.project.project_id
  }
  spec {
    route_name = google_cloud_run_v2_service.default.name
  }
}

Ganti verified-domain.com dengan domain kustom yang sudah diverifikasi, misalnya, example.com atau subdomain.example.com.

Tambahkan data DNS di registrar domain

Setelah memetakan layanan ke domain kustom di Cloud Run, Anda harus memperbarui data DNS di registrar domain. Untuk memudahkan, Cloud Run membuat dan menampilkan data DNS yang harus Anda masukkan. Anda harus menambahkan data ini yang mengarah ke layanan Cloud Run di registrar domain agar pemetaan dapat dilakukan.

Jika Anda menggunakan Cloud DNS sebagai penyedia DNS, lihat Penambahan data.

  1. Ambil informasi data DNS untuk pemetaan domain menggunakan hal berikut:

    Konsol

    1. Buka halaman pemetaan domain Cloud Run:
      Halaman pemetaan domain

    2. Klik ikon elips vertikal tiga titik di sebelah kanan layanan Anda, lalu klik DATA DNS untuk menampilkan semua data DNS:

    pilih data DNS

    gcloud

    gcloud beta run domain-mappings describe --domain [DOMAIN]

    Ganti [DOMAIN] dengan domain kustom Anda, contohnya, example.com atau subdomain.example.com.

    Anda memerlukan semua data yang ditampilkan di bawah judul resourceRecords.

  2. Login ke akun Anda di registrar domain, lalu buka halaman konfigurasi DNS.

  3. Cari bagian data host di halaman konfigurasi domain Anda, dan kemudian tambahkan setiap data resource yang Anda terima saat Anda melakukan pemetaan domain ke layanan Cloud Run Anda.

  4. Saat Anda menambahkan setiap data DNS sebelumnya ke akun di penyedia DNS:

    • Pilih jenis yang ditampilkan dalam data DNS di langkah sebelumnya: A, atau AAAA, atau CNAME.
    • Gunakan nama www untuk pemetaan ke www.example.com.
    • Gunakan nama @ untuk memetakan example.com.
  5. Dalam data , data dari kumpulan data berupa nama domain Umumnya, diperlukan waktu beberapa menit agar perubahan ini diterapkan, tetapi dalam beberapa kasus, diperlukan waktu hingga beberapa jam, bergantung pada registrar dan Time-To-Live (TTL) dari data DNS sebelumnya untuk domain Anda. Anda dapat menggunakan alat dig, seperti versi dig online, untuk mengonfirmasi bahwa data DNS telah berhasil diupdate.

  6. Uji kesuksesan dengan menjelajahi layanan Anda di URL barunya, misalnya, https://www.example.com. Diperlukan waktu beberapa menit untuk menerbitkan sertifikat SSL terkelola.

Tambahkan pemilik domain terverifikasi ke pengguna atau akun layanan lain

Saat pengguna memverifikasi domain, domain tersebut hanya diverifikasi ke akun pengguna tersebut. Hal ini berarti bahwa hanya pengguna tersebut yang dapat menambahkan lebih banyak pemetaan domain yang menggunakan domain tersebut. Jadi, untuk memungkinkan pengguna lain untuk menambahkan pemetaan yang menggunakan domain tersebut, Anda harus menambahkan mereka sebagai pemilik verifikasi.

Jika perlu menambahkan pemilik terverifikasi domain Anda ke pengguna atau akun layanan lain, Anda dapat menambahkan izin melalui halaman Search Console:

  1. Buka alamat berikut di browser web Anda:

    https://search.google.com/search-console/welcome

  2. Di bagian Properties, klik domain yang ingin ditambahkan pengguna atau akun layanan.

  3. Buka daftar Verified owners, klik Add an owner, lalu masukkan alamat email Akun Google atau ID akun layanan.

    Untuk melihat daftar akun layanan, buka halaman Akun Layanan di konsol Google Cloud:

    Buka halaman Akun Layanan

Hapus pemetaan domain Cloud Run

Anda dapat menggunakan konsol Google Cloud atau gcloud CLI untuk menghapus pemetaan domain.

Konsol

  1. Buka halaman Pemetaan domain di konsol Google Cloud:
    Halaman pemetaan domain

  2. Di halaman Pemetaan domain, pilih pemetaan domain yang ingin Anda hapus, lalu klik Hapus.

gcloud

  1. Hapus pemetaan domain:

    gcloud beta run domain-mappings delete --domain DOMAIN
    • Ganti DOMAIN dengan domain kustom Anda, misalnya, example.com atau subdomain.example.com.

Gunakan domain kustom dengan layanan yang terautentikasi

Layanan terautentikasi dilindungi oleh IAM. Layanan Cloud Run tersebut memerlukan autentikasi klien yang mendeklarasikan penerima permintaan yang dituju pada waktu pembuatan kredensial (audiens).

Audiens biasanya merupakan URL lengkap layanan target, yang secara default bagi layanan Cloud Run adalah URL yang dihasilkan dengan akhiran run.app. Namun, jika Anda menggunakan domain kustom, Anda harus menghindari penggunaan URL run.app yang dibuat otomatis tersebut sebagai audiens. Sebagai gantinya, konfigurasi layanan untuk audiens kustom sehingga audiens tersebut akan menerima domain kustom sebagai audiens autentikasi yang valid.

Langkah selanjutnya

  • Untuk menyiapkan domain kustom pada Cloud Run menggunakan Load Balancer Aplikasi external global dengan Terraform, pelajari contoh kode.