Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Gunakan log waktu nyata
Dengan log CloudFront real-time, Anda bisa mendapatkan informasi tentang permintaan yang dibuat ke distribusi secara real time (log dikirimkan dalam hitungan detik setelah menerima permintaan). Anda dapat menggunakan log waktu nyata untuk memantau, menganalisis, dan mengambil tindakan berdasarkan kinerja pengiriman konten.
CloudFront log real-time dapat dikonfigurasi. Anda dapat memilih:
-
laju pengambilan sampel untuk log waktu nyata Anda—yaitu, persentase permintaan yang ingin Anda terima catatan log waktu nyata.
-
Kolom khusus yang ingin Anda terima di catatan log.
-
Perilaku cache tertentu (pola jalur) yang ingin Anda terima log waktu nyata.
CloudFront log real-time dikirimkan ke aliran data pilihan Anda di Amazon Kinesis Data Streams. Anda dapat membangun konsumen aliran data Kinesis Anda sendiri, atau menggunakan Amazon Data Firehose untuk mengirim data log ke Amazon Simple Storage Service (Amazon S3), Amazon Redshift, Amazon Service (Service), atau OpenSearch layanan pemrosesan OpenSearch log pihak ketiga.
CloudFront biaya untuk log real-time, selain biaya yang Anda keluarkan untuk menggunakan Kinesis Data Streams. Untuk informasi selengkapnya tentang harga, lihat CloudFront Harga Amazon dan harga
penting
Kami menyarankan Anda menggunakan log untuk memahami sifat permintaan untuk konten Anda, bukan sebagai akuntansi lengkap dari semua permintaan. CloudFront memberikan log waktu nyata dengan upaya terbaik. Entri log untuk permintaan tertentu mungkin dikirim dalam waktu lama setelah permintaan diproses secara aktual dan, dalam kasus yang jarang, entri log mungkin tidak dikirimkan sama sekali. Ketika entri log dihilangkan dari log waktu nyata, jumlah entri dalam log waktu nyata tidak akan cocok dengan penggunaan yang muncul dalam laporan AWS penagihan dan penggunaan.
Topik
Membuat dan menggunakan konfigurasi log real-time
Untuk mendapatkan informasi tentang permintaan yang dibuat untuk distribusi secara real time. Anda dapat menggunakan konfigurasi log real-time. Log dikirimkan dalam hitungan detik setelah menerima permintaan. Anda dapat membuat konfigurasi log real-time di CloudFront konsol, dengan AWS Command Line Interface (AWS CLI), atau dengan CloudFront API.
Untuk menggunakan konfigurasi log real-time, Anda melampirkannya ke satu atau beberapa perilaku cache dalam CloudFront distribusi.
Memahami konfigurasi log waktu nyata
Untuk menggunakan log CloudFront real-time, Anda mulai dengan membuat konfigurasi log real-time. Konfigurasi log waktu nyata berisi informasi bidang log mana yang ingin Anda terima, laju pengambilan sampel untuk catatan log, dan aliran data Kinesis tempat Anda ingin mengirimkan log.
Secara khusus, konfigurasi log waktu nyata berisi pengaturan berikut:
Nama
Nama untuk mengidentifikasi konfigurasi log waktu nyata.
Tingkat pengambilan sampel
Laju pengambilan sampel adalah jumlah keseluruhan antara 1 dan 100 (inklusif) yang menentukan persentase permintaan penampil yang dikirim ke Kinesis Data Streams sebagai catatan log waktu nyata. Untuk menyertakan setiap permintaan penampil dalam catatan waktu nyata Anda, tentukan 100 untuk laju pengambilan sampel. Anda dapat memilih tingkat pengambilan sampel yang lebih rendah untuk mengurangi biaya saat masih menerima sampel representatif data permintaan dalam catatan waktu nyata Anda.
Bidang
Daftar kolom yang disertakan dalam setiap catatan log waktu nyata. Setiap catatan log dapat berisi hingga 40 kolom, dan Anda dapat memilih untuk menerima semua bidang yang tersedia, atau hanya kolom yang Anda butuhkan untuk memantau dan menganalisis kinerja.
Daftar berikut berisi setiap nama bidang dan deskripsi informasi dalam bidang tersebut. Kolom tercantum dalam urutan tampilannya dalam catatan log yang dikirim ke Stream Data Kinesis.
Fields 46-63 adalah data klien media umum (CMCD) yang dapat dikirim oleh klien media player CDNs dengan setiap permintaan. Anda dapat menggunakan data ini untuk memahami setiap permintaan, seperti jenis media (audio, video), kecepatan pemutaran, dan panjang streaming. Bidang ini hanya akan muncul di log waktu nyata Anda jika dikirimkan ke CloudFront.
-
timestamp
Tanggal dan waktu server edge selesai menanggapi permintaan.
-
c-ip
Alamat IP penampil yang membuat permintaan, misalnya,
192.0.2.183
atau2001:0db8:85a3::8a2e:0370:7334
. Jika penampil menggunakan HTTP proxy atau penyeimbang beban untuk mengirim permintaan, nilai bidang ini adalah alamat IP proxy atau penyeimbang beban. Lihat juga bidangx-forwarded-for
. -
s-ip
Alamat IP CloudFront server yang melayani permintaan, misalnya,
192.0.2.183
atau2001:0db8:85a3::8a2e:0370:7334
. -
time-to-first-byte
Jumlah detik antara menerima permintaan dan menulis byte pertama respons, sebagaimana diukur pada server.
-
sc-status
Kode HTTP status respon server (misalnya,
200
). -
sc-bytes
Jumlah total byte yang dikirim server ke penampil sebagai respons terhadap permintaan, termasuk header. Untuk WebSocket koneksi, ini adalah jumlah total byte yang dikirim dari server ke klien melalui koneksi.
-
cs-method
Metode HTTP permintaan diterima dari pemirsa.
-
cs-protocol
Protokol permintaan penampil (
http
,https
,ws
, atauwss
). -
cs-host
Nilai yang disertakan oleh penampil dalam
Host
header permintaan. Jika Anda menggunakan nama CloudFront domain di objek Anda URLs (seperti d111111abcdef8.cloudfront.net), bidang ini berisi nama domain tersebut. Jika Anda menggunakan nama domain alternatif (CNAMEs) di objek Anda URLs (seperti www.example.com), bidang ini berisi nama domain alternatif. -
cs-uri-stem
Seluruh permintaanURL, termasuk string kueri (jika ada), tetapi tanpa nama domain. Misalnya,
/images/cat.jpg?mobile=true
.catatan
Dalam log standar,
cs-uri-stem
nilainya tidak menyertakan string kueri. -
cs-bytes
Jumlah total byte data yang disertakan oleh penampil, termasuk header. Untuk WebSocket koneksi, ini adalah jumlah total byte yang dikirim dari klien ke server pada koneksi.
-
x-edge-location
Lokasi tepi yang melayani permintaan. Setiap lokasi tepi diidentifikasi oleh kode tiga huruf dan nomor yang ditetapkan secara sewenang-wenang (misalnya,DFW3). Kode tiga huruf biasanya sesuai dengan kode bandara International Air Transport Association (IATA) untuk bandara di dekat lokasi geografis lokasi tepi. (Ringkasan ini mungkin berubah di masa mendatang.)
-
x-edge-request-id
String buram yang secara unik mengidentifikasi permintaan. CloudFront juga mengirimkan string ini di header
x-amz-cf-id
respons. -
x-host-header
Nama domain CloudFront distribusi (misalnya, d111111abcdef8.cloudfront.net).
-
time-taken
Jumlah detik (hingga seperseribu detik, misalnya, 0,082) dari saat server menerima permintaan penampil hingga saat server menulis byte terakhir dari respons ke antrian output, yang diukur pada server. Dari perspektif pemirsa, total waktu untuk mendapatkan respons penuh akan lebih lama dari nilai ini karena latensi jaringan dan TCP buffering.
-
cs-protocol-version
HTTPVersi yang ditentukan oleh penampil dalam permintaan. Nilai yang mungkin termasuk adalah
HTTP/0.9
,HTTP/1.0
,HTTP/1.1
,HTTP/2.0
, danHTTP/3.0
. -
c-ip-version
Versi IP dari permintaan (IPv4atauIPv6).
-
cs-user-agent
Nilai dari
User-Agent
header dalam permintaan.User-Agent
header mengidentifikasi sumber permintaan, seperti jenis perangkat dan peramban yang mengirimkan permintaan atau, jika permintaan berasal dari mesin pencari, mesin pencari mana. -
cs-referer
Nilai dari
Referer
header dalam permintaan. Ini adalah nama domain yang membuat permintaan. Perujuk umum termasuk mesin pencari, situs web lain yang terhubung langsung ke objek Anda, dan situs web Anda sendiri. -
cs-cookie
Cookie
header dalam permintaan, termasuk nama—pasangan nilai dan atribut terkait.catatan
Field ini dipotong menjadi 800 byte.
-
cs-uri-query
Bagian string query dari permintaanURL, jika ada.
-
x-edge-response-result-type
Bagaimana server mengklasifikasikan respons tepat sebelum mengembalikan respons ke penampil. Lihat juga
x-edge-result-type
bidang. Nilai yang mungkin termasuk:-
Hit
– Server melayani objek ke penampil dari cache. -
RefreshHit
– Server menemukan objek dalam cache tetapi objek telah kedaluwarsa, sehingga server menghubungi asal untuk memverifikasi bahwa cache memiliki versi terbaru dari objek tersebut. -
Miss
– Permintaan tidak dapat dipenuhi oleh objek dalam cache, sehingga server meneruskan permintaan ke server asal dan mengembalikan hasil ke penampil. -
LimitExceeded
— Permintaan ditolak karena CloudFront kuota (sebelumnya disebut sebagai batas) terlampaui. -
CapacityExceeded
— Server mengembalikan kesalahan 503 karena tidak memiliki kapasitas yang cukup pada saat permintaan untuk melayani objek. -
Error
– Biasanya, ini berarti permintaan tersebut mengakibatkan kesalahan klien (nilaisc-status
bidang ada di4xx
atau kesalahan server (nilaisc-status
bidang ada di5xx
beragam).Jika nilai
x-edge-result-type
adalahError
dan nilai bidang ini tidakError
, klien terputus sebelum menyelesaikan unduhan. -
Redirect
— Server mengarahkan penampil dari HTTP ke HTTPS sesuai dengan pengaturan distribusi.
-
-
x-forwarded-for
Jika penampil menggunakan HTTP proxy atau penyeimbang beban untuk mengirim permintaan, nilai
c-ip
bidang adalah alamat IP proxy atau penyeimbang beban. Dalam hal ini, bidang ini adalah alamat IP penampil yang memulai permintaan. Bidang ini dapat berisi beberapa alamat IP yang dipisahkan koma. Setiap alamat IP dapat berupa IPv4 alamat (misalnya,192.0.2.183
) atau IPv6 alamat (misalnya,2001:0db8:85a3::8a2e:0370:7334
). -
ssl-protocol
Ketika permintaan digunakanHTTPS, bidang ini berisi SSL/TLS protocol that the viewer and server negotiated for transmitting the request and response. For a list of possible values, see the supported SSL/TLS protokol di. Protokol dan cipher yang didukung antara pemirsa dan CloudFront
-
ssl-cipher
Ketika permintaan digunakanHTTPS, bidang ini berisi SSL/TLS cipher that the viewer and server negotiated for encrypting the request and response. For a list of possible values, see the supported SSL/TLS cipher di. Protokol dan cipher yang didukung antara pemirsa dan CloudFront
-
x-edge-result-type
Bagaimana server menggolongkan respons setelah byte terakhir meninggalkan server. Dalam beberapa kasus, jenis hasil dapat berubah antara waktu saat server siap mengirimkan respons dan waktu saat server selesai mengirimkan respons. Lihat juga
x-edge-response-result-type
bidang.Misalnya, dalam HTTP streaming, misalkan server menemukan segmen aliran dalam cache. Dalam skenario itu, nilai kolom ini biasanya adalah
Hit
. Namun, jika penampil menutup koneksi sebelum server mengirimkan seluruh segmen, jenis hasil akhir (dan nilai kolom ini) adalahError
.WebSocket koneksi akan memiliki nilai
Miss
untuk bidang ini karena konten tidak dapat di-cache dan diproksi langsung ke asal.Nilai yang mungkin termasuk:
-
Hit
– Server melayani objek ke penampil dari cache. -
RefreshHit
– Server menemukan objek dalam cache tetapi objek telah kedaluwarsa, sehingga server menghubungi asal untuk memverifikasi bahwa cache memiliki versi terbaru dari objek tersebut. -
Miss
– Permintaan tidak dapat dipenuhi oleh objek di dalam cache, sehingga server meneruskan permintaan ke asal dan mengembalikan hasil ke penampil. -
LimitExceeded
— Permintaan ditolak karena CloudFront kuota (sebelumnya disebut sebagai batas) terlampaui. -
CapacityExceeded
Server mengembalikan kode status HTTP 503 karena tidak memiliki kapasitas yang cukup pada saat permintaan untuk melayani objek. -
Error
– Biasanya, ini berarti permintaan tersebut mengakibatkan kesalahan klien (nilaisc-status
bidang ada di4xx
atau kesalahan server (nilaisc-status
bidang ada di5xx
beragam). Jika nilaisc-status
bidang adalah200
, atau jika nilai bidang iniError
dan nilaix-edge-response-result-type
bidang tidakError
, itu berarti HTTP permintaan berhasil tetapi klien terputus sebelum menerima semua byte. -
Redirect
— Server mengarahkan penampil dari HTTP ke HTTPS sesuai dengan pengaturan distribusi.
-
-
fle-encrypted-fields
Jumlah bidang enkripsi tingkat lapangan yang dienkripsi dan diteruskan server ke asal. CloudFront server mengalirkan permintaan yang diproses ke asal saat mereka mengenkripsi data, sehingga bidang ini dapat memiliki nilai meskipun nilainya
fle-status
adalah kesalahan. -
fle-status
Saat enkripsi tingkat lapangan dikonfigurasi untuk distribusi, bidang ini berisi kode yang menunjukkan apakah badan permintaan berhasil diproses. Ketika server berhasil memproses isi permintaan, mengenkripsi nilai dalam bidang yang ditentukan, dan meneruskan permintaan ke asal, nilai bidang ini adalah
Processed
. Nilai darix-edge-result-type
masih dapat menunjukkan kesalahan sisi klien atau sisi server dalam kasus ini.Nilai yang mungkin untuk kolom ini meliputi:
-
ForwardedByContentType
– Server meneruskan permintaan ke tempat asal tanpa mengurai atau enkripsi karena tidak ada jenis konten yang dikonfigurasi. -
ForwardedByQueryArgs
— Server meneruskan permintaan ke asal tanpa parsing atau enkripsi karena permintaan berisi argumen kueri yang tidak ada dalam konfigurasi untuk enkripsi tingkat lapangan. -
ForwardedDueToNoProfile
– Server meneruskan permintaan ke tempat asal tanpa mengurai atau enkripsi karena tidak ada profil yang ditentukan dalam konfigurasi untuk enkripsi tingkat lapangan. -
MalformedContentTypeClientError
— Server menolak permintaan dan mengembalikan kode status HTTP 400 ke penampil karena nilaiContent-Type
header dalam format yang tidak valid. -
MalformedInputClientError
— Server menolak permintaan dan mengembalikan kode status HTTP 400 ke penampil karena badan permintaan dalam format yang tidak valid. -
MalformedQueryArgsClientError
— Server menolak permintaan dan mengembalikan kode status HTTP 400 ke penampil karena argumen kueri kosong atau dalam format yang tidak valid. -
RejectedByContentType
— Server menolak permintaan dan mengembalikan kode status HTTP 400 ke penampil karena tidak ada jenis konten yang ditentukan dalam konfigurasi untuk enkripsi tingkat lapangan. -
RejectedByQueryArgs
— Server menolak permintaan dan mengembalikan kode status HTTP 400 ke penampil karena tidak ada argumen kueri yang ditentukan dalam konfigurasi untuk enkripsi tingkat bidang. -
ServerError
– Server asal mengembalikan kesalahan.
Jika permintaan melebihi kuota enkripsi tingkat bidang (sebelumnya disebut sebagai batas), bidang ini berisi salah satu kode kesalahan berikut, dan server mengembalikan kode HTTP status 400 ke penampil. Untuk daftar kuota saat ini pada enkripsi tingkat lapangan, lihat Kuotas pada enkripsi tingkat lapangan.
-
FieldLengthLimitClientError
– Kolom yang dikonfigurasi untuk dienkripsi melebihi panjang maksimum yang diizinkan. -
FieldNumberLimitClientError
– Permintaan agar distribusi dikonfigurasi untuk mengenkripsi berisi lebih dari jumlah kolom yang diperbolehkan. -
RequestLengthLimitClientError
– Panjang badan permintaan melebihi panjang maksimum yang diperbolehkan ketika enkripsi tingkat lapangan dikonfigurasi.
-
-
sc-content-type
Nilai HTTP
Content-Type
header respons. -
sc-content-len
Nilai HTTP
Content-Length
header respons. -
sc-range-start
Ketika respon berisi HTTP
Content-Range
header, bidang ini berisi nilai mulai rentang. -
sc-range-end
Ketika respon berisi HTTP
Content-Range
header, bidang ini berisi nilai akhir rentang. -
c-port
Nomor port permintaan dari penampil.
-
x-edge-detailed-result-type
Bidang ini berisi nilai yang sama dengan
x-edge-result-type
bidang, kecuali dalam kasus berikut:-
Ketika objek disajikan ke penampil dari lapisan Origin Shield, bidang ini berisi
OriginShieldHit
. -
Ketika objek tidak dalam CloudFront cache dan respons dihasilkan oleh permintaan asal fungsi Lambda @Edge, bidang ini berisi.
MissGeneratedResponse
-
Ketika nilai bidang adalah
Error
,x-edge-result-type
bidang ini berisi salah satu nilai berikut dengan informasi lebih lanjut tentang kesalahan:-
AbortedOrigin
– Server mengalami masalah dengan asal usul. -
ClientCommError
– Respons ke penampil terganggu karena masalah komunikasi antara server dan penampil. -
ClientGeoBlocked
— Distribusi dikonfigurasi untuk menolak permintaan dari lokasi geografis pemirsa. -
ClientHungUpRequest
– Penampil berhenti sebelum waktunya saat mengirim permintaan. -
Error
— Terjadi kesalahan yang jenis kesalahannya tidak sesuai dengan kategori lainnya. Jenis kesalahan ini dapat terjadi saat server menjalankan respons kesalahan dari cache. -
InvalidRequest
– Server menerima permintaan yang tidak valid dari penampil. -
InvalidRequestBlocked
– Akses ke sumber daya yang diminta diblokir. -
InvalidRequestCertificate
— Distribusi tidak cocok dengan SSL TLS /sertifikat tempat HTTPS koneksi dibuat. -
InvalidRequestHeader
Permintaan mengandung header yang tidak valid. -
InvalidRequestMethod
— Distribusi tidak dikonfigurasi untuk menangani metode HTTP permintaan yang digunakan. Ini dapat terjadi ketika distribusi hanya mendukung permintaan yang dapat disimpan. -
OriginCommError
— Permintaan habis waktu saat menghubungkan ke asal, atau membaca data dari asal. -
OriginConnectError
— Server tidak dapat terhubung ke asal. -
OriginContentRangeLengthError
—Content-Length
Header dalam respons asal tidak cocok dengan panjang diContent-Range
header. -
OriginDnsError
— Server tidak dapat menyelesaikan nama domain asal. -
OriginError
- Asal memberikan jawaban yang salah. -
OriginHeaderTooBigError
– Header yang dikembalikan oleh asalnya terlalu besar untuk diproses oleh server edge. -
OriginInvalidResponseError
– Asal memberikan respons tidak valid. -
OriginReadError
— Server tidak bisa membaca dari asalnya. -
OriginWriteError
— Server tidak bisa menulis ke asal. -
OriginZeroSizeObjectError
– Objek seukuran nol yang dikirim dari sumber mengakibatkan kesalahan. -
SlowReaderOriginError
– Penampil lambat untuk membaca pesan yang menyebabkan kesalahan asal.
-
-
-
c-country
Kode negara yang mewakili lokasi geografis pemirsa, sebagaimana ditentukan oleh alamat IP pemirsa. Untuk daftar kode negara, lihat ISO3166-1
alpha-2. -
cs-accept-encoding
Nilai dari
Accept-Encoding
header di permintaan penampil. -
cs-accept
Nilai dari
Accept
header di permintaan penampil. -
cache-behavior-path-pattern
Pola jalur yang mengidentifikasi perilaku cache yang sesuai dengan permintaan penampil.
-
cs-headers
HTTPHeader (nama dan nilai) dalam permintaan penampil.
catatan
Field ini dipotong menjadi 800 byte.
-
cs-header-names
Nama-nama HTTP header (bukan nilai) dalam permintaan penampil.
catatan
Field ini dipotong menjadi 800 byte.
-
cs-headers-count
Jumlah HTTP header dalam permintaan pemirsa.
-
origin-fbl
Jumlah detik latensi byte pertama antara CloudFront dan asal Anda.
-
origin-lbl
Jumlah detik latensi byte terakhir antara CloudFront dan asal Anda.
-
asn
Nomor sistem otonom (ASN) dari pemirsa.
-
primary-distribution-id
Ketika penerapan berkelanjutan diaktifkan, ID ini mengidentifikasi distribusi mana yang utama dalam distribusi saat ini.
-
primary-distribution-dns-name
Ketika penerapan berkelanjutan diaktifkan, nilai ini menunjukkan nama domain utama yang terkait dengan CloudFront distribusi saat ini (misalnya, d111111abcdef8.cloudfront.net).
CMCDbidang dalam log waktu nyata
Untuk informasi selengkapnya tentang bidang ini, lihat dokumen CTASpesifikasi Web Application Video Ecosystem - Common Media Client Data CTA -5004
. -
cmcd-encoded-bitrate
Bitrate yang dikodekan dari objek audio atau video yang diminta.
-
cmcd-buffer-length
Panjang buffer dari objek media yang diminta.
-
cmcd-buffer-starvation
Apakah buffer kelaparan di beberapa titik antara permintaan sebelumnya dan permintaan objek. Ini dapat menyebabkan pemain berada dalam stat rebuffering, yang dapat menghentikan pemutaran video atau audio.
-
cmcd-content-id
String unik yang mengidentifikasi konten saat ini.
-
cmcd-object-duration
Durasi pemutaran objek yang diminta (dalam milidetik).
-
cmcd-deadline
Batas waktu dari waktu permintaan bahwa sampel pertama objek ini harus tersedia, sehingga status buffer underrun atau masalah pemutaran lainnya dihindari.
-
cmcd-measured-throughput
Throughput antara klien dan server, yang diukur oleh klien.
-
cmcd-next-object-request
Jalur relatif dari objek yang diminta berikutnya.
-
cmcd-next-range-request
Jika permintaan berikutnya adalah permintaan objek sebagian, string ini menunjukkan rentang byte yang akan diminta.
-
cmcd-object-type
Jenis media dari objek saat ini yang diminta.
-
cmcd-playback-rate
1 jika real-time, 2 jika kecepatan ganda, 0 jika tidak bermain.
-
cmcd-requested-maximum-throughput
Throughput maksimum yang diminta yang dianggap klien cukup untuk pengiriman aset.
-
cmcd-streaming-format
Format streaming yang menentukan permintaan saat ini.
-
cmcd-session-id
A GUID mengidentifikasi sesi pemutaran saat ini.
-
cmcd-stream-type
Token mengidentifikasi ketersediaan segmen.
v
= semua segmen tersedia.l
= segmen menjadi tersedia dari waktu ke waktu. -
cmcd-startup
Kunci disertakan tanpa nilai jika objek dibutuhkan segera selama startup, pencarian, atau pemulihan setelah peristiwa buffer-kosong.
-
cmcd-top-bitrate
Rendition bitrate tertinggi yang dapat dimainkan klien.
-
cmcd-version
Versi spesifikasi ini digunakan untuk menafsirkan nama kunci dan nilai yang ditentukan. Jika kunci ini dihilangkan, klien dan server harus menafsirkan nilai-nilai yang didefinisikan oleh versi 1.
Titik Akhir (Kinesis Data Streams)
Titik akhir berisi informasi tentang Kinesis Data Streams tempat Anda ingin mengirim log waktu nyata. Anda memberikan Amazon Resource Name (ARN) dari aliran data.
Untuk informasi selengkapnya tentang membuat Kinesis Data Streams, lihat topik berikut di Panduan Pengembang Amazon Kinesis Data Streams.
-
Lakukan operasi Kinesis Data Streams dasar menggunakan AWS CLI
-
Membuat aliran (menggunakan AWS SDK for Java)
Saat Anda membuat aliran data, Anda perlu menentukan jumlah shard. Gunakan informasi berikut untuk membantu Anda memperkirakan jumlah shard yang Anda butuhkan.
Untuk memperkirakan jumlah shard untuk aliran data Kinesis Anda
-
Hitung (atau perkirakan) jumlah permintaan per detik yang diterima CloudFront distribusi Anda.
Anda dapat menggunakan laporan CloudFront penggunaan
(di CloudFront konsol) dan CloudFront metrik (di CloudWatch konsol CloudFront dan Amazon) untuk membantu menghitung permintaan per detik. -
Tentukan ukuran tipikal dari satu catatan log waktu nyata.
Secara umum, satu catatan log adalah sekitar 500 byte. Catatan besar yang mencakup semua kolom yang tersedia biasanya sekitar 1 KB.
Jika Anda tidak yakin ukuran catatan log Anda, Anda dapat mengaktifkan log waktu nyata dengan laju pengambilan sampel rendah (misalnya, 1%), dan kemudian menghitung ukuran rekaman rata-rata menggunakan data pemantauan di Kinesis Data Streams (total byte masuk dibagi dengan jumlah total catatan).
-
Di halaman harga Amazon Kinesis Data Streams
AWS Pricing Calculator, di bawah, pilih Buat perkiraan kustom Anda sekarang. Dalam kalkulator, masukkan jumlah permintaan (catatan) per detik.
Masukkan ukuran catatan rata-rata dari satu catatan log.
Pilih Tampilkan perhitungan.
Kalkulator harga menunjukkan jumlah pecahan yang Anda butuhkan dan perkiraan biaya.
IAMperan
Peran AWS Identity and Access Management (IAM) yang memberikan CloudFront izin untuk mengirimkan log real-time ke aliran data Kinesis Anda.
Saat membuat konfigurasi log real-time dengan CloudFront konsol, Anda dapat memilih Buat peran layanan baru agar konsol membuat IAM peran untuk Anda.
Ketika Anda membuat konfigurasi log real-time dengan AWS CloudFormation atau CloudFront API (AWS CLI atauSDK), Anda harus membuat IAM peran sendiri dan menyediakan peranARN. Untuk membuat IAM peran sendiri, gunakan kebijakan berikut.
IAMkebijakan kepercayaan peran
Untuk menggunakan kebijakan kepercayaan IAM peran berikut, ganti 111122223333
dengan Akun AWS
nomor Anda. Condition
Elemen dalam kebijakan ini membantu mencegah masalah wakil yang membingungkan karena hanya CloudFront dapat mengambil peran ini atas nama distribusi di Anda Akun AWS.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "cloudfront.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "
111122223333
" } } } ] }
IAMkebijakan izin peran untuk aliran data yang tidak terenkripsi
Untuk menggunakan kebijakan berikut, ganti arn:aws:kinesis:us-east-2:123456789012:stream/StreamName
dengan ARN aliran data Kinesis Anda.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kinesis:DescribeStreamSummary", "kinesis:DescribeStream", "kinesis:PutRecord", "kinesis:PutRecords" ], "Resource": [ "
arn:aws:kinesis:us-east-2:123456789012:stream/StreamName
" ] } ] }
IAMkebijakan izin peran untuk aliran data terenkripsi
Untuk menggunakan kebijakan berikut, ganti arn:aws:kinesis:us-east-2:123456789012:stream/StreamName
dengan ARN aliran data Kinesis Anda dan arn:aws:kms:us-east-2:123456789012:key/e58a3d0b-fe4f-4047-a495-ae03cc73d486
dengan milik ARN Anda AWS KMS key.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kinesis:DescribeStreamSummary", "kinesis:DescribeStream", "kinesis:PutRecord", "kinesis:PutRecords" ], "Resource": [ "
arn:aws:kinesis:us-east-2:123456789012:stream/StreamName
" ] }, { "Effect": "Allow", "Action": [ "kms:GenerateDataKey" ], "Resource": [ "arn:aws:kms:us-east-2:123456789012:key/e58a3d0b-fe4f-4047-a495-ae03cc73d486
" ] } ] }
Membuat konsumen Kinesis Data Streams
Untuk membaca dan menganalisis log waktu nyata, Anda membangun atau menggunakan Kinesis Data Streams konsumen. Saat Anda membangun konsumen untuk log CloudFront waktu nyata, penting untuk mengetahui bahwa bidang di setiap catatan log waktu nyata selalu dikirimkan dalam urutan yang sama, seperti yang tercantum di Bidang bagian. Pastikan Anda membangun konsumen untuk mengakomodasi pesanan tetap ini.
Misalnya, pertimbangkan konfigurasi log waktu nyata yang hanya mencakup tiga kolom ini: time-to-first-byte
, sc-status
, dan c-country
. Dalam skenario ini, kolom terakhir, c-country
, adalah selalu nomor kolom 3 dalam setiap catatan log. Namun, jika Anda kemudian menambahkan kolom ke konfigurasi log waktu nyata, penempatan setiap kolom dalam catatan dapat berubah.
Misalnya, jika Anda menambahkan bidang sc-bytes
dan time-taken
ke konfigurasi log waktu nyata, kolom-kolom ini dimasukkan ke dalam setiap catatan log sesuai dengan urutan yang ditunjukkan pada Bidang bagian. Urutan yang dihasilkan dari semua lima bidang adalah time-to-first-byte
, sc-status
, sc-bytes
, time-taken
, dan c-country
. Bidang c-country
awalnya merupakan bidang nomor 3, tapi sekarang menjadi bidang nomor 5. Pastikan aplikasi konsumen Anda dapat menangani kolom yang mengubah posisi dalam catatan log, jika Anda menambahkan kolom ke konfigurasi log waktu nyata.
Memecahkan masalah log waktu nyata
Setelah Anda membuat konfigurasi log waktu nyata, Anda mungkin menemukan bahwa tidak ada catatan (atau tidak semua catatan) yang dikirimkan ke Stream Data Kinesis. Dalam hal ini, Anda harus terlebih dahulu memverifikasi bahwa CloudFront distribusi Anda menerima permintaan penampil. Jika ya, Anda dapat memeriksa pengaturan berikut untuk melanjutkan pemecahan masalah.
- IAMizin peran
-
Untuk mengirimkan catatan log real-time ke aliran data Kinesis Anda, CloudFront gunakan IAM peran dalam konfigurasi log waktu nyata. Pastikan bahwa kebijakan kepercayaan peran dan kebijakan izin peran sesuai dengan kebijakan yang ditunjukkan dalam IAMperan.
- Perutean Data Kinesis
-
Jika CloudFront menulis catatan log real-time ke aliran data Kinesis Anda lebih cepat daripada yang dapat ditangani oleh aliran, Kinesis Data Streams mungkin membatasi permintaan dari. CloudFront Dalam hal ini, Anda dapat meningkatkan jumlah pecahan dalam aliran data Kinesis. Setiap shard dapat mendukung penulisan hingga 1.000 catatan per detik, hingga maksimum penulisan data 1 MB per detik.