View a markdown version of this page

Komponen Amazon ECS Service Connect - Amazon Elastic Container Service

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Komponen Amazon ECS Service Connect

Saat menggunakan Amazon ECS Service Connect, Anda mengonfigurasi setiap layanan Amazon ECS untuk menjalankan aplikasi server yang menerima permintaan jaringan (layanan client-server) atau untuk menjalankan aplikasi klien yang membuat permintaan (layanan klien).

Saat Anda bersiap untuk mulai menggunakan Service Connect, mulailah dengan layanan client-server. Anda dapat menambahkan konfigurasi Service Connect ke layanan baru atau layanan yang sudah ada. Amazon ECS membuat titik akhir Service Connect di namespace. Selain itu, Amazon ECS membuat penerapan baru di layanan untuk menggantikan tugas yang sedang berjalan.

Tugas yang ada dan aplikasi lain dapat terus terhubung ke titik akhir yang ada, dan aplikasi eksternal. Jika layanan client-server menambahkan tugas dengan menskalakan, koneksi baru dari klien akan seimbang antara semua tugas. Jika layanan client-server diperbarui, koneksi baru dari klien akan seimbang antara tugas-tugas versi baru.

Tugas yang ada tidak dapat menyelesaikan dan terhubung ke titik akhir baru. Hanya tugas baru dengan konfigurasi Service Connect di namespace yang sama dan yang mulai berjalan setelah penerapan ini yang dapat menyelesaikan dan terhubung ke titik akhir ini.

Ini berarti bahwa operator aplikasi klien menentukan kapan konfigurasi aplikasi mereka berubah, meskipun operator aplikasi server dapat mengubah konfigurasi mereka kapan saja. Daftar titik akhir dalam namespace dapat berubah setiap kali layanan apa pun di namespace diterapkan. Tugas yang ada dan tugas penggantian terus berperilaku sama seperti yang mereka lakukan setelah penerapan terbaru.

Pertimbangkan contoh berikut.

Pertama, asumsikan bahwa Anda membuat aplikasi yang tersedia untuk internet publik dalam satu AWS CloudFormation template dan CloudFormation tumpukan tunggal. Penemuan publik dan jangkauan harus dibuat terakhir CloudFormation, termasuk layanan klien frontend. Layanan perlu dibuat dalam urutan ini untuk mencegah periode waktu ketika layanan klien frontend berjalan dan tersedia untuk umum, tetapi backend tidak. Ini menghilangkan pesan kesalahan agar tidak dikirim ke publik selama periode waktu tersebut. Di AWS CloudFormation, Anda harus menggunakan dependsOn untuk menunjukkan CloudFormation bahwa beberapa layanan Amazon ECS tidak dapat dibuat secara paralel atau bersamaan. Anda harus menambahkan dependsOn ke layanan klien frontend untuk setiap layanan client-server backend yang terhubung dengan tugas klien.

Kedua, asumsikan bahwa layanan frontend ada tanpa konfigurasi Service Connect. Tugas terhubung ke layanan backend yang ada. Tambahkan konfigurasi klien-server Service Connect ke layanan backend terlebih dahulu, menggunakan nama yang sama di DNS atau clientAlias yang digunakan frontend. Ini menciptakan penerapan baru, sehingga semua deteksi rollback penerapan atau Konsol Manajemen AWS, AWS CLI, AWS SDK dan metode lain untuk mengembalikan dan mengembalikan layanan backend ke penerapan dan konfigurasi sebelumnya. Jika Anda puas dengan kinerja dan perilaku layanan backend, tambahkan konfigurasi Koneksi Layanan klien atau klien-server ke layanan frontend. Hanya tugas dalam penerapan baru yang menggunakan proxy Service Connect yang ditambahkan ke tugas baru tersebut. Jika Anda memiliki masalah dengan konfigurasi ini, Anda dapat memutar kembali dan mengembalikan ke konfigurasi sebelumnya dengan menggunakan deteksi rollback penerapan atau Konsol Manajemen AWS, AWS CLI, AWS SDK dan metode lain untuk mengembalikan dan mengembalikan layanan backend ke penerapan dan konfigurasi sebelumnya. Jika Anda menggunakan sistem penemuan layanan lain yang didasarkan pada DNS alih-alih Service Connect, aplikasi frontend atau klien apa pun mulai menggunakan titik akhir baru dan mengubah konfigurasi titik akhir setelah cache DNS lokal kedaluwarsa, biasanya memakan waktu beberapa jam.

Jaringan

Secara default, proxy Service Connect mendengarkan containerPort dari pemetaan port definisi tugas. Aturan grup keamanan Anda harus mengizinkan lalu lintas masuk (masuk) ke port ini dari subnet tempat klien akan berjalan.

Bahkan jika Anda menetapkan nomor port dalam konfigurasi layanan Service Connect, ini tidak mengubah port untuk layanan klien-server yang didengarkan oleh proxy Service Connect. Saat Anda menetapkan nomor port ini, Amazon ECS mengubah port titik akhir yang terhubung ke layanan klien, pada proxy Service Connect di dalam tugas-tugas tersebut. Proxy dalam layanan klien terhubung ke proxy di layanan klien-server menggunakan. containerPort

Jika Anda ingin mengubah port yang didengarkan oleh proxy Service Connect, ubah konfigurasi Service Connect dari layanan klien-server. ingressPortOverride Jika Anda mengubah nomor port ini, Anda harus mengizinkan lalu lintas masuk pada port ini yang digunakan oleh lalu lintas ke layanan ini.

Lalu lintas yang dikirim aplikasi Anda ke layanan Amazon ECS yang dikonfigurasi untuk Service Connect mengharuskan Amazon VPC dan subnet memiliki aturan tabel rute dan aturan ACL jaringan yang mengizinkan nomor ingressPortOverride port containerPort dan yang Anda gunakan.

Anda dapat menggunakan Service Connect untuk mengirim lalu lintas antar VPC. Persyaratan yang sama untuk aturan tabel rute, ACL jaringan, dan grup keamanan berlaku untuk kedua VPC.

Misalnya, dua cluster membuat tugas di VPC yang berbeda. Sebuah layanan di setiap cluster dikonfigurasi untuk menggunakan namespace yang sama. Aplikasi dalam dua layanan ini dapat menyelesaikan setiap titik akhir di namespace tanpa konfigurasi DNS VPC. Namun, proxy tidak dapat terhubung kecuali VPC peering, VPC, atau tabel rute subnet, dan ACL jaringan VPC memungkinkan lalu lintas pada nomor port dan. containerPort ingressPortOverride

Untuk tugas yang menggunakan mode bridge jaringan, Anda harus membuat grup keamanan dengan aturan masuk yang memungkinkan lalu lintas pada rentang port dinamis atas. Kemudian, tetapkan grup keamanan ke semua instans EC2 di cluster Service Connect.

Layanan Connect proxy

Jika Anda membuat atau memperbarui layanan dengan konfigurasi Service Connect, Amazon ECS menambahkan wadah baru ke setiap tugas baru saat dimulai. Pola menggunakan wadah terpisah ini disebut asidecar. Wadah ini tidak ada dalam definisi tugas dan Anda tidak dapat mengonfigurasinya. Amazon ECS mengelola konfigurasi Container dalam layanan. Ini memungkinkan Anda untuk menggunakan kembali definisi tugas yang sama antara beberapa layanan, ruang nama, dan tugas tanpa Service Connect.

Sumber daya proxy
  • Untuk definisi tugas, Anda harus mengatur parameter CPU dan memori.

    Sebaiknya tambahkan 256 unit CPU tambahan dan setidaknya 64 MiB memori ke CPU tugas Anda dan memori untuk wadah proxy Service Connect. Di AWS Fargate, jumlah memori terendah yang dapat Anda atur adalah 512 MiB memori. Di Amazon EC2, memori definisi tugas diperlukan.

  • Untuk layanan, Anda mengatur konfigurasi log di konfigurasi Service Connect.

  • Jika Anda mengharapkan tugas dalam layanan ini menerima lebih dari 500 permintaan per detik pada beban puncaknya, sebaiknya tambahkan 512 unit CPU ke CPU tugas Anda dalam definisi tugas ini untuk wadah proxy Service Connect.

  • Jika Anda mengharapkan untuk membuat lebih dari 100 layanan Service Connect di namespace atau total 2000 tugas di semua layanan Amazon ECS dalam namespace, sebaiknya tambahkan 128 MiB memori ke memori tugas Anda untuk wadah proxy Service Connect. Anda harus melakukan ini di setiap definisi tugas yang digunakan oleh semua layanan Amazon ECS di namespace.

Konfigurasi proxy

Aplikasi Anda terhubung ke proxy di wadah sidecar dalam tugas yang sama dengan aplikasi. Amazon ECS mengonfigurasi tugas dan wadah sehingga aplikasi hanya terhubung ke proxy saat aplikasi terhubung ke nama titik akhir dalam namespace yang sama. Semua lalu lintas lainnya tidak menggunakan proxy. Lalu lintas lainnya mencakup alamat IP di VPC yang sama, titik akhir AWS layanan, dan lalu lintas eksternal.

Penyeimbangan beban

Service Connect mengonfigurasi proxy untuk menggunakan strategi round-robin untuk penyeimbangan beban antara tugas di titik akhir Service Connect. Proxy lokal yang ada dalam tugas tempat koneksi berasal, memilih salah satu tugas dalam layanan klien-server yang menyediakan titik akhir.

Misalnya, pertimbangkan tugas yang berjalan WordPress di layanan yang dikonfigurasi sebagai layanan klien dalam namespace yang disebut lokal. Ada layanan lain dengan 2 tugas yang menjalankan database MySQL. Layanan ini dikonfigurasi untuk menyediakan titik akhir yang dipanggil mysql melalui Service Connect di namespace yang sama. Dalam WordPress tugas, WordPress aplikasi terhubung ke database menggunakan nama titik akhir. Koneksi ke nama ini pergi ke proxy yang berjalan di wadah sidecar dalam tugas yang sama. Kemudian, proxy dapat terhubung ke salah satu tugas MySQL menggunakan strategi round-robin.

Strategi penyeimbangan beban: round-robin

Deteksi outlier

Fitur ini menggunakan data yang dimiliki proxy tentang koneksi gagal sebelumnya untuk menghindari pengiriman koneksi baru ke host yang memiliki koneksi gagal. Service Connect mengonfigurasi fitur deteksi outlier dari proxy untuk menyediakan pemeriksaan kesehatan pasif.

Menggunakan contoh sebelumnya, proxy dapat terhubung ke salah satu tugas MySQL. Jika proxy membuat beberapa koneksi ke tugas MySQL tertentu, dan 5 atau lebih koneksi gagal dalam 30 detik terakhir, maka proxy menghindari tugas MySQL selama 30 hingga 300 detik.

Percobaan ulang

Service Connect mengonfigurasi proxy untuk mencoba kembali koneksi yang melewati proxy dan gagal, dan upaya kedua menghindari penggunaan host dari koneksi sebelumnya. Ini memastikan bahwa setiap koneksi melalui Service Connect tidak gagal karena alasan satu kali.

Jumlah percobaan ulang: 2

Waktu habis

Service Connect mengonfigurasi proxy untuk menunggu waktu maksimum agar aplikasi client-server Anda merespons. Nilai batas waktu default adalah 15 detik, tetapi dapat diperbarui.

Parameter opsional:

IdleTime out - Jumlah waktu dalam detik koneksi tetap aktif saat idle. Nilai 0 menonaktifkan idleTimeout.

Def idleTimeout ault untukHTTP/HTTP2/GRPCadalah 5 menit.

Def idleTimeout aultnya TCP adalah 1 jam.

per RequestTimeout ‐ Jumlah waktu menunggu hulu untuk merespons dengan respons lengkap per permintaan. Nilai 0 matiperRequestTimeout. Ini hanya dapat diatur ketika wadah aplikasi appProtocol for adalahHTTP/HTTP2/GRPC. Defaultnya adalah 15 detik.

catatan

Jika idleTimeout diatur ke waktu kurang dari perRequestTimeout, koneksi akan ditutup ketika idleTimeout tercapai dan bukannya perRequestTimeout.

Pertimbangan-pertimbangan

Pertimbangkan hal berikut saat menggunakan Service Connect:

  • Tugas yang berjalan di Fargate harus menggunakan versi platform Fargate Linux 1.4.0 atau lebih tinggi untuk menggunakan Service Connect.

  • Versi agen Amazon ECS pada instance kontainer harus lebih 1.67.2 tinggi.

  • Instans kontainer harus menjalankan Amazon ECS-optimized Amazon Linux 2023 AMI versi 20230428 atau yang lebih baru, atau versi AMI ECS-optimized Amazon Amazon Linux 2 2.0.20221115 untuk menggunakan Service Connect. Versi ini memiliki agen Service Connect selain agen kontainer Amazon ECS. Untuk informasi selengkapnya tentang agen Service Connect, lihat Amazon ECS Service Connect Agent aktif. GitHub

  • Instans kontainer harus memiliki ecs:Poll izin untuk sumber dayaarn:aws:ecs:region:0123456789012:task-set/cluster/*. Jika Anda menggunakanecsInstanceRole, Anda tidak perlu menambahkan izin tambahan. Kebijakan AmazonEC2ContainerServiceforEC2Role terkelola memiliki izin yang diperlukan. Untuk informasi selengkapnya, lihat Peran IAM instans kontainer Amazon ECS.

  • Tugas yang menggunakan mode bridge jaringan dan menggunakan Service Connect tidak mendukung parameter definisi hostname kontainer.

  • Definisi tugas harus menetapkan batas memori tugas untuk menggunakan Service Connect. Untuk informasi selengkapnya, lihat Layanan Connect proxy.

  • Definisi tugas yang menetapkan batas memori kontainer tidak didukung.

    Anda dapat mengatur batas memori kontainer pada wadah Anda, tetapi Anda harus mengatur batas memori tugas ke angka yang lebih besar dari jumlah batas memori kontainer. CPU dan memori tambahan dalam batas tugas yang tidak dialokasikan dalam batas kontainer digunakan oleh wadah proxy Service Connect dan wadah lain yang tidak menetapkan batas kontainer. Untuk informasi selengkapnya, lihat Layanan Connect proxy.

  • Anda dapat mengonfigurasi Service Connect untuk menggunakan AWS Cloud Map namespace apa pun di Wilayah yang sama yang berada di wilayah yang sama Akun AWS atau dibagikan dengan Akun AWS penggunaan AWS Resource Access Manager Anda. Untuk informasi selengkapnya tentang menggunakan ruang nama bersama, lihat. Layanan Amazon ECS Terhubung dengan berbagi AWS Cloud Map ruang nama

  • Setiap layanan hanya dapat dimiliki oleh satu namespace.

  • Hanya tugas yang dibuat layanan yang didukung.

  • Semua titik akhir harus unik dalam namespace.

  • Semua nama penemuan harus unik dalam namespace.

  • Anda harus menyebarkan kembali layanan yang ada sebelum aplikasi dapat menyelesaikan titik akhir baru. Titik akhir baru yang ditambahkan ke namespace setelah penerapan terbaru tidak akan ditambahkan ke konfigurasi tugas. Untuk informasi selengkapnya, lihat Komponen Amazon ECS Service Connect.

  • Service Connect tidak menghapus ruang nama saat cluster dihapus. Anda harus menghapus ruang nama di. AWS Cloud Map

  • Lalu lintas Application Load Balancer secara default akan routing melalui agen Service Connect dalam mode awsvpc jaringan. Jika Anda ingin lalu lintas non-layanan melewati agen Service Connect, gunakan ingressPortOverride parameter dalam konfigurasi layanan Service Connect Anda.

  • Layanan Connect dengan TLS tidak mendukung mode bridge jaringan. Hanya mode awsvpc jaringan yang didukung.

  • Dalam awsvpc mode, proxy Service Connect meneruskan lalu lintas ke host lokal IPv4 127.0.0.1 untuk layanan dalam IPv4-only dan konfigurasi dualstack. Untuk layanan dalam IPv6-only konfigurasi, proxy meneruskan lalu lintas ke host lokal IPv6. ::1 Sebaiknya konfigurasi aplikasi Anda untuk mendengarkan kedua localhost untuk pengalaman yang mulus saat layanan diperbarui dari IPv4-only atau konfigurasi dualstack ke. IPv6-only Untuk informasi selengkapnya, lihat Opsi Jaringan Tugas Amazon ECS untuk EC2 dan Opsi jaringan tugas Amazon ECS untuk Fargate.

Service Connect tidak mendukung hal berikut:
  • Kontainer Windows

  • HTTP 1.0

  • Tugas mandiri

  • Layanan yang menggunakan tipe penyebaran yang blue/green didukung oleh CodeDeploy dan eksternal

  • Externalinstance kontainer untuk Amazon ECS Anywhere tidak didukung dengan Service Connect.

  • PPv2

  • Modus FIPS