Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Praktik terbaik untuk menerima koneksi masuk ke Amazon ECS dari internet
Jika Anda menjalankan layanan publik, Anda harus menerima lalu lintas masuk dari internet. Misalnya, situs web publik Anda harus menerima permintaan HTTP masuk dari browser. Dalam kasus seperti itu, host lain di internet juga harus memulai koneksi masuk ke host aplikasi Anda.
Salah satu pendekatan untuk masalah ini adalah meluncurkan wadah Anda di host yang berada di subnet publik dengan alamat IP publik. Namun, kami tidak merekomendasikan ini untuk aplikasi skala besar. Untuk ini, pendekatan yang lebih baik adalah memiliki lapisan input yang dapat diskalakan yang berada di antara internet dan aplikasi Anda. Untuk pendekatan ini, Anda dapat menggunakan salah satu AWS layanan yang tercantum di bagian ini sebagai masukan.
Penyeimbang Beban Aplikasi
Fungsi Application Load Balancer pada lapisan aplikasi. Ini adalah lapisan ketujuh dari model Open Systems Interconnection (OSI). Hal ini membuat Application Load Balancer cocok untuk layanan HTTP publik. Jika Anda memiliki situs web atau REST API HTTP, maka Application Load Balancer adalah penyeimbang beban yang cocok untuk beban kerja ini. Untuk informasi selengkapnya, lihat Apa itu Application Load Balancer? dalam Panduan Pengguna untuk Penyeimbang Beban Aplikasi.
Dengan arsitektur ini, Anda membuat Application Load Balancer di subnet publik sehingga memiliki alamat IP publik dan dapat menerima koneksi masuk dari internet. Ketika Application Load Balancer menerima koneksi masuk, atau lebih khusus lagi permintaan HTTP, ia membuka koneksi ke aplikasi menggunakan alamat IP pribadinya. Kemudian, ia meneruskan permintaan melalui koneksi internal.
Application Load Balancer memiliki keunggulan sebagai berikut.
-
SSL/TLS penghentian — Application Load Balancer dapat mempertahankan komunikasi HTTPS yang aman dan sertifikat untuk komunikasi dengan klien. Secara opsional dapat menghentikan koneksi SSL pada tingkat penyeimbang beban sehingga Anda tidak perlu menangani sertifikat dalam aplikasi Anda sendiri.
-
Perutean lanjutan — Penyeimbang Beban Aplikasi dapat memiliki beberapa nama host DNS. Ini juga memiliki kemampuan routing lanjutan untuk mengirim permintaan HTTP masuk ke tujuan yang berbeda berdasarkan metrik seperti nama host atau jalur permintaan. Ini berarti bahwa Anda dapat menggunakan Application Load Balancer tunggal sebagai input untuk banyak layanan internal yang berbeda, atau bahkan layanan mikro pada jalur yang berbeda dari REST API.
-
Dukungan gRPC dan soket web — Application Load Balancer dapat menangani lebih dari sekadar HTTP. Itu juga dapat menyeimbangkan layanan berbasis gRPC dan websocket, dengan HTTP/2 dukungan.
-
Keamanan — Application Load Balancer membantu melindungi aplikasi Anda dari lalu lintas berbahaya. Ini mencakup fitur seperti mitigasi sinkronisasi HTTP, dan terintegrasi dengan AWS Web Application Firewall (AWS WAF). AWS WAF Lebih lanjut dapat menyaring lalu lintas berbahaya yang mungkin berisi pola serangan, seperti injeksi SQL atau skrip lintas situs.
Penyeimbang Beban Jaringan
Penyeimbang Beban jaringan berfungsi pada lapisan keempat dari model Open Systems Interkoneksi (OSI). Ini cocok untuk protokol atau skenario non-HTTP di mana enkripsi ujung ke ujung diperlukan, tetapi tidak memiliki HTTP-specific fitur yang sama dengan Application Load Balancer. Oleh karena itu, Network Load Balancer paling cocok untuk aplikasi yang tidak menggunakan HTTP. Untuk informasi selengkapnya, lihat Apa itu Network Load Balancer? dalam Panduan Pengguna untuk Penyeimbang Beban Jaringan.
Ketika Network Load Balancer digunakan sebagai input, fungsinya mirip dengan Application Load Balancer. Ini karena dibuat di subnet publik dan memiliki alamat IP publik yang dapat diakses di internet. Network Load Balancer kemudian membuka koneksi ke alamat IP pribadi host yang menjalankan wadah Anda, dan mengirimkan paket dari sisi publik ke sisi pribadi.
Fitur Network Load Balancer
Karena Network Load Balancer beroperasi pada tingkat yang lebih rendah dari tumpukan jaringan, ia tidak memiliki serangkaian fitur yang sama dengan Application Load Balancer. Namun, ia memiliki fitur-fitur penting berikut.
-
End-to-end Enkripsi - Karena Network Load Balancer beroperasi pada lapisan keempat model OSI, ia tidak membaca isi paket. Hal ini membuatnya cocok untuk komunikasi load balancing yang membutuhkan enkripsi end-to-end.
-
Enkripsi TLS — Selain enkripsi ujung ke ujung, Network Load Balancer juga dapat menghentikan koneksi TLS. Dengan cara ini, aplikasi backend Anda tidak harus mengimplementasikan TLS mereka sendiri.
-
Dukungan UDP — Karena Network Load Balancer beroperasi pada lapisan keempat model OSI, ini cocok untuk beban kerja dan protokol non HTTP selain TCP.
Menutup koneksi
Karena Network Load Balancer tidak mengamati protokol aplikasi pada lapisan yang lebih tinggi dari model OSI, ia tidak dapat mengirim pesan penutupan ke klien dalam protokol tersebut. Tidak seperti Application Load Balancer, koneksi tersebut perlu ditutup oleh aplikasi atau Anda dapat mengonfigurasi Network Load Balancer untuk menutup koneksi lapisan keempat ketika tugas dihentikan atau diganti. Lihat pengaturan penghentian koneksi untuk grup target Network Load Balancer di dokumentasi Network Load Balancer.
Membiarkan Network Load Balancer menutup koneksi pada lapisan keempat dapat menyebabkan klien menampilkan pesan kesalahan yang tidak diinginkan, jika klien tidak menanganinya. Lihat Builders Library untuk informasi lebih lanjut tentang konfigurasi klien yang direkomendasikan di sini
Metode untuk menutup koneksi akan bervariasi menurut aplikasi, namun salah satu caranya adalah memastikan bahwa penundaan deregistrasi target Network Load Balancer lebih lama dari batas waktu koneksi klien. Klien akan habis waktu terlebih dahulu dan terhubung kembali dengan anggun melalui Network Load Balancer ke tugas berikutnya sementara tugas lama perlahan-lahan menguras semua kliennya. Untuk informasi selengkapnya tentang penundaan deregistrasi target Network Load Balancer, lihat dokumentasi Network Load Balancer.
API HTTP Gerbang Amazon API
Amazon API Gateway cocok untuk aplikasi HTTP dengan ledakan tiba-tiba dalam volume permintaan atau volume permintaan rendah. Untuk informasi selengkapnya, lihat Apa itu Amazon API Gateway? dalam Panduan Pengembang API Gateway.
Model penetapan harga untuk Application Load Balancer dan Network Load Balancer menyertakan harga per jam agar penyeimbang beban tetap tersedia untuk menerima koneksi masuk setiap saat. Sebaliknya, API Gateway mengenakan biaya untuk setiap permintaan secara terpisah. Ini memiliki efek bahwa, jika tidak ada permintaan yang masuk, tidak ada biaya. Di bawah beban lalu lintas tinggi, Application Load Balancer atau Network Load Balancer dapat menangani volume permintaan yang lebih besar dengan harga per permintaan yang lebih murah daripada API Gateway. Namun, jika Anda memiliki jumlah permintaan yang rendah secara keseluruhan atau memiliki periode lalu lintas rendah, maka harga kumulatif untuk menggunakan API Gateway harus lebih hemat biaya daripada membayar biaya per jam untuk mempertahankan penyeimbang beban yang kurang dimanfaatkan. API Gateway juga dapat menyimpan respons API, yang dapat mengakibatkan tingkat permintaan backend yang lebih rendah.
Fungsi API Gateway yang menggunakan tautan VPC yang memungkinkan layanan terkel AWS ola untuk terhubung ke host di dalam subnet pribadi VPC Anda, menggunakan alamat IP pribadinya. Ini dapat mendeteksi alamat IP pribadi ini dengan melihat catatan penemuan AWS Cloud Map layanan yang dikelola oleh Amazon ECS Service Discovery.
API Gateway mendukung fitur-fitur berikut.
-
Operasi API Gateway mirip dengan load balancer, tetapi memiliki kemampuan tambahan yang unik untuk manajemen API
-
API Gateway menyediakan kemampuan tambahan seputar otorisasi klien, tingkatan penggunaan, dan request/response modifikasi. Untuk informasi selengkapnya, lihat fitur Amazon API Gateway
. -
API Gateway dapat mendukung titik akhir gateway API edge, regional, dan pribadi. Titik akhir tepi tersedia melalui CloudFront distribusi terkelola. Titik akhir regional dan pribadi keduanya bersifat lokal untuk suatu Wilayah.
-
SSL/TLS penghentian
-
Merutekan jalur HTTP yang berbeda ke layanan mikro backend yang berbeda
Selain fitur-fitur sebelumnya, API Gateway juga mendukung penggunaan otorisasi Lambda kustom yang dapat Anda gunakan untuk melindungi API Anda dari penggunaan yang tidak sah. Untuk informasi selengkapnya, lihat Catatan Bidang: Container-based API tanpa server dengan Amazon ECS dan Amazon API Gateway.