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 Anda menggunakan Amazon ECS Service Connect, Anda mengonfigurasi setiap ECS layanan Amazon untuk menjalankan aplikasi server yang menerima permintaan jaringan (layanan client-server) atau 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 skala keluar, koneksi baru dari klien akan seimbang di 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 yang baru. Hanya tugas baru dengan konfigurasi Service Connect di namespace yang sama dan yang mulai berjalan setelah penerapan ini 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 di namespace dapat berubah setiap kali layanan apa pun di namespace diterapkan. Tugas yang ada dan tugas pengganti 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 AWS CloudFormation tumpukan tunggal. Penemuan dan jangkauan publik harus dibuat terakhir oleh AWS 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 AWS CloudFormation bahwa beberapa ECS layanan Amazon 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 menghubungkan ke layanan backend yang ada. Tambahkan konfigurasi Service Connect client-server ke layanan backend terlebih dahulu, menggunakan nama yang sama di DNSatau clientAlias
yang digunakan frontend. Ini menciptakan penerapan baru, sehingga semua deteksi rollback penerapan atau AWS Management Console, AWS CLI, AWS SDKs dan metode lain untuk memutar kembali dan mengembalikan layanan backend ke penerapan dan konfigurasi sebelumnya. Jika Anda puas dengan kinerja dan perilaku layanan backend, tambahkan konfigurasi Service Connect klien atau client-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 kembali ke konfigurasi sebelumnya dengan menggunakan deteksi rollback penerapan atau AWS Management Console, AWS CLI, AWS SDKs dan metode lain untuk memutar kembali 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 DNS cache 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 (masuknya) ke port ini dari subnet tempat klien akan dijalankan.
Bahkan jika Anda menetapkan nomor port dalam konfigurasi layanan Service Connect, ini tidak mengubah port untuk layanan client-server yang didengarkan proxy Service Connect. Saat Anda menyetel nomor port ini, Amazon ECS mengubah port titik akhir yang terhubung dengan layanan klien, pada proxy Service Connect di dalam tugas tersebut. Proxy dalam layanan klien terhubung ke proxy di layanan client-server menggunakan file. containerPort
Jika Anda ingin mengubah port yang didengarkan proxy Service Connect, ubah konfigurasi Service Connect pada layanan client-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 ECS layanan Amazon yang dikonfigurasi untuk Service Connect mengharuskan Amazon VPC dan subnet memiliki aturan tabel rute dan ACL aturan jaringan yang memungkinkan containerPort
dan nomor ingressPortOverride
port yang Anda gunakan.
Anda dapat menggunakan Service Connect untuk mengirim lalu lintas di antaranyaVPCs. Persyaratan yang sama untuk aturan tabel rute, jaringanACLs, dan grup keamanan berlaku untuk keduanyaVPCs.
Misalnya, dua cluster membuat tugas yang berbedaVPCs. Layanan di setiap cluster dikonfigurasi untuk menggunakan namespace yang sama. Aplikasi dalam dua layanan ini dapat menyelesaikan setiap titik akhir di namespace tanpa konfigurasi apa pun. VPC DNS Namun, proxy tidak dapat terhubung kecuali tabel rute VPC peering,VPC, atau subnet, dan VPC jaringan ACLs mengizinkan 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 EC2 instance di kluster Service Connect.
Proksi Service Connect
Jika Anda membuat atau memperbarui layanan dengan konfigurasi Service Connect, Amazon ECS menambahkan wadah baru ke setiap tugas baru saat dimulai. Pola penggunaan 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 CPU unit tambahan dan setidaknya 64 MiB memori ke tugas CPU dan memori Anda untuk wadah proxy Service Connect. Di AWS Fargate, jumlah memori terendah yang dapat Anda atur adalah memori 512 MiB. Di AmazonEC2, memori definisi tugas diperlukan.
-
Untuk layanan, Anda mengatur konfigurasi log dalam konfigurasi Service Connect.
-
Jika Anda mengharapkan tugas dalam layanan ini menerima lebih dari 500 permintaan per detik pada beban puncaknya, sebaiknya tambahkan 512 CPU unit ke tugas Anda CPU dalam definisi tugas ini untuk container proxy Service Connect.
-
Jika Anda berharap untuk membuat lebih dari 100 layanan Service Connect di namespace atau 2000 tugas secara total di semua ECS layanan Amazon dalam namespace, sebaiknya tambahkan 128 MiB memori ke memori tugas Anda untuk container proxy Service Connect. Anda harus melakukan ini di setiap definisi tugas yang digunakan oleh semua ECS layanan Amazon di namespace.
Konfigurasi proxy
Aplikasi Anda terhubung ke proxy di wadah sespan dalam tugas yang sama dengan aplikasi. Amazon ECS mengonfigurasi tugas dan kontainer sehingga aplikasi hanya terhubung ke proxy saat aplikasi terhubung ke nama titik akhir di namespace yang sama. Semua lalu lintas lainnya tidak menggunakan proxy. Lalu lintas lainnya termasuk alamat IP yang samaVPC, titik akhir AWS layanan, dan lalu lintas eksternal.
- Penyeimbangan beban
-
Service Connect mengonfigurasi proxy untuk menggunakan strategi round-robin untuk load balancing antara tugas di titik akhir Service Connect. Proxy lokal yang ada dalam tugas dari mana koneksi berasal, memilih salah satu tugas dalam layanan client-server yang menyediakan titik akhir.
Misalnya, pertimbangkan tugas yang berjalan WordPress di layanan yang dikonfigurasi sebagai layanan klien di namespace yang disebut lokal. Ada layanan lain dengan 2 tugas yang menjalankan SQL database Saya. 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 endpoint. Koneksi ke nama ini masuk ke proxy yang berjalan dalam wadah sespan dalam tugas yang sama. Kemudian, proxy dapat terhubung ke salah satu SQL tugas Saya 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 memberikan pemeriksaan kesehatan pasif.
Menggunakan contoh sebelumnya, proxy dapat terhubung ke salah satu SQL tugas Saya. Jika proxy membuat beberapa koneksi ke SQL tugas saya tertentu, dan 5 atau lebih koneksi gagal dalam 30 detik terakhir, maka proxy menghindari itu SQL Tugas saya selama 30 hingga 300 detik.
- Percobaan ulang
-
Service Connect mengonfigurasi proxy untuk mencoba lagi 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:
idleTimeout- Jumlah waktu dalam hitungan detik koneksi tetap aktif saat idle. Nilai yang
0
dinonaktifkanidleTimeout
.idleTimeout
Default untukHTTP
/HTTP2
/GRPC
adalah 5 menit.idleTimeout
Default untukTCP
adalah 1 jam.perRequestTimeout- Jumlah waktu menunggu hulu untuk merespons dengan respons lengkap per permintaan. Nilai
0
dimatikanperRequestTimeout
. Ini hanya dapat diatur ketika wadahappProtocol
untuk aplikasi adalahHTTP
/HTTP2
/GRPC
. Defaultnya adalah 15 detik.catatan
Jika
idleTimeout
diatur ke waktu yang kurang dariperRequestTimeout
, koneksi akan ditutup ketikaidleTimeout
tercapai dan bukanperRequestTimeout
.
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 ECS agen Amazon pada instance container harus
1.67.2
atau lebih tinggi. -
Instans penampung harus menjalankan versi Amazon Linux 2023 ECS yang dioptimalkan Amazon atau yang lebih baru,
20230428
atau AMI versi Amazon Linux 2 yang dioptimalkan ECS Amazon untuk2.0.20221115
menggunakan Service AMI Connect. Versi ini memiliki agen Service Connect selain agen ECS kontainer Amazon. Untuk informasi selengkapnya tentang agen Service Connect, lihat Agen Amazon ECS Service Connectdi GitHub. -
Instance kontainer harus memiliki
ecs:Poll
izin untuk sumberarn:aws:ecs:
daya. Jika Anda menggunakanregion
:0123456789012
:task-set/cluster
/*ecsInstanceRole
, Anda tidak perlu menambahkan izin tambahan. KebijakanAmazonEC2ContainerServiceforEC2Role
terkelola memiliki izin yang diperlukan. Untuk informasi selengkapnya, lihat IAMPeran contoh ECS wadah Amazon. -
Hanya layanan yang menggunakan penerapan bergulir yang didukung dengan Service Connect.
-
Tugas yang menggunakan mode
bridge
jaringan dan menggunakan Service Connect tidak mendukung parameter definisihostname
kontainer. -
Definisi tugas harus menetapkan batas memori tugas untuk menggunakan Service Connect. Untuk informasi selengkapnya, lihat Proksi Service Connect.
-
Definisi tugas yang menetapkan batas memori kontainer tidak didukung.
Anda dapat mengatur batas memori kontainer pada kontainer Anda, tetapi Anda harus mengatur batas memori tugas ke angka yang lebih besar dari jumlah batas memori kontainer. Tambahan CPU dan memori dalam batas tugas yang tidak dialokasikan dalam batas penampung digunakan oleh kontainer proxy Service Connect dan kontainer lain yang tidak menetapkan batas kontainer. Untuk informasi selengkapnya, lihat Proksi Service Connect.
-
Anda dapat mengonfigurasi Service Connect untuk menggunakan AWS Cloud Map namespace apa pun di Region yang sama. Akun AWS
-
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 menerapkan ulang 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 kluster dihapus. Anda harus menghapus ruang nama di. AWS Cloud Map
-
Lalu lintas Application Load Balancer default ke routing melalui agen Service Connect dalam mode jaringan.
awsvpc
Jika Anda ingin lalu lintas non-layanan melewati agen Service Connect, gunakaningressPortOverride
parameter dalam konfigurasi layanan Service Connect Anda.
Service Connect tidak mendukung hal berikut:
-
Kontainer Windows
-
HTTP1.0
-
Tugas mandiri
-
Layanan yang menggunakan jenis penyebaran biru/hijau dan eksternal
-
External
instance container untuk Amazon ECS Anywhere tidak didukung dengan Service Connect. -
PPv2
Wilayah dengan Service Connect
Amazon ECS Service Connect tersedia di AWS Wilayah berikut:
Nama Wilayah | Wilayah |
---|---|
US East (Ohio) |
us-east-2 |
US East (N. Virginia) |
us-east-1 |
US West (N. California) |
us-west-1 |
US West (Oregon) |
as-barat-2 |
Afrika (Cape Town) |
af-selatan-1 |
Asia Pasifik (Hong Kong) |
ap-east-1 |
Asia Pasifik (Jakarta) |
ap-southeast-3 |
Asia Pasifik (Mumbai) |
ap-south-1 |
Asia Pasifik (Hyderabad) |
ap-south-2 |
Asia Pacific (Osaka) |
ap-northeast-3 |
Asia Pacific (Seoul) |
ap-northeast-2 |
Asia Pacific (Singapore) |
ap-southeast-1 |
Asia Pacific (Sydney) |
ap-southeast-2 |
Asia Pasifik (Melbourne) |
ap-southeast-4 |
Asia Pasifik (Malaysia) |
ap-southeast-5 |
Asia Pasifik (Tokyo) |
ap-northeast-1 |
Canada (Central) |
ca-central-1 |
Kanada Barat (Calgary) |
ca-west-1 |
Tiongkok (Beijing) |
cn-north-1 (Catatan: untuk TLS Service Connect tidak tersedia di wilayah ini.) |
Tiongkok (Ningxia) |
cn-northwest-1 (Catatan: untuk TLS Service Connect tidak tersedia di wilayah ini.) |
Eropa (Frankfurt) |
eu-central-1 |
Europe (Ireland) |
eu-west-1 |
Europe (London) |
eu-west-2 |
Europe (Paris) |
eu-west-3 |
Eropa (Milan) |
eu-south-1 |
Eropa (Spanyol) |
eu-south-2 |
Eropa (Stockholm) |
eu-north-1 |
Europe (Zurich) |
eu-central-2 |
Israel (Tel Aviv) |
il-central-1 |
Timur Tengah (Bahrain) |
me-south-1 |
Timur Tengah (UAE) |
me-central-1 |
Amerika Selatan (Sao Paulo) |
sa-east-1 |