Mengonfigurasi origin

Anda dapat mengonfigurasi origin untuk Media CDN dengan berbagai cara. Halaman ini menunjukkan Anda cara mengkonfigurasi origin.

Mengonfigurasi bucket Cloud Storage sebagai origin

Media CDN mendukung bucket Cloud Storage sebagai backend untuk konten. Setiap layanan dapat mereferensikan beberapa bucket dengan mengonfigurasi rute untuk {i>host<i}, jalur, dan atribut permintaan lainnya.

Bucket Cloud Storage dikonfigurasi menggunakan URL bucket, seperti gs://my-bucket, sebagai alamat asal saat membuat resource origin.

Konsol

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

    Buka Origin

  2. Klik Create origin.

  3. Masukkan nama untuk origin. Misalnya: cloud-storage-origin.

  4. Opsional: Masukkan deskripsi.

  5. Untuk Origin address, pilih Select a Google Cloud Storage bucket.

  6. Buka bucket Cloud Storage dan pilih bucket tersebut.

  7. Untuk Cloud Storage, pertahankan protokol dan port default setelan.

  8. Opsional: Agar penggantian header permintaan origin lebih diutamakan {i>header<i} yang dikirim oleh klien atau dimanipulasi oleh tindakan {i>header <i}tingkat rute, lakukan hal berikut:

    1. Pilih Enable origin override.
    2. Di bagian Header, tentukan header dengan menambahkan satu atau beberapa header pasangan nama-nilai.
  9. Opsional: Pilih origin failover untuk dicoba jika origin ini menjadi tidak dapat dijangkau. Anda dapat memperbarui kolom ini nanti.

  10. Pilih kondisi pengalihan.

  11. Pilih coba lagi kondisi.

  12. Untuk Upaya maksimum, pilih jumlah upaya maksimum untuk mengisi cache dari origin ini.

  13. Opsional: Tentukan timeout berikut nilai-nilai:

    1. Untuk Waktu tunggu koneksi habis, pilih durasi maksimum untuk menunggu koneksi origin yang akan dibuat.
    2. Untuk Waktu tunggu respons, pilih durasi maksimum yang diizinkan untuk respons untuk dilengkapi.
    3. Untuk Waktu tunggu baca, pilih durasi tunggu maksimum antara pembacaan satu koneksi atau aliran HTTP.
  14. Opsional: Klik Tambahkan label dan tentukan satu atau beberapa pasangan nilai kunci.

  15. Klik Create origin.

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—misalnya, gs://my-bucket

Ini adalah kondisi yang sama, terlepas dari multi-regional, dual-region, atau regional.

Saat mengonfigurasi layanan, Anda dapat merutekan konten video on-demand ke salah satu dan konten live streaming ke bucket kedua. Hal ini berguna jika Anda memiliki tim yang berbeda mengelola setiap alur kerja. Untuk mengurangi latensi pengisian cache, Anda dapat merutekan region eu-media.example.com ke multiregional dengan cara yang sama Bucket Cloud Storage yang berada di Uni Eropa dan us-media.example.com region (atau mencocokkan di jalur, header, atau parameter kueri) dengan penyimpanan yang berbasis di AS direktori VM dengan bucket.

bucket Media CDN.
Bucket Media CDN (klik untuk memperbesar).

Untuk kasus ketika latensi tulis sangat penting, seperti live streaming latensi rendah, Anda dapat mengonfigurasi endpoint Cloud Storage regional yang dekat dengan pengguna sebanyak mungkin.

Mengautentikasi permintaan

Untuk mengonfirmasi bahwa permintaan berasal dari Media CDN, gunakan salah satu pendekatan yang didukung berikut:

  • Validasi bahwa alamat IP sumber koneksi berasal dari rentang pengisian cache. Rentang ini digunakan bersama oleh semua pelanggan, tetapi selalu digunakan oleh resource EdgeCacheService saat terhubung ke origin.
  • Tambahkan header permintaan kustom dengan nilai token yang Anda validasi pada (misalnya, nilai 16 byte acak). Origin Anda kemudian dapat menolak permintaan yang tidak menyertakan nilai ini.

Untuk informasi tentang cara menetapkan header permintaan per rute, lihat header kustom.

Mengonfigurasi protokol origin

Untuk origin yang hanya mendukung HTTPS (HTTP/1.1 melalui TLS) atau HTTP/1.1 (tanpa TLS), tetapkan kolom protocol secara eksplisit dengan melakukan hal berikut:

Konsol

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

    Buka Origin

  2. Pilih origin Anda, lalu klik Edit.

  3. Untuk protokol, pilih HTTPS atau HTTP. Untuk HTTP, juga menentukan port sebagai 80.

  4. Klik Update origin.

gcloud

Gunakan perintah gcloud edge-cache origins update:

gcloud edge-cache origins update LEGACY_ORIGIN \
    --protocol=HTTPS

Jika origin Anda mendukung HTTP/2, Anda tidak perlu menetapkan protokol secara eksplisit.

Mengonfigurasi bucket Cloud Storage pribadi

Media CDN dapat mengambil konten dari HTTP atau HTTPS apa pun yang dapat dijangkau internet endpoint. Dalam beberapa kasus, Anda mungkin ingin meminta otentikasi, untuk hanya mengizinkan Media CDN menarik konten, dan mencegah akses. Cloud Storage mendukung hal ini melalui IAM izin akses.

Untuk origin Cloud Storage, lakukan hal berikut:

  • Beri akun layanan Media CDN objectViewer izin IAM pada bucket Cloud Storage yang Anda gunakan sebagai origin Anda.
  • Hapus izin allUsers.
  • Opsional: Hapus izin allAuthenticatedUsers.

Untuk mengubah izin bucket Cloud Storage, Anda memerlukan Peran IAM Storage Admin.

Akun layanan Media CDN dimiliki oleh Project Media CDN, dan tidak akan muncul di daftar project Anda akun layanan.

Akun layanan memiliki format berikut, dan memberikan akses hanya ke Resource Media CDN dalam project yang Anda izinkan secara eksplisit.

service-PROJECT_NUM@gcp-sa-mediaedgefill.iam.gserviceaccount.com

Untuk memberi Media CDN akses ke bucket, berikan objectViewer ke akun layanan:

gcloud storage buckets add-iam-policy-binding gs://BUCKET \
--member=serviceAccount:service-PROJECT_NUM@gcp-sa-mediaedgefill.iam.gserviceaccount.com \
--role=roles/storage.objectViewer

Menggunakan perintah gcloud storage buckets remove-iam-policy-binding guna menghapus izin yang diberikan ke peran allUsers untuk bucket yang diberikan. Sebagai Misalnya, jika bucket memberikan peran objectViewer kepada allUsers, hapus peran tersebut berikan menggunakan perintah berikut:

gcloud storage buckets remove-iam-policy-binding gs://BUCKET \
--member=allUsers --role=roles/storage.objectViewer

Untuk memvalidasi bahwa akses publik telah dihapus, buka mode samaran jendela browser dan mencoba mengakses objek bucket menggunakan https://storage.googleapis.com/BUCKET/object.ext.

Untuk mengizinkan resource EdgeCacheService dalam satu akses project ke bucket Cloud Storage di project lain, Anda dapat memberikan Akun layanan Media CDN di project tersebut mengakses penyimpanan direktori VM dengan bucket.

Untuk melakukannya, pastikan bahwa PROJECT_NUM di service-PROJECT_NUM@gcp-sa-mediaedgefill.iam.gserviceaccount.com adalah nomor project project dengan resource EdgeCacheService yang diperlukan akses. Anda dapat mengulangi langkah ini untuk beberapa proyek, terutama jika beberapa di antaranya menampung berbagai lingkungan Media CDN (seperti pengembangan, staging, atau produksi) dan project terpisah berisi video atau media aset.

Anda dapat melindungi akses ke asal Cloud Storage tanpa mengaktifkannya permintaan yang ditandatangani untuk rute tersebut.

Mengonfigurasi Cloud Storage pribadi tidak mencegah konten yang di-cache agar tidak diakses langsung dari Media CDN. Untuk informasi tentang bagaimana Anda dapat mengeluarkan permintaan yang ditandatangani kepada masing-masing pengguna, lihat ditandatangani permintaan.

Mengonfigurasi Load Balancer Aplikasi eksternal sebagai origin

Jika Anda memerlukan pemeriksaan kesehatan aktif, round-robin, atau pengendalian beban di Compute Engine, GKE, atau origin lokal, Anda dapat mengonfigurasi Load Balancer Aplikasi eksternal sebagai origin.

Ini memungkinkan Anda mengonfigurasi (misalnya) pemaket live streaming Anda di belakang Media CDN atau grup Proxy Envoy yang dikelola oleh Cloud Service Mesh untuk terhubung kembali ke infrastruktur lokal Anda.

Load balancer memungkinkan Anda mengonfigurasi backend untuk hal berikut:

Arsitektur yang menggabungkan origin Load Balancer Aplikasi eksternal untuk menyalurkan video dan asal Cloud Storage untuk penyimpanan segmen mirip dengan berikut ini, dengan dua origin dipetakan ke rute yang berbeda.

Deployment edge cache.
Deployment cache edge (klik untuk memperbesar).

Untuk mengonfigurasi Load Balancer Aplikasi eksternal sebagai origin, Anda perlu membuat resource origin dengan alamat IP atau nama host publik yang mengarah ke aturan penerusan load balancer. Nama host publik (nama domain) lebih disarankan karena diperlukan untuk fitur SSL (TLS) dan untuk versi HTTP modern (HTTP/2 dan HTTP/3).

Anda juga harus memastikan hal-hal berikut:

  • Load balancer Anda memiliki rute yang cocok dengan nama host yang digunakan untuk EdgeCacheService atau Anda telah mengonfigurasi urlRewrite.hostRewrite untuk rute tempat load balancer Anda dikonfigurasi sebagai origin.
  • Load balancer Anda memiliki sertifikat SSL (TLS) tepercaya secara publik yang dikonfigurasi untuk nama host ini.

Misalnya, jika nama domain publik mengarah ke load balancer aturan penerusannya adalah origin-packager.example.com, maka Anda harus membuat dengan originAddress yang ditetapkan ke nama ini.

Konsol

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

    Buka Origin

  2. Klik Create origin.

  3. Masukkan nama untuk origin. Misalnya: load-balancer-origin.

  4. Opsional: Masukkan deskripsi.

  5. Untuk Origin address, pilih Tentukan FQDN atau alamat IP.

  6. Masukkan FQDN atau alamat IP untuk load balancer Google Cloud Anda.

  7. Opsional: Pilih origin failover untuk dicoba jika origin ini menjadi tidak dapat dijangkau. Anda dapat memperbarui kolom ini nanti.

  8. Pilih coba lagi kondisi.

  9. Untuk Upaya maksimum, pilih jumlah upaya maksimum untuk mengisi cache dari origin ini.

  10. Opsional: Tentukan timeout berikut nilai-nilai:

    1. Untuk Waktu tunggu koneksi habis, pilih durasi maksimum untuk menunggu koneksi origin yang akan dibuat.
    2. Untuk Waktu tunggu respons, pilih durasi maksimum yang diizinkan untuk respons untuk dilengkapi.
    3. Untuk Waktu tunggu baca, pilih durasi tunggu maksimum antara pembacaan satu koneksi atau aliran HTTP.
  11. Opsional: Klik Tambahkan label dan tentukan satu atau beberapa pasangan nilai kunci.

  12. Klik Create origin.

gcloud

Gunakan perintah gcloud edge-cache origins create:

gcloud edge-cache origins create LB_ORIGIN \
    --origin-address=LB_ADDRESS

Ganti kode berikut:

  • LB_ORIGIN: nama asal
  • LB_ADDRESS: FQDN atau IP —misalnya, origin-packager.example.com

Jika Anda menggunakan alamat IP aturan penerusan sebagai alamat asal, atau tidak memiliki sertifikat SSL yang terpasang di load balancer, Anda dapat setel protokol ke HTTP untuk beralih kembali ke koneksi yang tidak terenkripsi. Saran dari kami Anda melakukan ini hanya untuk pengembangan atau pengujian.

Mengonfigurasi failover origin

Bagian berikut menunjukkan cara mengonfigurasi perilaku failover origin.

Failover origin tanpa mengikuti pengalihan

Berikut adalah konfigurasi EdgeCacheOrigin failover dasar:

name: FAILOVER_ORIGIN
originAddress: FAILOVER_DOMAIN_NAME

Media CDN mencoba kembali asal utama rute dengan maksimal tiga sebelum mencoba origin failover. Dalam konfigurasi ini, setelah mencoba asal utama tiga kali, Media CDN mencoba satu terhadap FAILOVER_ORIGIN. Jika failover juga gagal merespons, maka Media CDN menampilkan seluruh respons origin atau, jika tidak ada kode status diterima, respons HTTP 502 Bad Gateway.

Latensi pengisian cache meningkat seiring dengan jumlah percobaan ulang dan peristiwa failover. Meningkatkan nilai waktu tunggu origin (seperti connectTimeout) lebih lanjut berdampak pada latensi pengisian cache karena meningkatkan waktu yang dihabiskan untuk server asal yang kelebihan beban atau sibuk untuk merespons.

Contoh berikut menunjukkan konfigurasi yang mengirim permintaan pengisian ke MY_ORIGIN. Konfigurasi menyebabkan Media CDN mencoba ulang saat terjadi error koneksi (seperti DNS, TCP, atau Error TLS), respons 5xx HTTP dari origin, atau HTTP 404 Not Found. Setelah dua kali percobaan, kode gagal. FAILOVER_ORIGIN.

Total maksimum empat percobaan dilakukan di seluruh origin yang dikonfigurasi: percobaan asli ditambah hingga tiga percobaan percobaan ulang. Anda dapat mengonfigurasi maxAttempts nilai per origin untuk menentukan jumlah percobaan ulang yang dilakukan sebelum yang mencoba untuk gagal.

name: MY_ORIGIN
originAddress: DOMAIN_NAME
maxAttempts: 2 # the number of attempts to make before trying the failoverOrigin
failoverOrigin: FAILOVER_ORIGIN
# what conditions trigger a retry or failover
retryConditions:
- CONNECT_FAILURE
- HTTP_5xx # any HTTP 5xx response
- NOT_FOUND # retry on a HTTP 404
timeout:
  maxAttemptsTimeout: 10s # set a deadline for all retries and failover

Jika origin Anda memerlukan penulisan ulang {i>host<i} atau modifikasi header khusus asal, gunakan contoh konfigurasi originOverrideAction berikut untuk menetapkannya:

name: FAILOVER_ORIGIN
originAddress: "FAILOVER_ORIGIN_HOST"
originOverrideAction:
  urlRewrite:
    hostRewrite: "FAILOVER_ORIGIN_HOST"
  headerAction:
    requestHeadersToAdd:
    - headerName: "Authorization"
      headerValue: "AUTH-KEY"
      replace: true

Berikut adalah konfigurasi yang telah selesai:

name: MY_ORIGIN
originAddress: DOMAIN_NAME
maxAttempts: 2 # the number of attempts to make before trying the failoverOrigin
failoverOrigin: FAILOVER_ORIGIN
# what conditions trigger a retry or failover
retryConditions:
- CONNECT_FAILURE
- HTTP_5xx # any HTTP 5xx response
- NOT_FOUND # retry on a HTTP 404
timeout:
  maxAttemptsTimeout: 10s # set a deadline for all retries and failover
name: FAILOVER_ORIGIN
originAddress: "FAILOVER_ORIGIN_HOST"
originOverrideAction:
  urlRewrite:
    hostRewrite: "FAILOVER_ORIGIN_HOST"
  headerAction:
    requestHeadersToAdd:
    - headerName: "Authorization"
      headerValue: "AUTH-KEY"
      replace: true

Pada contoh sebelumnya, setelan originOverrideAction.hostRewrite menggunakan lebih diutamakan daripada penulisan ulang header yang ada dikonfigurasi pada rute yang mengarah ke titik asal ini.

Anda dapat menggunakan requestHeadersToAdd header unik per asal yang diminta oleh asal tertentu. Kasus penggunaan umum menambahkan header Authorization statis. Karena manipulasi header ini dijalankan selama permintaan origin, header ditambahkan per asal baik menggantikan atau menambahkan ke header yang ada dari bidang yang sama nama. Secara default, Media CDN ditambahkan ke header yang ada. Kepada mengganti header yang ada, tetapkan headerAction.replace ke true.

Failover origin dengan pengalihan mengikuti

Misalnya, Anda telah mengonfigurasi EdgeCacheOrigin berikut dan rute resource EdgeCacheService Anda dikonfigurasi untuk gunakan PrimaryOrigin untuk pengisian cache:

name: PrimaryOrigin
originAddress: "primary.example.com"
maxAttempts: 2
failoverOrigin: "SecondaryOrigin"
retryConditions: [CONNECT_FAILURE]
originRedirect:
  redirectConditions: [FOUND, TEMPORARY_REDIRECT]
name: SecondaryOrigin
originAddress: "secondary.example.com"
maxAttempts: 3
originRedirect:
  redirectConditions: [FOUND, TEMPORARY_REDIRECT]

Dalam contoh ini, ketika Media CDN melakukan pengisian {i>cache<i}, Media CDN membaca konfigurasi PrimaryOrigin dan merespons secara tepat.

Misalkan Media CDN terhubung ke primary.example.com sebagai upaya #1 untuk menghubungi asal. Jika primary.example.com menampilkan respons yang berhasil media CDN menggunakan respons tersebut untuk pengisian cache.

Misalkan primary.example.com menampilkan 302 Found Redirect HTTP ke Location: b.example.com. Kemudian sebagai upaya #2 untuk menghubungi asal, Media CDN mengikuti pengalihan ke b.example.com. Dalam kasus ini, Media CDN melakukan hal berikut:

  • Jika b.example.com menampilkan respons yang berhasil, Media CDN akan menggunakan respons tersebut untuk pengisian cache.
  • Jika b.example.com menampilkan respons pengalihan atau kegagalan, Media CDN gagal ke SecondaryOrigin yang dikonfigurasi. Hal ini karena, dalam contoh ini, PrimaryOrigin dikonfigurasi untuk dua maxAttempts.

Jika Media CDN gagal mencapai SecondaryOrigin, Media CDN menggunakan konfigurasi SecondaryOrigin dan percobaan untuk menghubungkan ke secondary.example.com. Ini adalah upaya #1 untuk menghubungi asal, dan percobaan #3 secara keseluruhan.

Dalam hal ini, Media CDN melakukan hal berikut:

  • Jika secondary.example.com menampilkan respons yang berhasil, Media CDN menggunakan respons tersebut untuk pengisian cache.
  • Jika secondary.example.com menampilkan 302 Found Redirect HTTP ke Location: c.example.com, Media CDN akan mencoba menghubungi c.example.com. Dalam contoh ini, ini adalah percobaan #2 untuk SecondaryOrigin dan cobalah #4 secara keseluruhan.

Jika upaya untuk menghubungi c.example.com menampilkan respons yang berhasil, Media CDN menggunakan respons tersebut untuk pengisian cache. Jika upaya menampilkan pengalihan yang dikonfigurasi untuk diikuti oleh Media CDN, Media CDN menampilkan error 502 Bad Gateway HTTP karena telah mencapai batas maksimum percobaan untuk menghubungi origin. Media CDN melakukan maksimal empat kali percobaan di semua origin, terlepas dari konfigurasi EdgeCacheOrigin. Terakhir, jika Media CDN gagal menghubungi c.example.com, Media CDN menampilkan respons 504 Gateway Timeout atau 502 Bad Gateway respons.

Jika Anda memerlukan health check, round-robin, atau kemudi berdasarkan beban di Anda dapat mengonfigurasi Load Balancer Aplikasi eksternal sebagai metode utama tempat asal.

Konfigurasi pengalihan origin berikut

Media CDN mendukung pengalihan berikut yang ditampilkan oleh asal Anda secara internal selama pengisian cache, bukan menampilkan respons pengalihan secara langsung kepada klien. Saat Media CDN dikonfigurasi untuk mengikuti origin pengalihan, Media CDN mengambil konten dari lokasi pengalihan sebelum menyimpan ke cache dan mengembalikan respons yang dialihkan ke klien. Media CDN mengikuti pengalihan di seluruh domain.

Sebagai praktik terbaik, konfigurasi pengalihan origin hanya untuk origin yang Anda percayai dan kontrol. Pastikan Anda memercayai setiap origin dalam rantai pengalihan karena setiap origin menghasilkan konten yang ditayangkan oleh EdgeCacheService Anda.

Untuk mengaktifkan pengalihan origin berikut, tambahkan konfigurasi berikut ke Referensi EdgeCacheOrigin:

name: MY_ORIGIN
originAddress: "DOMAIN_NAME"
maxAttempts: 2
originRedirect:
  redirectConditions: [FOUND, TEMPORARY_REDIRECT]

Media CDN menggunakan protokol yang ditentukan dalam pengalihan untuk menjangkau semua server. Pastikan semua server yang mungkin menjadi tujuan Media CDN dialihkan untuk mendukung protokol yang Anda butuhkan. Secara khusus, jika protokol diatur ke HTTPS, HTTP/2, atau HTTP/3, Media CDN tidak kembali ke koneksi HTTP/1.1 untuk mengikuti pengalihan yang tidak aman. Header host yang dikirim ke origin yang dialihkan cocok dengan URL yang dialihkan. Media CDN mengikuti satu pengalihan per EdgeCacheOrigin percobaan sebelum menampilkan respons akhir atau mengevaluasi kondisi percobaan ulang atau failover.

Setelan redirectConditions menentukan kode respons HTTP mana yang menyebabkan Media CDN akan mengikuti pengalihan untuk setiap origin.

Kondisi Deskripsi
MOVED_PERMANENTLY Ikuti pengalihan untuk kode respons HTTP 301
DITEMUKAN Ikuti pengalihan untuk kode respons HTTP 302
SEE_OTHER Ikuti pengalihan untuk kode respons HTTP 303
TEMPORARY_REDIRECT Ikuti pengalihan untuk kode respons HTTP 307
PERMANENT_REDIRECT Ikuti pengalihan untuk kode respons HTTP 308

Memecahkan masalah origin

Jika origin tidak berperilaku seperti yang diharapkan, periksa cara memecahkan masalah origin.

Langkah selanjutnya