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
Di konsol Google Cloud, buka halaman Origins Media CDN.
Klik Create origin.
Masukkan nama untuk origin. Misalnya:
cloud-storage-origin
.Opsional: Masukkan deskripsi.
Untuk Origin address, pilih Select a Google Cloud Storage bucket.
Buka bucket Cloud Storage dan pilih bucket tersebut.
Untuk Cloud Storage, pertahankan protokol dan port default setelan.
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:
- Pilih Enable origin override.
- Di bagian Header, tentukan header dengan menambahkan satu atau beberapa header pasangan nama-nilai.
Opsional: Pilih origin failover untuk dicoba jika origin ini menjadi tidak dapat dijangkau. Anda dapat memperbarui kolom ini nanti.
Pilih kondisi pengalihan.
Pilih coba lagi kondisi.
Untuk Upaya maksimum, pilih jumlah upaya maksimum untuk mengisi cache dari origin ini.
Opsional: Tentukan timeout berikut nilai-nilai:
- Untuk Waktu tunggu koneksi habis, pilih durasi maksimum untuk menunggu koneksi origin yang akan dibuat.
- Untuk Waktu tunggu respons, pilih durasi maksimum yang diizinkan untuk respons untuk dilengkapi.
- Untuk Waktu tunggu baca, pilih durasi tunggu maksimum antara pembacaan satu koneksi atau aliran HTTP.
Opsional: Klik Tambahkan label dan tentukan satu atau beberapa pasangan nilai kunci.
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 baruADDRESS
: 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.
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
Di konsol Google Cloud, buka halaman Origins Media CDN.
Pilih origin Anda, lalu klik Edit.
Untuk protokol, pilih HTTPS atau HTTP. Untuk HTTP, juga menentukan port sebagai
80
.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:
- Mesin Komputasi Grup instance VM.
- Grup endpoint jaringan (termasuk VM Compute Engine dan cluster Google Kubernetes Engine).
- Grup endpoint jaringan serverless (fungsi Cloud Run, App Engine, dan Cloud Run).
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.
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 mengonfigurasiurlRewrite.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
Di konsol Google Cloud, buka halaman Origins Media CDN.
Klik Create origin.
Masukkan nama untuk origin. Misalnya:
load-balancer-origin
.Opsional: Masukkan deskripsi.
Untuk Origin address, pilih Tentukan FQDN atau alamat IP.
Masukkan FQDN atau alamat IP untuk load balancer Google Cloud Anda.
Opsional: Pilih origin failover untuk dicoba jika origin ini menjadi tidak dapat dijangkau. Anda dapat memperbarui kolom ini nanti.
Pilih coba lagi kondisi.
Untuk Upaya maksimum, pilih jumlah upaya maksimum untuk mengisi cache dari origin ini.
Opsional: Tentukan timeout berikut nilai-nilai:
- Untuk Waktu tunggu koneksi habis, pilih durasi maksimum untuk menunggu koneksi origin yang akan dibuat.
- Untuk Waktu tunggu respons, pilih durasi maksimum yang diizinkan untuk respons untuk dilengkapi.
- Untuk Waktu tunggu baca, pilih durasi tunggu maksimum antara pembacaan satu koneksi atau aliran HTTP.
Opsional: Klik Tambahkan label dan tentukan satu atau beberapa pasangan nilai kunci.
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 asalLB_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 5
xx 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 keSecondaryOrigin
yang dikonfigurasi. Hal ini karena, dalam contoh ini,PrimaryOrigin
dikonfigurasi untuk duamaxAttempts
.
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
menampilkan302 Found Redirect
HTTP keLocation: c.example.com
, Media CDN akan mencoba menghubungic.example.com
. Dalam contoh ini, ini adalah percobaan #2 untukSecondaryOrigin
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.