Apakah CloudFront Mengurangi Latensi
Bagaimana cara memecahkan masalah dan mengurangi peningkatan latensi dari cloudfront
Deskripsi Singkat
Untuk memecahkan masalah latensi dari CloudFront, pertama -tama identifikasi mana dari peristiwa berikut yang berkontribusi pada latensi:
– Waktu yang diperlukan untuk permintaan untuk pergi antara klien dan lokasi tepi cloudfront. Ini termasuk proses pencarian Sistem Nama Domain (DNS) dan negosiasi TCP dan SSL/TLS.
– Waktu yang diperlukan untuk permintaan untuk pergi antara CloudFront dan asal. Ini termasuk proses pencarian DNS asal, negosiasi TCP dan SSL/TLS dengan asal, dan waktu yang diambil oleh asal untuk diproses dan merespons dengan suatu objek.
Kemudian, ikuti langkah -langkah pemecahan masalah untuk peristiwa yang diidentifikasi untuk mengurangi latensi.
Ringkasan artikel
Artikel ini membahas pengalaman penulis dalam membangun aplikasi web berkinerja tinggi dengan penggunaan Amazon Web Services (AWS) dan secara khusus berfokus pada pengurangan latensi dari Cloudfront. Penulis menjelaskan latar belakang proyek, mengeksplorasi berbagai cara untuk mencapai latensi rendah, dan arsitektur yang digunakan.
Penulis menekankan pentingnya konsistensi akhirnya dan membahas tantangan untuk mengembalikan hasil pertama kepada konsumen sambil mengumpulkan hasil yang tersisa dari pemasok yang berbeda. Tim menggunakan panggilan asinkron dan elastis AWS untuk Redis untuk mencapai tujuan ini.
Di sisi infrastruktur, penulis memilih AWS Elastic Container Service (ECS) untuk skalabilitas dan Amazon Cloudfront untuk ketersediaan tinggi. Cloudfront bertindak sebagai lapisan cache kedua di atas AWS Elasticache untuk Redis. Artikel ini menyediakan diagram arsitektur AWS secara keseluruhan untuk menggambarkan sistem.
Untuk memastikan ketersediaan dan skalabilitas yang tinggi, autoscaling untuk layanan ECS diterapkan. Balancer beban aplikasi mendeteksi tugas Fargate yang sehat, mengakhiri tugas yang tidak sehat, dan meluncurkan tugas baru untuk menggantinya. Penggunaan beberapa zona ketersediaan memastikan aplikasi terus berjalan bahkan jika zona ketersediaan menjadi tidak tersedia.
Penulis melakukan pengujian beban menggunakan JMeter dan membandingkan latensi antara penyeimbang beban aplikasi dan cloudfront. Hasilnya menunjukkan penurunan latensi yang signifikan saat menggunakan CloudFront, bersama dengan tingkat kesalahan 0%.
Sebagai kesimpulan, penulis menemukan proyek yang menghargai dan memberikan umpan balik dari loyalitas Ascenda tentang arsitektur yang diterapkan. Artikel diakhiri dengan undangan untuk melihat demo aplikasi.
Pertanyaan dan jawaban
1. Apa saja peristiwa yang dapat berkontribusi pada peningkatan latensi dari Cloudfront?
Selama proses pemecahan masalah, peristiwa berikut harus dipertimbangkan:
– Waktu yang diperlukan untuk permintaan untuk pergi antara klien dan lokasi tepi cloudfront, termasuk proses pencarian DNS dan negosiasi TCP dan SSL/TLS.
– Waktu yang diperlukan untuk permintaan untuk pergi antara CloudFront dan Origin, termasuk proses pencarian DNS Origin, TCP dan SSL/TLS negosiasi dengan asal, dan waktu yang diambil oleh asal untuk memproses dan merespons dengan objek.
2. Bagaimana saya bisa memecahkan masalah dan mengurangi latensi dari cloudfront?
Untuk memecahkan masalah dan mengurangi latensi dari CloudFront, ikuti langkah -langkah ini:
– Identifikasi mana dari peristiwa yang disebutkan di atas yang berkontribusi pada latensi.
– Untuk setiap acara, analisis dan optimalkan proses masing -masing. Misalnya, pastikan pencarian DNS yang efisien, meminimalkan jumlah perjalanan pulang pergi TCP atau SSL/TLS, dan mengoptimalkan waktu respons asal.
– Gunakan alat pemantauan dan penebangan cloudfront untuk mengumpulkan data dan mendapatkan wawasan tentang kinerja distribusi Anda.
– Tinjau secara teratur dan perbaiki konfigurasi CloudFront Anda untuk memastikan kinerja yang optimal.
3. Apa pentingnya konsistensi akhirnya dalam aplikasi?
Aplikasi ini membutuhkan konsistensi akhirnya untuk mencapai ketersediaan tinggi tanpa mengorbankan toleransi partisi. Konsistensi yang ketat tidak akan layak karena teorema Brewer (Teorema CAP), yang menyatakan bahwa tidak mungkin untuk menjamin konsistensi, ketersediaan, dan toleransi partisi secara bersamaan dalam sistem terdistribusi. Dengan memilih konsistensi akhirnya, aplikasi dapat memberikan hasil pertama kepada konsumen dengan cepat sambil menggabungkan hasil yang tersisa.
4. Bagaimana hasil agregat tim hasil dari beberapa pemasok hotel?
Tim menggunakan panggilan asinkron ke beberapa pemasok hotel. Ini memungkinkan mereka untuk mengembalikan hasil pertama kepada konsumen sambil secara bertahap mengumpulkan hasil yang tersisa di latar belakang. AWS Elasticache for Redis juga digunakan untuk menyimpan hasilnya, lebih meningkatkan kinerja.
5. Apa tujuan menggunakan AWS Elastic Container Service (ECS) dalam arsitektur?
AWS Elastic Container Service (ECS) digunakan untuk memastikan skalabilitas dalam aplikasi. Penggunaan wadah memungkinkan manajemen dan penyebaran aplikasi yang mudah, dan autoscaling diimplementasikan untuk menangani beban lalu lintas dengan menskalakan layanan backend yang sesuai.
6. Bagaimana Amazon Cloudfront memberikan ketersediaan tinggi?
Amazon Cloudfront bertindak sebagai lapisan caching kedua di atas AWS Elasticache untuk Redis. Itu berfungsi sebagai jaringan pengiriman konten (CDN) yang menyimpan dan memberikan konten dari lokasi tepi terdekat ke pengguna akhir. Ini membantu mengurangi latensi dan memastikan bahwa aplikasi web JS reaksi statis yang di -host pada S3 tetap sangat tersedia.
7. Apa manfaat menggunakan autoscaling dalam layanan ECS?
Autoscaling memastikan bahwa aplikasi dapat menangani permintaan saat ini dengan menyediakan jumlah sumber daya dan kapasitas yang tepat. Ini memungkinkan layanan backend untuk skala masuk dan keluar secara otomatis, menjadikannya toleran terhadap kesalahan dan hemat biaya.
8. Bagaimana penyeimbang beban aplikasi memastikan kesehatan tugas Fargate?
Balancer beban aplikasi menggunakan titik akhir pemeriksaan kesehatan di layanan backend untuk menentukan kesehatan tugas fargate. Jika titik akhir pemeriksaan kesehatan tidak dapat dijangkau, ia menganggap tugas itu tidak sehat, Deregisters dari kelompok target, mengakhiri, dan meluncurkan tugas baru untuk menggantinya. Ini memastikan bahwa aplikasi tetap tersedia bahkan jika zona ketersediaan menjadi tidak tersedia.
9. Manfaat apa yang diberikan CloudFront dibandingkan dengan penyeimbang beban aplikasi?
Dalam pengujian beban yang dilakukan, permintaan yang dibuat ke CloudFront menunjukkan penurunan latensi yang signifikan dibandingkan dengan penyeimbang beban aplikasi. CloudFront bertindak sebagai CDN dan membantu menyimpan dan mengirimkan konten dari lokasi tepi yang lebih dekat ke pengguna akhir, menghasilkan peningkatan kinerja dan berkurangnya latensi.
10. Bagaimana penulis menggambarkan pengalaman mereka mengerjakan proyek?
Penulis menggambarkan proyek tersebut sebagai hal yang menakutkan, terutama bagi pemula di AWS. Namun, itu juga bermanfaat untuk melihat implementasi yang sukses dan hasil yang luar biasa dicapai.
Bagaimana cara memecahkan masalah dan mengurangi peningkatan latensi dari cloudfront
Знайте, как с помощю amazon cloudFront наладить доставку контента ускорить дпчutu дпutuйввввввutu дпннutu дп-нutu дп-utu дп-utu дп-ннutu дпнннutu д-ннutu д–нutu д-нннutu.
Mencapai latensi rendah dengan Amazon Cloudfront
Membangun aplikasi web dengan ketersediaan tinggi dan konsistensi akhirnya
Diterbitkan di
4 menit dibaca
23 Mei 2021
Latar belakang
Ini adalah proyek yang saya lakukan baru -baru ini di paruh pertama tahun 2021. Itu adalah kolaborasi dengan loyalitas Ascenda di mana tim saya ditugaskan untuk membangun aplikasi berkinerja tinggi dengan penggunaan Amazon Web Services (AWS). Persyaratan aplikasi adalah bahwa itu harus sangat terukur dan tersedia saat mencapai konsistensi akhirnya.
Penting untuk menyebutkan konsistensi akhirnya dan tidak konsistensi yang ketat karena hampir tidak mungkin untuk mencapai ketersediaan tinggi dan konsistensi yang ketat tanpa mengorbankan toleransi partisi. Ini karena pembuat bir’Teorema S (Teorema Tutup).
Berkenaan dengan aplikasi, fungsi utamanya akan menggabungkan hasil dari berbagai pemasok hotel dan menampilkan hasil dengan latensi rendah kepada konsumen (yang menggunakan aplikasi). Karena aplikasi kami terhubung ke beberapa pemasok hotel dengan titik akhir yang berbeda dan dengan demikian waktu latensi yang berbeda, mulai dari 2 detik hingga 20 detik, itu juga merupakan tantangan untuk memastikan bahwa kami mengembalikan hasil pertama kepada konsumen terlebih dahulu dan memberikan hasil terbaik pada akhirnya.
Eksplorasi
Tim kami mengeksplorasi berbagai cara yang dapat kami penuhi dengan persyaratan ini. Kami mempertimbangkan berbagai layanan yang dapat kami gunakan pada AWS, pola desain, dan pola komunikasi. Di sisi pemrograman, kami mengumpulkan hasilnya dengan menggunakan panggilan asinkron ke beberapa pemasok sehingga kami dapat memberikan hasil kami dengan konsumen kami terlebih dahulu sambil secara perlahan mengumpulkan hasil yang tersisa. Rekan satu tim saya telah melakukan artikel yang bagus tentang ini di sini di mana kami juga menggunakan AWS Elasticache untuk Redis.
Amazon Web Services (AWS)
Di sisi infrastruktur, tim kami memutuskan untuk menggunakan AWS Elastic Container Service (ECS) untuk memenuhi persyaratan yang dapat diskalakan dan Amazon Cloudfront untuk memastikan ketersediaan tinggi. Amazon Cloudfront juga bertindak sebagai lapisan caching kedua di atas hasil yang di -cache dalam AWS Elasticache untuk Redis.
Ini adalah diagram arsitektur AWS keseluruhan kami.
Dari diagram di atas, juga jelas bahwa Amazon Cloudfront memberikan ketersediaan tinggi untuk aplikasi web JS React JS kami yang disimpan dalam ember S3. Penyimpanan AWS S3 memiliki daya tahan data 99.999999999% Karena sedang dibangun di sekitar daerah sehingga halaman web statis yang di -host pada S3 tidak akan turun. Selain itu, versi telah diaktifkan pada ember S3 yang berisi halaman web statis, mencegah penghapusan yang tidak disengaja memungkinkan kami untuk melestarikan, mengambil dan memulihkan setiap versi objek tertentu.
Untuk memastikan ketersediaan dan skalabilitas aplikasi yang tinggi, autoscaling untuk layanan ECS diimplementasikan. Ini memastikan bahwa layanan backend toleran terhadap kesalahan dan dapat menangani beban lalu lintas dengan menskalakan masuk dan keluar dengan tepat (tergantung pada lalu lintas).
Penyeimbang beban aplikasi mendeteksi jika tugas Fargate sehat menggunakan titik akhir pemeriksaan kesehatan di layanan backend. Jika titik akhir pemeriksaan kesehatan tidak dapat dijangkau, itu akan menganggap tugas itu tidak sehat, deregister dari kelompok target, mengakhiri tugas, dan meluncurkan tugas baru untuk menggantinya. Saat kami menggunakan layanan ECS di berbagai zona ketersediaan, jika zona ketersediaan tidak tersedia, akan ada contoh di zona ketersediaan lainnya yang akan membuat aplikasi tetap berjalan. Lebih banyak tugas akan diluncurkan secara otomatis tergantung pada lalu lintas. Melalui penggunaan autoscaling, kami memastikan bahwa hanya jumlah sumber daya dan kapasitas yang tepat yang disediakan untuk menangani permintaan saat ini, menghemat biaya dalam jangka panjang.
Hasil
Kami menggunakan JMeter untuk memuat uji aplikasi kami, dengan 500 pengguna dan 1 ramp-up, menunjuk ke dua titik akhir yang berbeda (penyeimbang beban aplikasi dan cloudfront). Melihat hasilnya, kita dapat melihat bahwa permintaan yang dibuat ke CloudFront jauh lebih baik dengan penurunan besar latensi (~ 80% pengurangan latensi). Tingkat kesalahan secara mengejutkan 0% juga. Ini harus disebabkan oleh ketersediaan tinggi dan fitur penskalaan otomatis AWS ECS.
Membawa pergi
Meskipun proyek ini menakutkan terutama bagi kami pemula di AWS, tentu saja bermanfaat untuk dapat melihat hasil yang luar biasa ini, yang berarti bahwa implementasi kami baik dan patut dipuji.
Beberapa umpan balik yang diberikan pada arsitektur kami oleh Ascenda Loyalty:
“Hosting Frontend di S3 -> Ide Bagus. Sepertinya mereka’kembali membangun spa sejati”
Jika Anda tertarik dengan apa yang telah kami capai, Anda dapat melihat demo aplikasi kami di sini!
Terima kasih telah membaca: D
Bagaimana cara memecahkan masalah dan mengurangi peningkatan latensi dari cloudfront?
Saya melihat peningkatan latensi dalam tanggapan dari Amazon Cloudfront. Bagaimana saya bisa mengidentifikasi penyebab dan mengurangi latensi?
Deskripsi Singkat
Untuk memecahkan masalah latensi dari CloudFront, pertama -tama identifikasi mana dari peristiwa berikut yang berkontribusi pada latensi:
- Waktu yang diperlukan untuk permintaan untuk pergi antara klien dan lokasi tepi cloudfront. Ini termasuk proses pencarian Sistem Nama Domain (DNS) dan negosiasi TCP dan SSL/TLS.
- Waktu yang diperlukan untuk permintaan untuk pergi antara CloudFront dan asal. Ini termasuk proses pencarian DNS asal, negosiasi TCP dan SSL/TLS dengan asal, dan waktu yang diambil oleh asal untuk diproses dan merespons dengan suatu objek.
Kemudian, ikuti langkah -langkah pemecahan masalah untuk peristiwa yang menyebabkan latensi paling.
Resolusi
Identifikasi peristiwa yang menyebabkan latensi dari CloudFront:
Untuk mengidentifikasi peristiwa mana yang menyebabkan latensi dari Cloudfront, lakukan salah satu dari yang berikut:
- Jalankan perintah CURL berikut:
curl -w "dns_resolution: %| tcp_negotiation_time: %| ssl_negotiation_time: %| ttfb: %| total waktu: %\ n" -o/dev/null -vsl https: // www.contoh.com
Catatan: Mengganti contoh.com dengan nama domain cloudfront Anda atau nama domain alternatif (cName) dan jalur url.
- Periksa berapa lama setiap tahap permintaan jaringan yang diperlukan dalam alat pengembang browser web Anda. Misalnya, jika Anda menggunakan Mozilla Firefox, tab Timing memberikan informasi ini.
Berdasarkan diambil waktu Untuk setiap acara atau permintaan, lihat bagian Resolusi Terkait di artikel ini.
Jika Anda mengamati latensi di masa lalu, periksa bidangnya diambil waktu Dan waktu-ke-pertama-byte di log akses cloudfront. Log akses cloudfront tidak mencatat waktu yang dibutuhkan oleh klien untuk proses pencarian DNS dan negosiasi TCP dan SSL/TLS
Mengurangi latensi dalam resolusi DNS
- Tingkatkan waktu caching DNS di DNS sisi klien.
- Tingkatkan Time to Live (TTL) cache di server DNS lokal.
- Tingkatkan Ttl pada catatan DNS di pendaftar/penyedia DNS Anda.
- Jika resolver Server DNS Dari penyedia layanan internet Anda menyebabkan latensi, kemudian pertimbangkan untuk menggunakan server DNS publik.
Mengurangi latensi di TCP dan SSL/TLS - Waktu Negosiasi
- Periksa bandwidth jaringan lokal dan bandwidth internet.
- Periksa apakah ada gangguan jaringan di penyedia atau router server internet Anda.
- Optimalkan kinerja jaringan lokal Anda melalui penyedia layanan internet atau rute jaringan Anda.
- Konfirmasi Anda menggunakan resolver DNS yang benar yang memungkinkan browser web Anda menemukan lokasi pop terdekat dan benar.
- Untuk meningkatkan kinerja situs HTTPS, jaga agar rantai sertifikasi Anda singkat.
- Latensi dapat disebabkan oleh firewall, proxy, atau router lokal. Untuk menentukan mana yang menyebabkan latensi, jalankan perintah MTR berikut dari sistem Anda. Lihat mendiagnosis masalah jaringan dengan MTR untuk informasi lebih lanjut.
Contoh MTR -RW.com ---no-dns
Catatan: Mengganti contoh.com dengan nama domain Anda.
Mengurangi latensi dalam waktu yang diambil untuk byte pertama (TTFB) dan total waktu yang diambil (TTL)
Jika CloudFront Mengembalikan "X-Cache: Tekan dari CloudFront"
CloudFront Mengembalikan "X-Cache: Tekan dari CloudFront" saat permintaan disajikan dari lokasi tepi terdekat. Untuk mengurangi latensi:
- Nyalakan Kompresi Otomatis CloudFront untuk Mengompres File dan Tingkatkan Kecepatan Unduh.
- Gunakan caching lokal atau browser untuk mengurangi permintaan ke Cloudfront. Tentukan header kontrol cache pada file untuk menginstruksikan browser web untuk menyimpan konten situs web di memori browser atau disk lokal untuk waktu tertentu. Untuk informasi lebih lanjut tentang header kontrol cache, lihat menentukan jumlah waktu yang di-cache Cloudfront menyimpan objek.
Jika CloudFront Mengembalikan "X-Cache: Miss From Cloudfront"
Jika CloudFront Mengembalikan "X-Cache: Miss From Cloudfront" saat permintaan dikirim ke asal. Untuk mengurangi latensi:
- Kurangi Waktu Perjalanan Round (RTT) Antara Lokasi Edge Cloudfront ke Lokasi Asal Anda. Jika permintaan dari lokasi tepi cloudfront menuju ke lokasi asal terdekat, maka RTT lebih sedikit. Namun, TTFB terpengaruh jika permintaan tersebut dari lokasi tepi jauh dari asal dari asal. Untuk mengoptimalkan RTT, replikasi server asal di beberapa wilayah yang secara geografis lebih dekat dengan pengguna Anda. Kemudian, atur DNS nama domain asal Anda sehingga merutekan permintaan ke server asal berdasarkan latensi atau geolokasi. Jika Anda menggunakan Amazon Route 53 sebagai penyedia DNS Anda, maka lihat Memilih Kebijakan Routing untuk informasi lebih lanjut.
- Nyalakan Kompresi Otomatis CloudFront untuk mengompres file dan mengurangi kecepatan unduhan. Jika format file Anda tidak didukung oleh CloudFront Automatic Compression, maka pra-compress file itu di asal Anda dan sajikan dengan Penyandian konten header.
- Periksa latensi dari asal ke cloudfront dengan mengaktifkan metrik latensi asal. Catatan: Tarif CloudWatch standar berlaku.
- Nyalakan CloudFront Origin Shield.
- Tambahkan kebijakan header respons dengan fitur header waktu server dihidupkan. Fitur ini dapat membantu Anda memahami peristiwa yang berkontribusi pada latensi antara Cloudfront dan asal.
Kurangi latensi untuk pengguna akhir dengan API multi-wilayah dengan Cloudfront
Ketika organisasi tumbuh, mereka harus sering melayani pengguna yang tersebar secara geografis dengan latensi rendah, mendorong mereka untuk memiliki infrastruktur global terdistribusi di cloud. Dalam artikel ini, kami menjelaskan cara menggunakan titik akhir API global untuk mengurangi latensi bagi pengguna akhir sambil meningkatkan aplikasi’ketersediaan s.
Dengan menggunakan AWS Global Network dan Amazon CloudFront untuk menggunakan aplikasi ke beberapa wilayah AWS, organisasi dapat memungkinkan pengguna mereka untuk terhubung ke titik akhir API di wilayah tersebut dengan latensi terendah ke permintaan API’asal, saat mengakses data yang secara otomatis disimpan secara sinkron di seluruh wilayah secara real time.
Untuk menjelaskan solusi untuk pengembang API GraphQL, kami menyediakan arsitektur menggunakan AWS AppSync. Arsitektur ini bergantung pada serangkaian komponen untuk mendukung skenario aktif/aktif multi-wilayah, yaitu: CloudFront, Amazon Route 53, AWS Certificate Manager (ACM), dan AWS Lambda@Edge.
Untuk GraphQL, artikel ini melengkapi penyebaran Multi Region Post sebelumnya dari AWS AppSync dengan Amazon DynamoDB Global Tables, dengan menjelaskan cara mengubah solusi global AppSync yang aktif/pasif menjadi yang aktif/aktif. Selain itu, ia menyediakan alternatif berbasis cloudfront untuk nama domain khusus untuk AWS AppSync API.
Jika kamu’RE A REST API Developer, maka Anda dapat mencapai hasil yang serupa dengan mengikuti posting menggunakan routing berbasis latensi dengan Amazon Cloudfront untuk arsitektur aktif multi-wilayah aktif. Disana kamu’Akan juga menemukan panduan tentang pertukaran biaya dan kompleksitas yang akan membantu Anda memikirkan pertimbangan arsitektur dan dampaknya pada fungsionalitas, ketahanan, dan kinerja aplikasi Anda.
Multi-Region GraphQL API dengan CloudFront
Kami melihat organisasi semakin memilih untuk membangun API dengan GraphQL untuk memberikan aplikasi lebih cepat dengan memberi pengembang front-end kemampuan untuk menanyakan banyak database, layanan mikro, dan API dengan satu titik akhir tunggal.
Diagram arsitektur berikut (Gambar 1) menjelaskan cara mengurangi latensi untuk pengguna akhir sambil meningkatkan aplikasi Anda’Ketersediaan S dengan menyediakan titik akhir graphql API di berbagai wilayah, dengan sinkronisasi data real-time aktif/aktif yang didukung oleh Amazon DynamoDB Global Tables. Versi PDF dari diagram ini tersedia di tautan ini. Untuk perincian lebih lanjut tentang cara mengimplementasikan replikasi Amazon DynamoDB, baca Post Multi Wilayah Penyebaran AWS AppSync dengan Amazon DynamoDB Global Tables.
Gambar 1: Diagram untuk multi-region graphql API dengan cloudfront
Ikuti langkah -langkah berikut untuk mengimplementasikan arsitektur yang ditunjukkan dalam diagram:
- Menyebarkan API GraphQL di dua daerah atau lebih menggunakan AWS AppSync, dan kemudian menangani perintah dan permintaan AppSync menggunakan AWS Lambda Resolvers yang terhubung ke database DynamoDB.
- Untuk memberi tahu klien tentang perubahan data di semua wilayah, aktifkan tabel global DynamoDB untuk menjaga data tetap sinkronisasi di seluruh wilayah, kemudian menangani aliran data DynamoDB dengan penangan lambda, sehingga memicu langganan skema graphql yang dibangun khusus. Untuk informasi tambahan tentang cara melakukan ini, lihat Penempatan Post Multi Wilayah AWS AppSync dengan Amazon DynamoDB Global Tables.
- Untuk mendukung domain khusus, unggah domain’Sertifikat SSL ke ACM dan pasang ke distribusi CloudFront.
- Arahkan nama domain Anda ke CloudFront dengan menggunakan Route 53 sebagai Layanan Resolusi Nama DNS Anda.
- Siapkan aturan perutean di Rute 53 untuk merutekan klien global Anda ke wilayah AWS dengan lebih sedikit latensi ke lokasi mereka.
- Sehingga klien Anda dapat mengotentikasi dengan mulus ke titik akhir AWS AppSync di wilayah mana pun, menggunakan lambda@edge untuk meminta rute 53 untuk wilayah terbaik untuk meneruskan permintaan, dan untuk menormalkan otorisasi dengan mengabstraksi kekhususan setiap appsync regionalC.
- Kemudian, klien di seluruh dunia dapat terhubung ke API GraphQL Anda di satu titik akhir yang tersedia di lokasi tepi.
- Cloudfront akan dengan mulus mengarahkan klien’ Permintaan ke API di wilayah dengan latensi terendah ke klien’Lokasi S.
Mengkonfigurasi CloudFront
Berikut adalah langkah-langkah untuk mengonfigurasi CloudFront untuk solusi multi-wilayah aktif/aktif dalam artikel ini:
- Mulailah dengan membuat satu distribusi CloudFront generik sederhana (lihat bagaimana di sini).
- Asal usul distribusi ISN’t relevan untuk keadaan akhir solusi kami karena akan digantikan oleh titik akhir API. Namun, itu harus dapat diselesaikan sehingga fungsi lambda@edge dipanggil. Misalnya, Anda dapat menggunakan AWS.Amazon.com sebagai asal Anda.
- Untuk kesederhanaan, solusi yang dijelaskan dalam posting ini mengimplementasikan URL khusus yang aman dimulai dengan Global-API . Misalnya, jika domain khusus Anda adalah contoh.com, maka API aktif/aktif tersedia di https: // global-API.contoh.com . Untuk mendukungnya, tambahkan nama domain alternatif Anda (e.G., Global-API.contoh.com) ke distribusi cloudfront Anda (lihat bagaimana di sini).
Pada distribusi CloudFront Anda, edit perilaku dan atur nilai properti berikut:
- Mengubah “Metode HTTP yang diizinkan” ke “ Dapatkan, Kepala, Opsi, Put, Posting, Patch, Hapus ” - Ini akan memungkinkan permintaan pos yang diperlukan untuk menangani kueri graphql.
- Mengubah “Kebijakan cache” ke “ CachingDisabled ” - Ini akan menghapus cache apa pun untuk memastikan bahwa semua permintaan itu dinamis.
- Mengubah “Kebijakan Permintaan Asal” ke “ Allviewer ” - Ini akan menambahkan informasi yang diperlukan ke muatan yang dikirim ke fungsi lambda@edge.
Mengkonfigurasi ACM
Untuk mengimplementasikan solusi yang dijelaskan dalam artikel ini, gunakan ACM untuk meminta sertifikat publik ke domain khusus Anda (lihat bagaimana di sini). Solusi ini menggunakan subdomain, jadi Anda harus meminta sertifikat yang mendukung wildcard. Misalnya, jika domain Anda “contoh.com”, Kemudian minta sertifikat untuk menangani keduanya “contoh.com” Dan “*.contoh.com”.
Setelah sertifikat Anda tersedia dan divalidasi pada ACM, pasang ke distribusi CloudFront Anda (lihat bagaimana di sini).
Mengkonfigurasi Amazon Route53
Untuk mengimplementasikan solusi yang dijelaskan dalam artikel ini, buat catatan berikut di zona host Route 53 untuk domain Anda:
- Catatan CName sederhana untuk berfungsi sebagai titik masuk ke distribusi cloudfront Anda (lihat bagaimana di sini).
- Catatan dengan kebijakan perutean berbasis latensi untuk mengonfigurasi beberapa API regional Anda (lihat bagaimana di sini). Ini meningkatkan kinerja bagi pengguna Anda dengan melayani permintaan mereka dari wilayah AWS yang menyediakan latensi terendah.
- Domain khusus untuk setiap wilayah (gunakan domain khusus yang sama di fungsi lambda Anda yang mengikuti).
Misalnya, jika domain Anda “ contoh.com ”, Distribusi CloudFront Anda “ ABCDEFGHIJ.Cloudfront.bersih ”, Dan Anda memiliki API di wilayah Eropa (Irlandia) dan Asia Pasifik (Sydney), maka Anda harus berakhir dengan konfigurasi rute 53 yang mirip dengan Gambar 2.
Gambar 2: Tabel Catatan di Rute 53
Perhatikan kesalahan umum berikut saat mengonfigurasi Rute 53:
- Itu “Irlandia” Dan “Sydney” merekam nilai dalam contoh di atas aren’t URL dari titik akhir API regional. Sebaliknya, ini adalah kunci kamus yang ditentukan dalam kode lambda@edge yang mengikuti.
- Nama catatan latensi dalam contoh di atas’T Khusus wilayah t. Sebaliknya, mereka’nama catatan umum bahwa lambda@edge akan menghubungi ke rute kueri 53 untuk wilayah yang disarankan’S Key.
Untuk detail tambahan tentang bagaimana konfigurasi Route 53 ini digunakan dalam konteks solusi, jalankan langkah -langkah di bagian pengujian artikel ini. Ini memungkinkan Anda mulai dari akun AWS kosong dan membangun jalan ke lingkungan multi-regional yang berfungsi penuh yang dapat Anda uji dengan vue.Aplikasi JS.
Kode untuk lambda@edge
Untuk mengimplementasikan solusi dalam artikel ini, buat fungsi lambda@edge di node.JS menggunakan cuplikan kode di bagian ini sebagai templat (lihat caranya di sini).
Ada beberapa cara untuk menggunakan fungsi Anda ke CloudFront. Cara sederhana adalah memilih “ Tindakan ” dropdown pada editor lambda, lalu pilih “ Menyebarkan ke lambda@edge ”.
Kode berikut memungkinkan Anda menemukan wilayah AWS terbaik untuk permintaan yang masuk. Ini mengasumsikan bahwa Anda telah mengatur kebijakan routing di Route 53 Anda bernama “ Latency-routing ”. Hasil yang mungkin dari fungsi ini, mengingat contoh di tabel Route 53 di atas, adalah “Irlandia” Dan “Sydney”.
const dns = membutuhkan ('dns'); Biarkan Bestorigin; Biarkan kedaluwarsa = 0; Biarkan ttl = 1; Biarkan dns_host = 'rute latensi.contoh.com '; fungsi getbestregion () < console.log("inside resolver"); const now = Date.now(); if (now < expires) return Promise.resolve(bestOrigin); return new Promise((resolve, reject) => < dns.resolveCname(DNS_HOST, (err, addr) =>< bestOrigin = addr[0]; expires = now + TTL; resolve(bestOrigin); >); >); >
Kode berikut memungkinkan Anda memetakan wilayah AWS terbaik (sebagaimana dinilai oleh Rute 53) ke API yang diterbitkan. Kode ini mempertimbangkan contoh pengaturan Route 53 dalam tabel di atas, dengan dua entri API GraphQL (satu untuk Irlandia dan satu untuk Sydney). Anda harus mengubah kode ini agar sesuai dengan pengaturan titik akhir API regional Anda.
Biarkan daerah = []; // Gunakan huruf kecil. Daerah ['Irlandia'] = < "Host": "" >; Daerah ['Sydney'] = < "Host": "" >; fungsi getregionalsettings (Bestregion)
Kode berikut menggunakan fungsi GetBestregion untuk menemukan wilayah AWS terbaik (sesuai dengan Rute 53), kemudian memetakannya ke domain dan rahasia API menggunakan fungsi GetregionalSettings, dan akhirnya mengubah header permintaan untuk meneruskan permintaan ke API yang dipilih.
ekspor.handler = async (acara, konteks, callback) => < const request = event.Records[0].cf.request; let bestRegion = await getBestRegion(); let map = getRegionalSettings(bestRegion); let target_domain = map["Host"]; // Forward GraphQL subscription requests for WebSockets. request.origin.custom.domainName = target_domain; // Forward REST and GraphQL query/mutation requests. request.headers["host"] = [< key: "host", value: target_domain >]; // konsol.log (`header permintaan diatur ke callback" $ "`) (null, request); >;
Aliran ujung ke ujung
Diagram berikut (Gambar 3) menunjukkan aliran komunikasi ujung ke ujung antara solusi’komponen s.
Ini secara visual menjelaskan bagaimana permintaan dari klien pertama kali diterjemahkan oleh Rute 53 (atau server DNS lainnya), dan kemudian dikirim ke distribusi CloudFront yang terdaftar di DNS. Cloudfront kemudian memvalidasi permintaan’S Sertifikat menggunakan ACM, dan kemudian mengubah asal ke titik akhir API dengan latensi terendah ke klien dengan memanfaatkan lambda@edge. Akhirnya, permintaan dikirim ke titik akhir API regional terbaik, dan API’Respons S dikirimkan kembali ke klien oleh CloudFront.
Gambar 3: Diagram Aliran Pesan
Menguji Solusi Aktif/Aktif Multi-Region Anda
Dalam tes yang dijelaskan dalam artikel ini, Anda’LL Gunakan wilayah Irlandia dan Sydney yang sama yang digunakan dalam konfigurasi sampel rute 53 sebelumnya. Langkah -langkah tes berasumsi bahwa Anda’ve sudah melakukan langkah -langkah sebelumnya yang disebutkan dalam artikel ini’S bab-bab sebelumnya untuk membangun solusi multi-wilayah.
Untuk mengendalikan wilayah mana Anda’kembali memukul saat menguji, Anda’ll membutuhkan klien proxy VPN atau yang serupa. Langkah-langkah pengujian dalam artikel ini dilakukan menggunakan Mullvad, layanan VPN komersial open-source yang berbasis di Swedia.
Menguji API GraphQL Multi-Region Aktif/Aktif Anda
Ikuti langkah-langkah ini untuk menyiapkan tes solusi multi-wilayah pada titik akhir GraphQL API.
Bagian ini memungkinkan Anda membangun lingkungan uji AppSync dari awal, bahkan jika Anda tidak memiliki pengalaman sebelumnya dengan AppSync. Anda’LL Gunakan lingkungan ini sebagai prasyarat untuk menguji kueri dan langganan GraphQL di dua bagian berikutnya.
- Luncurkan sampel API GraphQL di daerah Irlandia dan Sydney. Ini akan menggunakan titik akhir API AppSync sepenuhnya fungsional dengan skema sampel yang didukung oleh database DynamoDB regional.
- Untuk menghapus keraguan tentang wilayah apa yang sedang dilanda tes, Don’T mengaktifkan Tabel Global DynamoDB-jika tidak, ikuti penyebaran Post Multi Wilayah AWS AppSync dengan Amazon DynamoDB Global Tables jika Anda ingin mengaktifkan data lintas-regional waktu nyata dan replikasi berlangganan. Tes dalam artikel ini mengasumsikan bahwa Anda Haven’t replikasi yang diaktifkan.
- Gunakan Irlandia-Appsync.contoh.com, misalnya, sebagai Irlandia’nama domain khusus;
- Gunakan Sydney-Appsync.contoh.com, misalnya, sebagai Sydney’nama domain khusus;
- Pastikan Anda mengaitkan API dengan nama domain khusus.
Daerah ['Irlandia'] = < "Host": ".cloudfront.net" >; Daerah ['Sydney'] = < "Host": ".cloudfront.net" >;
- Untuk tujuan pengujian, buat fungsi otorisasi lambda sederhana untuk API GraphQL Anda menggunakan node berikut.Kode sampel JS, dan menyebarkannya ke kedua daerah. Fungsi ini akan menerima string “ otorisasi khusus ” Sebagai satu -satunya token otorisasi yang valid. Perhatikan bahwa token otentikasi hardcoded’t latihan yang baik, dan kami’hanya menggunakannya di sini untuk kesederhanaan tes. Sebaliknya, pertimbangkan untuk menyimpan token Anda di manajer rahasia AWS.
ekspor.handler = async (event) => < const < authorizationToken >= Pengembalian Acara < isAuthorized: authorizationToken === 'custom-authorized', resolverContext: <>>; >;
- Siapkan Fungsi Penonton Lambda sebagai Otoritas Default untuk Titik Akhir API AppSync Regional Anda (lihat How Here), dan hapus setiap tombol API dari konfigurasi AppSync. Ini akan membuat API tersedia untuk umum dengan token sederhana saat melakukan tes, membuat tes lebih mudah dieksekusi. Namun, kecuali inilah yang Anda inginkan, kami merekomendasikan agar Anda melihat semua opsi yang tersedia untuk mengamankan API AppSync Anda.
- Buat mutasi di wilayah Irlandia untuk menambahkan catatan sampel (lihat halaman ini untuk informasi lebih lanjut):
- Arahkan ke Irlandia’S AWS AppSync Console.
- Arahkan ke Irlandia’AppSync API yang Anda buat di langkah sebelumnya.
- Pilih tab kueri di sisi kiri.
- Di bidang Token Otorisasi, ketik otorisasi khusus (seperti di Lambda Otoration).
- Jalankan perintah mutasi berikut:
Mutasi CreateVent < createEvent( name: "Ireland" when: "" where: "" description: "" ) < id name >>
Dengan asumsi bahwa Anda’VE sudah mengatur Global-API Anda.contoh.com pengalihan menggunakan langkah -langkah dari posting ini, lalu itu’duduk! Anda’Siap untuk menguji titik akhir multi-region Anda.
Menguji kueri GraphQL Aktif/Aktif Multi-Region Anda
Dengan asumsi bahwa Anda’Ve sudah mengikuti langkah-langkah yang diperlukan untuk membangun lingkungan uji APPSYNC multi-wilayah dari awal seperti yang dijelaskan di bagian sebelumnya, ikuti langkah-langkah ini untuk menguji solusi multi-wilayah dengan kueri graphql.
- Pada klien VPN Anda, atur koneksi ke server VPN dekat dengan Irlandia (e.G., London, Inggris).
- Permintaan API dengan perintah CURL yang mirip dengan yang berikut untuk menampilkan data sampel, mengganti nama domain dengan milik Anda, dan melewati token otorisasi yang diizinkan oleh Lambda Otorationizer.
$ curl -xpost -h "otorisasi: kustom -otorisasi" -d ' < "query": "query < listEvents < items < name >>> "> 'https: // global-api.contoh.com/graphql/ - Konfirmasikan bahwa respons keriting
< "data": < "listEvents": < "items": [ < "name": "Ireland" >] >>> - Pada klien VPN Anda, atur koneksi ke server VPN yang dekat dengan Sydney (e.G., Melbourne, Australia).
- Jalankan perintah curl lagi - responsnya sekarang harus
< "data": < "listEvents": < "items": [ < "name": "Sydney" >] >>>
Seperti yang Anda lihat, menjalankan perintah curl dari lokasi yang berbeda di dunia menyebabkan titik akhir appsync yang berbeda membalas, meskipun Anda’RE MEMBUAT MULTI-REGION yang sama GraphQL API Endpoint.
Menguji Langganan GraphQL Aktif/Aktif Multi-Region Anda
Untuk menguji langganan GraphQL, ikuti langkah -langkah ini untuk mengujinya menggunakan WebSockets.
Bagian ini juga mengasumsikan bahwa Anda’Ve sudah mengikuti langkah-langkah yang diperlukan untuk membangun lingkungan uji AppSync multi-wilayah dari awal, seperti yang dijelaskan di bagian sebelumnya.
Pendekatan pengujian berikut menggunakan Postman, aplikasi yang memungkinkan Anda berinteraksi dengan API menggunakan POST, GET, dan WebSockets. Urutan langkah yang digunakan dalam tes berikut didasarkan pada instruksi dari membangun klien Websocket waktu-nyata untuk AWS AppSync.
- Buat muatan jabat tangan untuk dikirim saat membuka koneksi WebSocket. Pada alat baris perintah Anda, jalankan perintah berikut, ganti nama domain dengan milik Anda, dan menggunakan token yang ditentukan dalam Lambda Authorizer. Hasilnya harus menjadi string yang dienkripsi base64-simpan string ini dalam notepad karena Anda’ll membutuhkannya nanti untuk tukang pos’Konfigurasi S.
$ echo '' | base64 - Di tukang pos, buat koneksi WebSocket baru mengikuti instruksi di halaman ini. Anda harus dapat melakukannya dengan memilih tombol baru, dan kemudian memilih tombol Permintaan WebSocket.
- Di kotak URL server, ketik URL berikut, pastikan Anda mengganti nama domain Anda:
WSS: // Global-API.contoh.com/graphql/realtime - Di bagian Params, tambahkan parameter berikut:
- Kunci: Payload, Nilai: E30 = (Ini sama dengan kosong <>)
- Kunci: Header, Nilai: (String Base64 yang Anda buat pada langkah pertama)
- Kunci: SEC-WEBSOCKET-PROTOCOL, Nilai: GraphQL-WS
- Verifikasi bahwa koneksi telah dibuat dengan mencari tukang pos’L Label Hijau Terhubung Pada Bagian Pesan, dan dengan mencari WSS yang terhubung ke: //. Pesan di bagian yang sama.
< "id":"test", "payload": < "data": "", "extensions": < "authorization": < "Authorization":"", "host": "", > >>, "type": "start">
berlangganan < subscribeToEventComments(eventId: "Ireland") < content >>
- Verifikasi bahwa langganan telah berhasil dibuat dengan mencari pesan respons Start_ack di Postman’Bagian Pesan S. Untuk pesan berlangganan di atas, responsnya seharusnya .
mutasi < commentOnEvent( content: "test-comment", createdAt: "2000-01-01", eventId: "Ireland" ) < commentId eventId createdAt content >>
Seperti yang Anda lihat, mutasi yang dilakukan di suatu wilayah (e.G., Irlandia) memicu langganan yang terhubung ke wilayah itu. Untuk mutasi regional tunggal untuk memicu langganan klien di semua wilayah (e.G., Irlandia dan Sydney), Anda harus mengatur replikasi lintas wilayah dengan perambatan mutasi. Ikuti penyebaran Post Multi Wilayah AWS AppSync dengan Amazon DynamoDB Global Tables untuk mempelajari cara melakukan ini.
Membangun Aplikasi Amplify untuk Menguji Multi-Region GraphQL API Anda
Sekarang kamu’yakin bahwa API GraphQL aktif/aktif multi-wilayah Anda berfungsi untuk kedua kueri dan langganan, Anda dapat memanfaatkan AWS amplifikasi untuk membuat klien uji untuk API.
Dalam artikel ini, kami menggunakan vue.JS dengan Amplify JavaScript untuk membangun aplikasi klien sederhana, tetapi memperkuat perpustakaan juga mendukung klien iOS, Android, dan Flutter, sehingga memberikan kemampuan yang sama dalam runtime yang berbeda ini. Klien Amplify yang Didukung memberikan abstraksi sederhana untuk berinteraksi dengan AppSync GraphQL API mendukung beberapa baris kode, termasuk kemampuan websocket bawaan yang sepenuhnya kompatibel dengan protokol waktu nyata AppSync Websocket di luar kotak.
Ikuti urutan langkah ini untuk membangun aplikasi pengujian Anda.
- Pastikan Anda memiliki Node.JS terpasang - Anda membutuhkannya untuk langkah selanjutnya.
- Buat vue.JS memperkuat aplikasi di wilayah Irlandia dengan menjalankan langkah -langkah ini.
- Hubungkan aplikasi Anda ke Irlandia’S API.
- Jalankan perintah berikut untuk mengikat aplikasi Anda ke Irlandia’SPPoT AKHIR APPSYNC, Mengganti dan:
Amplify Tambahkan Codegen --ApiID -Profile - Jalankan perintah berikut untuk menghasilkan kode terkait untuk kueri dan langganan:
memperkuat codegen
- Jalankan NPM Jalankan Sajikan di Alat Baris Perintah Anda.
- Verifikasi bahwa ada’t kesalahan apa pun.
- Arahkan ke http: // localhost: 8080/ - Anda akan melihat vue default.Aplikasi JS.
ListEvents (filter: $ filter, batas: $ limit, nextToken: $ nextToken) < items < id name where when description comments < items < content commentId >>> nextToken>
Acara
Peristiwa: < , name=">"">
>>>
- Jalankan NPM Jalankan Sajikan di Alat Baris Perintah Anda.
- Verifikasi bahwa ada’t kesalahan apa pun.
- Arahkan ke http: // localhost: 8080/ - Anda sekarang harus melihat terdaftar acara Irlandia yang sebelumnya dibuat dalam tes Anda, di mana pun di dunia Anda’menjalankan aplikasi. Ini karena kamu’kembali terhubung langsung ke Irlandia’titik akhir regional.
- Menjelang langkah berikutnya, salin acara Irlandia’S ID ke notepad (ini adalah uuid 36 karakter acak).
mutasi < commentOnEvent( content: "test-comment", createdAt: "2000-01-01", eventId: "" ) < commentId eventId createdAt content >>
- Ubah Ekspor SRC/AWS.file js, mengubah nilai parameter AWS_Appsync_GraphqlendPoint dari Irlandia’S API Endpoint ke titik masuk global Anda (E.G., https: // global-api.contoh.com/graphql).
- Aplikasi harus menyegarkan secara otomatis, mendaftarkan item Irlandia atau item Sydney, tergantung di mana Anda berada di dunia.
Menguji Aplikasi Amplify Anda terhadap API GraphQL Multi-Region Anda
Ikuti langkah-langkah ini untuk menguji titik akhir API graphql multi-region Anda dengan aplikasi amplifikasi.
- Pada klien VPN Anda, atur koneksi ke server VPN yang dekat dengan Sydney (e.G., Melbourne, Australia).
- Arahkan ke aplikasi amplifikasi Anda di browser web (e.G., http: // localhost: 8080). Anda sekarang harus melihat terdaftar acara Sydney yang sebelumnya dibuat dalam tes Anda.
- Jalankan perintah mutasi untuk menambahkan komentar di acara Sydney dengan cara yang sama seperti yang Anda lakukan untuk Irlandia.
- Pastikan bahwa komentar baru muncul secara otomatis di aplikasi Anda, tepat di bawah acara Sydney.
Seperti yang Anda lihat, aplikasi Anda dengan mulus mengenai titik akhir API AppSync terdekat, baik untuk kueri dan langganan, sambil terhubung ke titik akhir API global tunggal global.
Membersihkan
Untuk membersihkan infrastruktur yang dibuat, hapus AppSync API, distribusi cloudfront, fungsi lambda@edge, dan catatan Route53 yang Anda buat untuk tes ini.
Kesimpulan
Dalam posting ini, kami menggambarkan cara mengurangi latensi untuk pengguna akhir, sambil meningkatkan aplikasi’Ketersediaan S, dengan memberikan titik akhir API di beberapa daerah AWS.
Solusinya memanfaatkan CloudFront, Route 53, dan ACM untuk mendukung API global Anda’Nama domain khusus, dan menggunakan lambda@edge untuk meneruskan permintaan yang masuk ke titik akhir API terbaik berdasarkan latensi jaringan ke pemohon.
Untuk menjelaskan solusi kepada pengembang API GraphQL, kami memberikan panduan mendalam dari arsitektur referensi yang dapat Anda unduh sebagai PDF di sini. Jika kamu’RE A REST API Developer, maka Anda dapat mencapai hasil yang serupa dengan mengikuti posting menggunakan routing berbasis latensi dengan Amazon Cloudfront untuk arsitektur aktif multi-wilayah aktif.
Untuk menjaga tes tetap sederhana, kami tidak’t memungkinkan replikasi data lintas-regional. Jika kamu’D ingin membangun titik akhir graphQL aktif/aktif multi-wilayah dengan data lintas-regional dan replikasi berlangganan, kemudian gabungkan apa yang Anda pelajari dari artikel ini bersama dengan penyebaran Multi Wilayah AWS AppSync dengan Amazon DynamoDB Global Tables Global.
Aaron Sempf
Aaron Sempf adalah arsitek solusi mitra utama global, dalam tim integrator sistem global. Saat tidak bekerja dengan mitra AWS GSI, ia dapat ditemukan prototipe pengkodean untuk robot otonom, perangkat IoT, dan solusi terdistribusi.
Fernando Ibanez
Fernando Ibanez adalah arsitek solusi yang berbasis di Carolina Utara di tim pendidikan tinggi. Fernando senang membantu pelanggan merancang dan mengimplementasikan solusi otomatisasi untuk membuat cloud mereka digunakan lebih sederhana. Di waktu luangnya, Fernando senang pergi ke teater, mencoba masakan baru, dan menghabiskan waktu bersama keluarganya.
Jorge Fonseca
Jorge adalah arsitek solusi dengan 20+ tahun di dalamnya, memegang 2 gelar master dan semua sertifikasi AWS. Di AWS, ia membantu pelanggan melalui perjalanan cloud mereka dengan mengubah tantangan kompleks menjadi peta jalan yang dapat ditindaklanjuti untuk pemirsa teknis dan bisnis.
Ralph Richards
Ralph adalah solusi arsitek di Amazon Web Services yang berbasis di London. Dia bekerja dengan Perangkat Lunak Perangkat Lunak & Pelanggan SaaS sebagai penasihat teknis yang membantu mereka mencapai tujuan bisnis mereka di cloud. Dia juga berspesialisasi dalam teknologi kontainer, dengan minat dalam membangun aplikasi modern menggunakan pendekatan layanan mikro. Di luar pekerjaan, ia menikmati fotografi, membaca dan menjelajahi tempat -tempat baru di perjalanan darat.
Доставляйте контент ыстро, с низкой задержкой и Выыокой скоростюю пери и чи кой ско ac пи пачий пи
Amazon CloudFront - это сервис сети доставк penting контента (CDN), созданыйныйноноilan, ыыойныйн pemeriksaan днббancing днutu ынббancing днбancing дббнancing дбнancing дбнancing дбнancing дбнancing дбнancing дбннancing дбнancing дбнancing ыбныйныйа я ыбныйныйа ujian дбнancing, В.
Примеры исползования
Предостав kata ыстр secara
Хватывайте зрителей по всем мир В течние миллисекунд б бныхнн pemeriksaan внно orang dengan лний и шифрованию на уровне поля.
Ускоffodйй доставку динамеско.... контента и api
О тимирйте доставку динамическо edit веб-контанта сномбнознознознознознознознознознознознознознознознознознознознознознознозно secara фраструктуalisasi AWS, котора A поiden живает периферийное завершение и websockets.
Потокова masuk передача Видео В ржиме рнно A Времени ии по тованию
О потокоiripю переancing, Воспрозводит terang хннннancing дновааalisasi дновно дно orang дновно дно orang днннд berubah у устройство бember.
Распространting и исправления ибновленияalisasi
Аemberратически масштаб pй 201 й сети (OTA).
Клиенты
Как начать работу
Anda
Прочитайте рководст… о налале работы знайте, что cloudFront может сделать д длust Вас вс д ваabat.
A
Знайте, как с помощю amazon cloudFront наладить доставку контента ускорить дпчutu дпutuйввввввutu дпннutu дп-нutu дп-utu дп-utu дп-ннutu дпнннutu д-ннutu д--нutu д-нннutu.
Попробйте cloudFront еесплатно
Начните разработку на Aws же содня ббода jaret.
Подробне обб Aws
Подробне обб Aws
- Что такоental AWS?
- Что такоedit облачные Вычисления?
- Инклюзивность, мно A AWS
- Что такое devops?
- Что такое контейнер?
- Что такоedit зеро данных?
- Безопасность облака aws
- Новые Возожности
- Б Pertanyaan
- Пресс - рзызы
Р для раоты с AWS
- Начало работы
- Обчение и с се Agustusтикация
- Библиотека рений Aws
- Центр ахитектуры
- Вопросы и ответы по продуктам и тническим тамам
- Аналитические отчеты
- Па Agustik AWS
Разработчики на Aws
- Центр рзработчика
- Пакеты SDK и инструентарий
- .NET на AWS
- Python на Aws
- Java на Aws
- Php на Aws
- Javascript на Aws
Подержка
- Свяжитесь с нами
- Полчение помощи специалиста
- Обратиться В слжбу подержкиии
- Центр знаний
- AWS Re: Posting
- Dukungan обзор AWS
- Юридическая иоормация
- Работа В AWS
Amazon.com - работодатель рвных Возожностей. Ы предостаirip пншинств, женщинам, лицам с о оancingчччччдд pengadilan, джнаutu днаutu джапнаи бнар isten джарнаи вжutu джарнарнар omanм дждддutu джарutu джарutu дбарutu дбарна oman ддддддutu дбанutu дбарutu дбара uman дбд. едерных г гпп юбой сексуальной ориентации независимо о х в в воз balikтастататаedit вemberemberasan.
- Конфиденциальность
- |
- Условия полззования сайтом
- |
- Параметры файлов cookie
- |
- © 2023 г. Amazon Web Services, Inc. и дочерние предприook я. Вс права защищены.
Ваш бразер устаре_. Рекомендуе secara.
Прекращение подержки Internet Explorer
Подержка AWS для Internet Explorer заканчиваетotan 07/31/2022. Подерживаеые бразеры: chrome, firefox, edge и safari. Подробнее secara »
- Jalankan perintah berikut untuk mengikat aplikasi Anda ke Irlandia’SPPoT AKHIR APPSYNC, Mengganti dan: