Menyiapkan layanan Media CDN

Panduan memulai ini menunjukkan cara menyiapkan layanan Media CDN di hadapan Anda bucket Cloud Storage. Anda dapat menggunakan konfigurasi ini untuk pengujian atau sebagai sebagai dasar untuk lingkungan produksi.


Jika ingin mengikuti panduan langkah demi langkah untuk tugas ini langsung di Konsol Google Cloud, klik Pandu saya:

Pandu saya


Halaman ini akan memandu Anda melakukan prosedur berikut:

  1. Membuat bucket Cloud Storage untuk menyimpan konten Anda.
  2. Aktifkan layanan yang diperlukan.
  3. Buat resource EdgeCacheOrigin untuk menghubungkan Media CDN ke bucket Anda.
  4. Buat resource EdgeCacheService untuk mengonfigurasi perutean permintaan dan dalam cache untuk konten di origin.
  5. Menguji apakah respons di-cache.

Sebelum memulai

Pastikan Anda memiliki hal berikut:

  • Akses ke Media CDN untuk proyek Anda saat ini.

  • Google Cloud CLI yang sudah terinstal. Gunakan versi 345.0.0 atau nanti.

    Jika diperlukan, gunakan gcloud version untuk memeriksa versi dan gcloud components update untuk mengupdate gcloud CLI yang terinstal.

    gcloud CLI menyediakan grup sub-perintah gcloud edge-cache untuk mengelola konfigurasi Media CDN baru dan lama.

  • Izin Identity and Access Management (IAM) yang diperlukan untuk membuat ke resource Media CDN. Media CDN memiliki peran IAM bawaan berikut:

    • roles/networkservices.edgeCacheAdmin
    • roles/networkservices.edgeCacheUser
    • roles/networkservices.edgeCacheViewer

Membuat bucket Cloud Storage

Konten Media CDN dapat berasal dari lokasi seperti Bucket Cloud Storage, lokasi penyimpanan pihak ketiga, atau muatan dengan load balancer Jaringan Passthrough Eksternal Regional.

Dalam panduan memulai ini, kami akan menyimpan konten di bucket Cloud Storage.

  1. Membuat bucket Cloud Storage yang dapat diakses secara publik dan beri nama my-bucket.

    Jika Anda memilih untuk tidak membuat bucket Cloud Storage secara publik dapat diakses, Anda harus memberi izin kepada Media CDN untuk mengakses direktori VM dengan bucket. Untuk informasi selengkapnya, lihat Menggunakan bucket Cloud Storage pribadi.

  2. Upload file ke dalam bucket.

Aktifkan layanan yang diperlukan

Untuk mengonfigurasi dan men-deploy layanan Media CDN, Anda harus mengaktifkan Network Services API dan Certificate Manager API untuk proyek Anda.

Konsol

  1. Mengaktifkan Network Services API.

    Mengaktifkan API

  2. Mengaktifkan Certificate Manager API.

    Mengaktifkan API

gcloud

  1. Aktifkan Network Services API:

    gcloud services enable networkservices.googleapis.com
    
  2. Aktifkan Certificate Manager API:

    gcloud services enable certificatemanager.googleapis.com
    

Untuk informasi selengkapnya tentang cara mengaktifkan dan menonaktifkan layanan, lihat Dokumentasi Penggunaan Layanan.

Membuat resource EdgeCacheOrigin

Buat origin yang mengarah ke bucket Cloud Storage Anda.

Konsol

  1. Di konsol Google Cloud, buka halaman Media CDN.

    Buka Media CDN

  2. Klik tab Origins.

  3. Klik Create origin.

  4. Masukkan nama untuk origin sebagai cloud-storage-origin.

  5. Opsional: Masukkan deskripsi untuk origin.

  6. Untuk Origin address, pilih Select a Google Cloud Storage bucket, jelajahi bucket Cloud Storage bernama my-bucket, lalu klik Select.

    Jika Anda memiliki origin eksternal, pilih Tentukan FQDN atau IP , lalu masukkan FQDN atau alamat IP.

  7. Klik Create origin.

Setelah sekitar 10 menit, resource EdgeCacheOrigin yang baru dibuat muncul dalam daftar origin dalam project Anda di halaman Origins.

Untuk memperbarui alamat origin, klik origin, lalu klik Edit.

gcloud

Gunakan perintah gcloud edge-cache origins create:

gcloud edge-cache origins create ORIGIN \
    --origin-address="ADDRESS"

Ganti kode berikut:

  • ORIGIN: nama origin baru
  • ADDRESS: nama bucket, gs://my-bucket

    Jika Anda memiliki asal eksternal, ganti ADDRESS dengan FQDN atau alamat IP Anda.

Untuk melihat origin yang baru dibuat, gunakan Perintah gcloud edge-cache origins list.

Untuk memperbarui alamat asal, gunakan Perintah gcloud edge-cache origins update.

API

Gunakan metode edgeCacheOrigins.create:

POST https://networkservices.googleapis.com/v1/PARENT/edgeCacheOrigins?edgeCacheOriginId=ORIGIN_ID
{
  "name": "ORIGIN_ID",
  "originAddress: "ADDRESS"
}

Ganti kode berikut:

  • PARENT: resource induk dalam format projects/PROJECT/locations/global
  • ORIGIN_ID: nama pendek dari origin baru
  • ADDRESS: nama bucket, gs://my-bucket

    Jika Anda memiliki asal eksternal, ganti ADDRESS dengan FQDN atau alamat IP Anda.

Untuk melihat origin yang baru dibuat, gunakan Metode edgeCacheOrigins.list.

Untuk memperbarui alamat asal, gunakan Metode edgeCacheOrigins.patch.

Terraform

resource "google_network_services_edge_cache_origin" "default" {
  name           = "cloud-storage-origin"
  origin_address = "gs://my-bucket-${random_id.unique_suffix.hex}"
}

Membuat resource EdgeCacheService

Resource EdgeCacheService Anda mengonfigurasi pemilihan rute, sertifikat, dan penyimpanan dalam cache setelan, dan dapat mengarah ke resource EdgeCacheOrigin.

Buat resource EdgeCacheService dasar yang melakukan hal berikut:

  • Menyimpan cache semua respons dari origin yang dikonfigurasi selama satu jam
  • Menetapkan header respons x-cache-status yang menampilkan status cache (seperti HIT atau MISS)

Atau, daftarkan nama domain untuk layanan ini.

Konsol

  1. Di konsol Google Cloud, buka halaman Media CDN.

    Buka Media CDN

  2. Klik tab Services.

  3. Klik Create service.

  4. Masukkan nama unik untuk layanan Anda—misalnya, my-service—dan lalu klik Next.

  5. Di bagian Routing, klik Add host rule, lalu masukkan atau lebih banyak nama domain {i>host<i}.

  6. Untuk Host, masukkan nama domain host—misalnya, web.example.com.

  7. Klik Tambahkan aturan rute.

    1. Untuk Priority, tentukan 1.
    2. Klik Tambahkan kondisi pencocokan, untuk Pencocokan jalur, tentukan /, lalu klik Done.
    3. Pilih Fetch from an Origin, lalu pilih origin yang ingin Anda dikonfigurasi.
    4. Klik Tindakan add-on.
    5. Untuk Tindakan header, klik Tambahkan item. Lalu, lakukan langkah berikut:
      1. Untuk Type, pilih Response headers to add.
      2. Klik Tambahkan header.
      3. Untuk Name, tentukan x-cache-status, dan untuk Value, tentukan {cdn_cache_status}.
      4. Klik Done.
    6. Untuk Tindakan rute, klik Tambahkan item. Lalu, lakukan langkah berikut:
      1. Untuk Jenis, pilih Kebijakan CDN.
      2. Untuk Mode cache, pilih FORCE_CACHE_ALL.
      3. Klik Done.
    7. Klik Simpan.
  8. Klik Create service.

Resource EdgeCacheService yang baru dibuat akan muncul di Layanan dalam daftar layanan di proyek Anda.

gcloud

  1. Di Cloud Shell, gunakan editor teks untuk membuat file lokal bernama my-service.yaml.

    File tersebut akan menunjukkan hal berikut:

    • Cara kerja pemilihan rute—dengan mencocokkan host terlebih dahulu, lalu jalurnya
    • Cara kerja penyimpanan cache—berdasarkan mode cache dan TTL
    • Bagaimana permintaan dan respons dimodifikasi—misalnya, dengan memasukkan variabel cdn_cache_status menjadi header respons
  2. Tempel konten contoh berikut ke dalam file, lalu simpan:

    name: SERVICE
    routing:
      hostRules:
      - hosts:
        - DOMAIN 
        pathMatcher: routes
      pathMatchers:
      - name: routes
        routeRules:
        - priority: 1
          matchRules:
          - prefixMatch: /
          origin: ORIGIN
          routeAction:
            cdnPolicy:
              cacheMode: CACHE_ALL_STATIC
              defaultTtl: 3600s
          headerAction:
            responseHeadersToAdd:
            - headerName: "x-cache-status"
              headerValue: "{cdn_cache_status}"
    

    Ganti kode berikut:

    • SERVICE: nama layanan
    • DOMAIN: domain untuk layanan baru

    Jika Anda menentukan nama domain, Media CDN akan merespons dengan 404 error untuk host lain. * ORIGIN: nama asal terkait

  3. Menggunakan perintah gcloud edge-cache services import dengan file .yaml:

    gcloud edge-cache services import SERVICE \
        --source=my-service.yaml
    

    Untuk melihat layanan yang baru dibuat dalam daftar EdgeCacheService resource dalam project Anda, gunakan Perintah gcloud edge-cache services list.

API

Gunakan metode edgeCacheServices.create:

POST https://networkservices.googleapis.com/v1/PARENT/edgeCacheServices?edgeCacheServiceId=SERVICE_ID
{
  "name": "SERVICE_ID",
  "routing": {
    "hostRules": [
      {
        "hosts": ["DOMAIN"],
        "pathMatcher": "routes"
      }
    ],
    "pathMatchers": [
      {
        "name": "routes",
        "routeRules": [
          {
            "priority": "1",
            "matchRules": [
              {
                "prefixMatch": "/"
              }
            ],
            "origin": "ORIGIN",
            "routeAction": {
               "cdnPolicy": {
                 "cacheMode": "CACHE_ALL_STATIC",
                 "defaultTtl": "3600s"
               }
            }
            "headerAction": {
              "responseHeadersToAdd": [
                {
                  "headerName": "x-cache-status",
                  "headerValue": "{cdn_cache_status}"
                }
              ]
            },
          }
        ]
      }
    ]
  }
}

Ganti kode berikut:

  • PARENT: resource induk dalam format projects/PROJECT/locations/global
  • SERVICE_ID: nama layanan
  • DOMAIN: domain untuk layanan baru

    Jika Anda menentukan nama domain, Media CDN akan merespons dengan error 404 untuk host lain.

  • ORIGIN_NAME: nama asal terkait

Untuk melihat layanan yang baru dibuat dalam daftar resource EdgeCacheService dalam proyek Anda, gunakan Metode edgeCacheServices.list.

Terraform

resource "google_network_services_edge_cache_service" "default" {
  name = "cloud-media-service"
  routing {
    host_rule {
      hosts        = ["googlecloudexample.com"]
      path_matcher = "routes"
    }
    path_matcher {
      name = "routes"
      route_rule {
        description = "a route rule to match against"
        priority    = 1
        match_rule {
          prefix_match = "/"
        }
        origin = google_network_services_edge_cache_origin.default.name
        route_action {
          cdn_policy {
            cache_mode  = "CACHE_ALL_STATIC"
            default_ttl = "3600s"
          }
        }
        header_action {
          response_header_to_add {
            header_name  = "x-cache-status"
            header_value = "{cdn_cache_status}"
          }
        }
      }
    }
  }
}

Diperlukan waktu beberapa menit untuk membuat layanan pertama Anda. Media CDN menyediakan alamat IP khusus dan mendorong konfigurasi ke ribuan lokasi edge. Pembaruan berikutnya pada layanan, seperti mengubah konfigurasi rute atau pencocokan parameter, akan lebih cepat.

Mengambil alamat IP

Untuk melihat alamat IP layanan yang baru dibuat, ikuti langkah-langkah berikut:

Konsol

  1. Di konsol Google Cloud, buka halaman Media CDN.

    Buka Media CDN

  2. Klik tab Services.

  3. Untuk alamat IP layanan Anda, lihat sel Alamat.

    Jika sel kosong, muat ulang browser.

gcloud

Gunakan perintah gcloud edge-cache services describe:

gcloud edge-cache services describe SERVICE

Ganti SERVICE dengan nama layanan.

Outputnya akan menampilkan alamat IP yang ditetapkan ke layanan Anda:

ipv4Addresses:
    IPV4_ADDRESS
ipv6Addresses:
    IPV6_ADDRESS
name: projects/my-project/locations/global/edgeCacheServices/SERVICE
...

API

Gunakan metode edgeCacheServices.get:

GET https://networkservices.googleapis.com/v1/SERVICE_NAME

Ganti SERVICE_NAME dengan nama lengkap layanan. Gunakan format berikut:

projects/PROJECT/locations/global/edgeCacheServices/SERVICE_ID

Ganti SERVICE_ID dengan nama pendek layanan.

Detail yang diambil mencakup alamat IP yang ditetapkan ke layanan:

ipv4Addresses:
    IPV4_ADDRESS
ipv6Addresses:
    IPV6_ADDRESS

Menguji apakah respons di-cache atau tidak

Sebelum menguji layanan, pastikan bahwa Anda memiliki dapat di-cache yang disimpan di origin Anda sehingga Media CDN dapat mengambilnya.

Untuk menguji apakah layanan telah dikonfigurasi dengan benar untuk meng-cache konten, gunakan alat command line curl untuk membuat permintaan dan memeriksa respons. curl juga tersedia di Cloud Shell pada Konsol Google Cloud.

Jika Anda ingin menggunakan EdgeCacheService dengan domain Anda, Anda dapat menetapkan alamat IP EdgeCacheService ke data domain. Sebagai petunjuk, lihat Menyiapkan domain menggunakan Cloud DNS. Setelah menyiapkan domain, akses konten Anda dengan curl berikut berikut:

curl -svo /dev/null "http://DOMAIN_NAME/FILE_NAME"

Jika Anda tidak mengonfigurasi DNS agar mengarah ke alamat IP yang disediakan, gunakan resolve untuk mengganti alamat yang digunakan curl.

curl -svo /dev/null --resolve DOMAIN_NAME:80:IP_ADDRESS "http://DOMAIN_NAME/FILE_NAME"

Ganti kode berikut:

  • DOMAIN_NAME : domain host yang Anda tentukan saat membuat layanan
  • IP_ADDRESS: alamat IP layanan sebagai terlihat di kolom Alamat dalam daftar layanan
  • FILE_NAME: nama file tempat Anda mengupload ember

Contoh:

curl -svo /dev/null --resolve web.example.com:80:34.104.37.129 "http://web.example.com/file.mp4"

Perintah ini awalnya menghasilkan output yang mirip dengan berikut ini, dan status miss, karena Media CDN tidak memiliki permintaan data yang sudah diambil dari origin:

< HTTP/2 200 OK
...
< x-cache-status: den;miss
...

Jika Anda mengirimkan kembali permintaan yang sama beberapa kali, tindakan ini akan menghasilkan output yang mirip dengan berikut ini, dengan status hit:

< HTTP/2 200 OK
...
< x-cache-status: den;hit
...

Jika tidak menampilkan status hit, periksa hal berikut:

  • Respons dapat di-cache.
  • Mode cache yang dikonfigurasi memungkinkan penyimpanan konten di cache.
  • Asal tidak menyetel perintah cache yang mencegah penyimpanan cache. Untuk selengkapnya , lihat Konfigurasi cache.

Anda kini telah menguji resource EdgeCacheService dasar yang dapat menyalurkan secara global. Layanan tingkat produksi mungkin memerlukan SSL (TLS) sertifikat, beberapa origin, dan Kebijakan keamanan Google Cloud Armor.

Opsional: Pembersihan

Hapus resource yang tidak ingin Anda gunakan lagi.

Konsol

  1. Di konsol Google Cloud, buka halaman Media CDN.

    Buka Media CDN

  2. Klik tab Services.

  3. Pilih layanan Anda, lalu klik Hapus.

  4. Klik tab Origins.

  5. Pilih origin Anda, lalu klik Delete.

gcloud

  1. Untuk menampilkan daftar resource yang Anda buat, gunakan Perintah gcloud edge-cache origins list dan perintah gcloud edge-cache services list.

  2. Untuk menghapus layanan, gunakan Perintah gcloud edge-cache services delete:

    gcloud edge-cache services delete SERVICE
    

    Ganti SERVICE dengan nama layanan.

  3. Untuk menghapus origin, gunakan Perintah gcloud edge-cache origins delete:

    gcloud edge-cache origins delete ORIGIN
    

    Ganti ORIGIN dengan nama asal.

API

  1. Untuk menampilkan daftar resource yang Anda buat, gunakan Metode edgeCacheServices.list dan metode edgeCacheOrigins.list.

  2. Untuk menghapus layanan, gunakan Metode edgeCacheServices.delete:

    DELETE https://networkservices.googleapis.com/v1/SERVICE_NAME
    

    Ganti SERVICE_NAME dengan nama lengkap layanan. Gunakan format berikut:

    projects/PROJECT/locations/global/edgeCacheServices/SERVICE_ID
    

    Ganti SERVICE_ID dengan nama pendek dari layanan.

  3. Untuk menghapus origin, gunakan Metode edgeCacheOrigins.delete:

    DELETE https://networkservices.googleapis.com/v1/ORIGIN
    

    Ganti ORIGIN dengan nama lengkap tempat asal. Gunakan format berikut:

    projects/PROJECT/locations/global/edgeCacheOrigins/ORIGIN_ID
    

    Ganti ORIGIN_ID dengan nama pendek dari titik asal.

Ulangi proses ini untuk resource lain yang Anda buat dan tidak diinginkan untuk digunakan lagi, seperti bucket Cloud Storage.

Langkah selanjutnya