

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

# Interkoneksi layanan Amazon ECS
<a name="interconnecting-services"></a>

Aplikasi yang berjalan dalam tugas Amazon ECS seringkali perlu menerima koneksi dari internet atau untuk terhubung ke aplikasi lain yang berjalan di layanan Amazon ECS. Jika Anda membutuhkan koneksi eksternal dari internet, sebaiknya gunakan Elastic Load Balancing. Untuk informasi selengkapnya tentang penyeimbangan beban terintegrasi, lihat[Menggunakan penyeimbangan beban untuk mendistribusikan lalu lintas layanan Amazon ECS](service-load-balancing.md).

Jika Anda memerlukan aplikasi untuk terhubung ke aplikasi lain yang berjalan di layanan Amazon ECS, Amazon ECS menyediakan cara-cara berikut untuk melakukan ini tanpa penyeimbang beban:
+ *Amazon ECS Service Connect*

  Kami merekomendasikan Service Connect, yang menyediakan konfigurasi Amazon ECS untuk penemuan layanan, konektivitas, dan pemantauan lalu lintas. Dengan Service Connect, aplikasi Anda dapat menggunakan nama pendek dan port standar untuk terhubung ke layanan Amazon ECS di cluster yang sama, klaster lain, termasuk di VPCs dalam yang sama. Wilayah AWS

  Saat Anda menggunakan Service Connect, Amazon ECS mengelola semua bagian penemuan layanan: membuat nama yang dapat ditemukan, mengelola entri secara dinamis untuk setiap tugas saat tugas dimulai dan dihentikan, menjalankan agen di setiap tugas yang dikonfigurasi untuk menemukan nama. Aplikasi Anda dapat mencari nama dengan menggunakan fungsionalitas standar untuk nama DNS dan membuat koneksi. Jika aplikasi Anda sudah melakukan ini, Anda tidak perlu memodifikasi aplikasi Anda untuk menggunakan Service Connect.

  Anda menyediakan konfigurasi lengkap di dalam setiap layanan dan definisi tugas. Amazon ECS mengelola perubahan pada konfigurasi ini di setiap penyebaran layanan, untuk memastikan bahwa semua tugas dalam penerapan berperilaku dengan cara yang sama. Misalnya, masalah umum dengan DNS sebagai penemuan layanan adalah mengendalikan migrasi. Jika Anda mengubah nama DNS untuk menunjuk ke alamat IP pengganti baru, mungkin diperlukan waktu TTL maksimum sebelum semua klien mulai menggunakan layanan baru. Dengan Service Connect, penyebaran klien memperbarui konfigurasi dengan mengganti tugas klien. Anda dapat mengonfigurasi pemutus sirkuit penyebaran dan konfigurasi penerapan lainnya untuk memengaruhi perubahan Service Connect dengan cara yang sama seperti penerapan lainnya.

  Untuk informasi selengkapnya, lihat [Menggunakan Service Connect untuk menghubungkan layanan Amazon ECS dengan nama pendek](service-connect.md).
+ *Penemuan layanan Amazon ECS*

  Pendekatan lain untuk service-to-service komunikasi adalah komunikasi langsung menggunakan penemuan layanan. Dalam pendekatan ini, Anda dapat menggunakan integrasi penemuan AWS Cloud Map layanan dengan Amazon ECS. Menggunakan penemuan layanan, Amazon ECS menyinkronkan daftar tugas yang diluncurkan ke AWS Cloud Map, yang mempertahankan nama host DNS yang menyelesaikan ke alamat IP internal dari satu atau lebih tugas dari layanan tertentu. Layanan lain di Amazon VPC dapat menggunakan nama host DNS ini untuk mengirim lalu lintas langsung ke wadah lain menggunakan alamat IP internalnya. 

  Pendekatan service-to-service komunikasi ini memberikan latensi rendah. Tidak ada komponen tambahan di antara wadah. Lalu lintas bergerak langsung dari satu kontainer ke kontainer lainnya.

  Pendekatan ini cocok saat menggunakan mode `awsvpc` jaringan, di mana setiap tugas memiliki alamat IP uniknya sendiri. Sebagian besar perangkat lunak hanya mendukung penggunaan `A` catatan DNS, yang menyelesaikan langsung ke alamat IP. Saat menggunakan mode `awsvpc` jaringan, alamat IP untuk setiap tugas adalah `A` catatan. Namun, jika Anda menggunakan mode `bridge` jaringan, beberapa kontainer dapat berbagi alamat IP yang sama. Selain itu, pemetaan port dinamis menyebabkan kontainer diberi nomor port secara acak pada alamat IP tunggal itu. Pada titik ini, `A` catatan tidak lagi cukup untuk penemuan layanan. Anda juga harus menggunakan `SRV` catatan. Jenis catatan ini dapat melacak alamat IP dan nomor port tetapi mengharuskan Anda mengonfigurasi aplikasi dengan tepat. Beberapa aplikasi bawaan yang Anda gunakan mungkin tidak mendukung `SRV` catatan.

  Keuntungan lain dari mode `awsvpc` jaringan adalah Anda memiliki grup keamanan unik untuk setiap layanan. Anda dapat mengonfigurasi grup keamanan ini untuk mengizinkan koneksi masuk hanya dari layanan hulu tertentu yang perlu berbicara dengan layanan tersebut.

  Kerugian utama dari service-to-service komunikasi langsung menggunakan penemuan layanan adalah Anda harus menerapkan logika tambahan untuk mencoba ulang dan menangani kegagalan koneksi. Catatan DNS memiliki periode time-to-live (TTL) yang mengontrol berapa lama mereka di-cache. Dibutuhkan beberapa waktu agar catatan DNS diperbarui dan cache kedaluwarsa sehingga aplikasi Anda dapat mengambil versi terbaru dari catatan DNS. Jadi, aplikasi Anda mungkin akan menyelesaikan catatan DNS untuk menunjuk ke wadah lain yang sudah tidak ada lagi. Aplikasi Anda perlu menangani percobaan ulang dan memiliki logika untuk mengabaikan backend yang buruk.

  Untuk informasi selengkapnya, lihat [Gunakan penemuan layanan untuk menghubungkan layanan Amazon ECS dengan nama DNS](service-discovery.md)
+ *Kisi VPC Amazon*

  Amazon VPC Lattice adalah layanan jaringan aplikasi terkelola yang digunakan pelanggan Amazon ECS untuk mengamati, mengamankan, dan memantau aplikasi yang dibangun di seluruh layanan AWS komputasi VPCs, dan akun tanpa harus mengubah kode mereka.

  VPC Lattice menggunakan kelompok target, yang merupakan kumpulan sumber daya komputasi. Target ini menjalankan aplikasi atau layanan Anda dan dapat berupa instans Amazon EC2, alamat IP, fungsi Lambda, dan Application Load Balancer. Dengan mengaitkan layanan Amazon ECS mereka dengan grup target VPC Lattice, pelanggan sekarang dapat mengaktifkan tugas Amazon ECS sebagai target IP di VPC Lattice. Amazon ECS secara otomatis mendaftarkan tugas ke grup target VPC Lattice saat tugas untuk layanan terdaftar diluncurkan.

  Untuk informasi selengkapnya, lihat [Gunakan Amazon VPC Lattice untuk menghubungkan, mengamati, dan mengamankan layanan Amazon ECS Anda](ecs-vpc-lattice.md).

## Tabel kompatibilitas mode jaringan
<a name="interconnect-network-mode-compatibility-table"></a>

Tabel berikut mencakup kompatibilitas antara opsi ini dan mode jaringan tugas. Dalam tabel, “klien” mengacu pada aplikasi yang membuat koneksi dari dalam tugas Amazon ECS.


****  

| Opsi Interkoneksi | Dijembatani | `awsvpc` | Host | 
| --- | --- | --- | --- | 
| Penemuan layanan | ya, tetapi mengharuskan klien mengetahui catatan SRV di DNS tanpa. hostPort | Ya | ya, tetapi mengharuskan klien mengetahui catatan SRV di DNS tanpa. hostPort | 
| Layanan Connect | Ya | ya | tidak | 
| Kisi VPC | Ya | Ya | Ya | 

# Menggunakan Service Connect untuk menghubungkan layanan Amazon ECS dengan nama pendek
<a name="service-connect"></a>

Amazon ECS Service Connect menyediakan manajemen service-to-service komunikasi sebagai konfigurasi Amazon ECS. Hal ini membangun penemuan layanan dan jala layanan di Amazon ECS. Ini menyediakan konfigurasi lengkap di dalam setiap layanan yang Anda kelola dengan deployment layanan, cara terpadu untuk merujuk ke layanan Anda dalam namespace yang tidak bergantung pada konfigurasi DNS VPC, dan metrik serta log standar untuk memantau semua aplikasi Anda. Service Connect hanya menghubungkan layanan satu sama lain.

Diagram berikut menunjukkan contoh jaringan Service Connect dengan 2 subnet di VPC dan 2 layanan. Layanan klien yang berjalan WordPress dengan 1 tugas di setiap subnet. Layanan server yang menjalankan MySQL dengan 1 tugas di setiap subnet. Kedua layanan sangat tersedia dan tahan terhadap masalah tugas dan Availability Zone karena setiap layanan menjalankan beberapa tugas yang tersebar di 2 subnet. Panah padat menunjukkan koneksi dari WordPress ke MySQL. Misalnya, perintah `mysql --host=mysql` CLI yang dijalankan dari dalam WordPress wadah dalam tugas dengan alamat IP. `172.31.16.1` Perintah menggunakan nama pendek `mysql` pada port default untuk MySQL. Nama dan port ini terhubung ke proxy Service Connect dalam tugas yang sama. Proxy dalam WordPress tugas menggunakan penyeimbangan beban round-robin dan informasi kegagalan sebelumnya dalam deteksi outlier untuk memilih tugas MySQL mana yang akan dihubungkan. Seperti yang ditunjukkan oleh panah padat dalam diagram, proxy terhubung ke proxy kedua dalam tugas MySQL dengan Alamat IP. `172.31.16.2` Proxy kedua terhubung ke server MySQL lokal dalam tugas yang sama. Kedua proxy melaporkan kinerja koneksi yang terlihat dalam grafik di Amazon ECS dan konsol CloudWatch Amazon sehingga Anda bisa mendapatkan metrik kinerja dari semua jenis aplikasi dengan cara yang sama.

![\[Contoh jaringan Service Connect yang menampilkan layanan HA minimal\]](http://docs.aws.amazon.com/id_id/AmazonECS/latest/developerguide/images/serviceconnect.png)


Istilah berikut digunakan dengan Service Connect.

**nama port**  
Konfigurasi definisi tugas Amazon ECS yang memberikan nama ke pemetaan port tertentu. Konfigurasi ini hanya digunakan oleh Amazon ECS Service Connect.

**alias klien**  
Konfigurasi layanan Amazon ECS yang menetapkan nomor port yang digunakan di titik akhir. Selain itu, alias klien dapat menetapkan nama DNS dari titik akhir, mengesampingkan nama penemuan. Jika nama penemuan tidak disediakan di layanan Amazon ECS, nama alias klien akan mengganti nama port sebagai nama titik akhir. Untuk contoh endpoint, lihat definisi *endpoint*. Beberapa alias klien dapat ditetapkan ke layanan Amazon ECS. Konfigurasi ini hanya digunakan oleh Amazon ECS Service Connect.

**nama penemuan**  
Nama perantara opsional yang dapat Anda buat untuk port tertentu dari definisi tugas. Nama ini digunakan untuk membuat AWS Cloud Map layanan. Jika nama ini tidak disediakan, nama port dari definisi tugas akan digunakan. Beberapa nama penemuan dapat ditetapkan ke port tertentu layanan Amazon ECS. Konfigurasi ini hanya digunakan oleh Amazon ECS Service Connect.  
AWS Cloud Map nama layanan harus unik dalam namespace. Karena batasan ini, Anda hanya dapat memiliki satu konfigurasi Service Connect tanpa nama penemuan untuk definisi tugas tertentu di setiap namespace.

**titik akhir**  
URL untuk terhubung ke API atau situs web. URL berisi protokol, nama DNS, dan port. Untuk informasi lebih lanjut tentang titik akhir secara umum, lihat [titik akhir](https://docs.aws.amazon.com/glossary/latest/reference/glos-chap.html#endpoint) dalam *AWS glosarium* di. Referensi Umum Amazon Web  
Service Connect membuat titik akhir yang terhubung ke layanan Amazon ECS dan mengonfigurasi tugas di layanan Amazon ECS untuk terhubung ke titik akhir. URL berisi protokol, nama DNS, dan port. Anda memilih protokol dan nama port dalam definisi tugas, karena port harus cocok dengan aplikasi yang ada di dalam gambar kontainer. Dalam layanan, Anda memilih setiap port dengan nama dan dapat menetapkan nama DNS. Jika Anda tidak menentukan nama DNS dalam konfigurasi layanan Amazon ECS, nama port dari definisi tugas akan digunakan secara default. Misalnya, titik akhir Service Connect dapat berupa`http://blog:80`,`grpc://checkout:8080`, atau`http://_db.production.internal:99`.

**Layanan Connect Service**  
Konfigurasi titik akhir tunggal dalam layanan Amazon ECS. Ini adalah bagian dari konfigurasi Service Connect, yang terdiri dari satu baris dalam **konfigurasi Service Connect dan discovery name** di konsol, atau satu objek dalam `services` daftar dalam konfigurasi JSON dari layanan Amazon ECS. Konfigurasi ini hanya digunakan oleh Amazon ECS Service Connect.  
Untuk informasi selengkapnya, lihat [ServiceConnectService](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_ServiceConnectService.html)di Referensi API Amazon Elastic Container Service.

**namespace**  
Nama pendek atau nama sumber daya Amazon lengkap (ARN) dari AWS Cloud Map namespace untuk digunakan dengan Service Connect. Namespace harus Wilayah AWS sama dengan layanan Amazon ECS dan cluster. Jenis namespace di AWS Cloud Map tidak memengaruhi Service Connect. Namespace dapat berupa salah satu yang dibagikan dengan Akun AWS using AWS Resource Access Manager (AWS RAM) Anda Wilayah AWS yang AWS RAM tersedia di. *Untuk informasi selengkapnya tentang ruang nama bersama, lihat [Berbagi AWS Cloud Map namespace lintas akun](https://docs.aws.amazon.com/cloud-map/latest/dg/sharing-namespaces.html) di Panduan Pengembang.AWS Cloud Map *  
Service Connect menggunakan AWS Cloud Map namespace sebagai pengelompokan logis tugas Amazon ECS yang berbicara satu sama lain. Setiap layanan Amazon ECS hanya dapat dimiliki oleh satu namespace. Layanan dalam namespace dapat tersebar di berbagai kluster Amazon ECS dalam hal yang sama. Wilayah AWS Jika namespace adalah namespace bersama, layanan dapat tersebar di seluruh pemilik namespace dan konsumen namespace. Akun AWS Anda dapat dengan bebas mengatur layanan berdasarkan kriteria apa pun.

**layanan klien**  
Layanan yang menjalankan aplikasi klien jaringan. Layanan ini harus memiliki namespace yang dikonfigurasi. Setiap tugas dalam layanan dapat menemukan dan terhubung ke semua titik akhir di namespace melalui container proxy Service Connect.  
Jika salah satu kontainer Anda dalam tugas perlu terhubung ke titik akhir dari layanan di namespace, pilih layanan klien. Jika aplikasi frontend, reverse proxy, atau load balancer menerima lalu lintas eksternal melalui metode lain seperti dari Elastic Load Balancing, itu bisa menggunakan konfigurasi Service Connect jenis ini.

**layanan client-server**  
Layanan Amazon ECS yang menjalankan aplikasi jaringan atau layanan web. Layanan ini harus memiliki namespace dan setidaknya satu titik akhir yang dikonfigurasi. Setiap tugas dalam layanan dapat dijangkau dengan menggunakan titik akhir. Container proxy Service Connect mendengarkan nama endpoint dan port untuk mengarahkan lalu lintas ke container aplikasi dalam tugas.  
Jika salah satu kontainer mengekspos dan mendengarkan pada port untuk lalu lintas jaringan, pilih layanan client-server. Aplikasi ini tidak perlu terhubung ke layanan client-server lain di namespace yang sama, tetapi konfigurasi klien diperlukan. Backend, middleware, tingkat bisnis, atau sebagian besar layanan mikro dapat menggunakan konfigurasi Service Connect jenis ini. Jika Anda ingin aplikasi frontend, reverse proxy, atau load balancer menerima lalu lintas dari layanan lain yang dikonfigurasi dengan Service Connect di namespace yang sama, layanan ini harus menggunakan jenis konfigurasi Service Connect ini.

Fitur Service Connect menciptakan jaringan virtual layanan terkait. Konfigurasi layanan yang sama dapat digunakan di beberapa ruang nama yang berbeda untuk menjalankan set aplikasi yang independen namun identik. Service Connect mendefinisikan wadah proxy di layanan Amazon ECS. Dengan cara ini, definisi tugas yang sama dapat digunakan untuk menjalankan aplikasi identik di ruang nama yang berbeda dengan konfigurasi Service Connect yang berbeda. Setiap tugas yang dibuat oleh layanan menjalankan wadah proxy dalam tugas.

Service Connect cocok untuk koneksi antara layanan Amazon ECS dalam namespace yang sama. Untuk aplikasi berikut, Anda perlu menggunakan metode interkoneksi tambahan untuk menyambung ke layanan Amazon ECS yang dikonfigurasi dengan Service Connect:
+ Tugas yang dikonfigurasi di ruang nama lain
+ Tugas yang tidak dikonfigurasi untuk Service Connect
+ Aplikasi lain di luar Amazon ECS

Aplikasi ini dapat terhubung melalui proxy Service Connect tetapi tidak dapat menyelesaikan nama titik akhir Service Connect.

Agar aplikasi ini dapat menyelesaikan alamat IP tugas Amazon ECS, Anda perlu menggunakan metode interkoneksi lain. 

**Topics**
+ [Harga](#service-connect-pricing)
+ [Komponen Amazon ECS Service Connect](service-connect-concepts-deploy.md)
+ [Gambaran Umum Konfigurasi Amazon ECS Service Connect](service-connect-concepts.md)
+ [Amazon ECS Service Connect dengan ruang nama bersama AWS Cloud Map](service-connect-shared-namespaces.md)
+ [Log akses Amazon ECS Service Connect](service-connect-envoy-access-logs.md)
+ [Enkripsi lalu lintas Amazon ECS Service Connect](service-connect-tls.md)
+ [Mengonfigurasi Amazon ECS Service Connect dengan AWS CLI](create-service-connect.md)

## Harga
<a name="service-connect-pricing"></a>
+ Harga Amazon ECS Service Connect bergantung pada apakah Anda menggunakan AWS Fargate atau infrastruktur Amazon EC2 untuk meng-host beban kerja kontainer Anda. Saat menggunakan Amazon ECS aktif AWS Outposts, harga mengikuti model yang sama yang digunakan saat Anda menggunakan Amazon EC2 secara langsung. Untuk informasi selengkapnya, lihat [Harga Amazon ECS](https://aws.amazon.com/ecs/pricing).
+ Tidak ada biaya tambahan untuk menggunakan Amazon ECS Service Connect.
+ Tidak ada biaya tambahan untuk AWS Cloud Map penggunaan saat digunakan oleh Service Connect.
+ Pelanggan membayar sumber daya komputasi yang digunakan oleh Amazon ECS Service Connect, termasuk vCPU dan Memori. Karena agen Amazon ECS Service Connect berjalan di dalam tugas pelanggan, tidak ada biaya tambahan untuk menjalankannya. Sumber daya tugas dibagi antara beban kerja pelanggan dan agen Amazon ECS Service Connect.
+ Saat menggunakan fungsionalitas enkripsi lalu lintas Amazon ECS Service Connect AWS Private CA, pelanggan membayar otoritas sertifikat pribadi yang mereka buat dan untuk setiap sertifikat TLS yang dikeluarkan. Untuk lebih jelasnya, lihat [AWS Private Certificate Authority harga](https://aws.amazon.com/private-ca/pricing/). Untuk memperkirakan biaya bulanan sertifikat TLS, pelanggan perlu mengetahui jumlah layanan Amazon ECS yang mengaktifkan TLS, kalikan dengan biaya sertifikat, dan kemudian kalikan dengan enam. Karena Amazon ECS Service Connect secara otomatis memutar sertifikat TLS setiap lima hari, ada enam sertifikat yang dikeluarkan per layanan Amazon ECS, rata-rata per bulan.

# Komponen Amazon ECS Service Connect
<a name="service-connect-concepts-deploy"></a>

Saat Anda menggunakan Amazon ECS Service Connect, Anda mengonfigurasi setiap layanan Amazon ECS 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 CloudFormation tumpukan tunggal. Penemuan dan jangkauan publik harus dibuat terakhir oleh 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 menghubungkan ke layanan backend yang ada. Tambahkan konfigurasi Service Connect client-server 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 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 Konsol Manajemen AWS, 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 dan bukan 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
<a name="service-connect-concepts-network"></a>

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 layanan Amazon ECS yang dikonfigurasi untuk Service Connect mengharuskan Amazon VPC dan subnet memiliki aturan tabel rute dan aturan ACL jaringan yang memungkinkan `containerPort` `ingressPortOverride` dan nomor port yang Anda gunakan.

 Anda dapat menggunakan Service Connect untuk mengirim lalu lintas di antaranya VPCs. Persyaratan yang sama untuk aturan tabel rute, jaringan ACLs, dan grup keamanan berlaku untuk keduanya VPCs.

Misalnya, dua cluster membuat tugas yang berbeda VPCs. 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 apa pun. Namun, proxy tidak dapat terhubung kecuali VPC peering, VPC, atau tabel rute subnet, dan jaringan VPC memungkinkan lalu lintas pada dan nomor port. ACLs `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 kluster Service Connect.

## Proksi Service Connect
<a name="service-connect-concepts-proxy"></a>

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 a`sidecar`. 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 dan memori Anda untuk wadah proxy Service Connect. Di AWS Fargate, jumlah memori terendah yang dapat Anda atur adalah memori 512 MiB. Di Amazon EC2, 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 unit CPU ke CPU tugas Anda 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 layanan Amazon ECS 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 layanan Amazon ECS 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 di VPC yang sama, 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 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 endpoint. Koneksi ke nama ini masuk ke proxy yang berjalan dalam wadah sespan 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 memberikan 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 itu 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 detik koneksi tetap aktif saat idle. Nilai `0` menonaktifkan `idleTimeout`.  
`idleTimeout`Default untuk`HTTP`/`HTTP2`/`GRPC`adalah 5 menit.  
`idleTimeout`Default untuk `TCP` adalah 1 jam.  
**perRequestTimeout**- Jumlah waktu menunggu hulu untuk merespons dengan respons lengkap per permintaan. Nilai `0` dimatikan`perRequestTimeout`. Ini hanya dapat diatur ketika wadah `appProtocol` untuk aplikasi adalah`HTTP`/`HTTP2`/`GRPC`. Defaultnya adalah 15 detik.  
Jika `idleTimeout` diatur ke waktu kurang dari `perRequestTimeout`, koneksi akan ditutup ketika `idleTimeout` tercapai dan bukannya `perRequestTimeout`.

## Pertimbangan-pertimbangan
<a name="service-connect-considerations"></a>

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 container harus `1.67.2` atau lebih tinggi.
+ Instans penampung harus menjalankan Amazon ECS yang dioptimalkan Amazon Linux 2023 versi AMI atau yang lebih baru, atau `20230428` versi Amazon Linux 2 AMI Amazon ECS yang dioptimalkan untuk menggunakan Service Connect. `2.0.20221115` Versi ini memiliki agen Service Connect selain agen kontainer Amazon ECS. Untuk informasi selengkapnya tentang agen Service Connect, lihat Agen [Amazon ECS Service Connect](https://github.com/aws/amazon-ecs-service-connect-agent) di GitHub.
+ Instance kontainer harus memiliki `ecs:Poll` izin untuk sumber `arn:aws:ecs:region:0123456789012:task-set/cluster/*` daya. Jika Anda menggunakan`ecsInstanceRole`, Anda tidak perlu menambahkan izin tambahan. Kebijakan `AmazonEC2ContainerServiceforEC2Role` terkelola memiliki izin yang diperlukan. Untuk informasi selengkapnya, lihat [Peran IAM instans kontainer Amazon ECS](instance_IAM_role.md).
+ 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 [Proksi Service Connect](#service-connect-concepts-proxy).
+ 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. CPU dan memori tambahan dalam batas tugas yang tidak dialokasikan dalam batas kontainer digunakan oleh kontainer proxy Service Connect dan wadah lain yang tidak menetapkan batas kontainer. Untuk informasi selengkapnya, lihat [Proksi Service Connect](#service-connect-concepts-proxy).
+ Anda dapat mengonfigurasi Service Connect untuk menggunakan AWS Cloud Map namespace apa pun di Wilayah yang sama yang sama Akun AWS atau dibagikan dengan penggunaan Anda Akun AWS . AWS Resource Access Manager Untuk informasi selengkapnya tentang menggunakan ruang nama bersama, lihat. [Amazon ECS Service Connect dengan ruang nama bersama AWS Cloud Map](service-connect-shared-namespaces.md)
+ 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-concepts-deploy).
+ 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, gunakan `[ingressPortOverride](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_ServiceConnectService.html)` parameter dalam konfigurasi layanan Service Connect Anda.
+ Service Connect with TLS tidak mendukung mode `bridge` jaringan. Hanya mode `awsvpc` jaringan yang didukung.
+ Dalam `awsvpc` mode, proxy Service Connect meneruskan lalu lintas ke IPv4 localhost `127.0.0.1` untuk layanan dalam konfigurasi IPv4 -only dan dualstack. Untuk layanan dalam konfigurasi IPv6 -only, proxy meneruskan lalu lintas ke localhost. IPv6 `::1` Sebaiknya konfigurasi aplikasi Anda untuk mendengarkan kedua localhosts untuk pengalaman yang mulus saat layanan diperbarui dari konfigurasi IPv4 -only atau dualstack ke -only. IPv6 Untuk informasi selengkapnya, lihat [Opsi Jaringan Tugas Amazon ECS untuk EC2](task-networking.md) dan [Opsi jaringan tugas Amazon ECS untuk Fargate](fargate-task-networking.md).

**Service Connect tidak mendukung hal berikut:**
+ Kontainer Windows
+ HTTP 1.0
+ Tugas mandiri
+ Layanan yang menggunakan jenis penyebaran yang blue/green didukung oleh CodeDeploy dan eksternal
+ `External`instance container untuk Amazon ECS Anywhere tidak didukung dengan Service Connect.
+ PPv2
+ Modus FIPS

# Gambaran Umum Konfigurasi Amazon ECS Service Connect
<a name="service-connect-concepts"></a>

Saat Anda menggunakan Service Connect, ada parameter yang perlu Anda konfigurasikan di sumber daya Anda. 

Tabel berikut menjelaskan parameter konfigurasi untuk sumber daya Amazon ECS.


| Parameter lokasi | Jenis aplikasi | Deskripsi | Diperlukan | 
| --- | --- | --- | --- | 
| Definisi tugas | Klien | Tidak ada perubahan yang tersedia untuk Service Connect dalam definisi tugas klien. | N/A | 
| Definisi tugas | Server klien | Server harus menambahkan name bidang ke port di portMappings wadah. Untuk informasi selengkapnya, lihat [portMappings](task_definition_parameters.md#ContainerDefinition-portMappings) | Ya | 
| Definisi tugas | Server klien | Server secara opsional dapat menyediakan protokol aplikasi (misalnya, HTTP) untuk menerima metrik spesifik protokol untuk aplikasi server mereka (misalnya,). HTTP 5xx | Tidak | 
| Definisi layanan | Klien | Layanan klien harus menambahkan a serviceConnectConfiguration untuk mengkonfigurasi namespace untuk bergabung. Namespace ini harus berisi semua layanan server yang perlu ditemukan oleh layanan ini. Untuk informasi selengkapnya, lihat [serviceConnectConfiguration](service_definition_parameters.md#Service-serviceConnectConfiguration). | Ya | 
| Definisi layanan | Server klien | Layanan server harus menambahkan a serviceConnectConfiguration untuk mengonfigurasi nama DNS, nomor port, dan namespace tempat layanan tersedia. Untuk informasi selengkapnya, lihat [serviceConnectConfiguration](service_definition_parameters.md#Service-serviceConnectConfiguration). | Ya | 
| Kluster | Klien | Cluster dapat menambahkan namespace Service Connect default. Layanan baru di cluster mewarisi namespace saat Service Connect dikonfigurasi dalam layanan.  | Tidak | 
| Kluster | Server klien | Tidak ada perubahan yang tersedia untuk Service Connect di cluster yang berlaku untuk layanan server. Definisi tugas server dan layanan harus mengatur konfigurasi masing-masing. | N/A | 

**Ikhtisar langkah-langkah untuk mengkonfigurasi Service Connect**  
Langkah-langkah berikut memberikan gambaran umum tentang cara mengkonfigurasi Service Connect.

**penting**  
 Service Connect membuat AWS Cloud Map layanan di akun Anda. Memodifikasi AWS Cloud Map sumber daya ini dengan registering/deregistering instance secara manual, mengubah atribut instance, atau menghapus layanan dapat menyebabkan perilaku tak terduga untuk lalu lintas aplikasi Anda atau penerapan berikutnya.
 Service Connect tidak mendukung link dalam definisi tugas.

1. Tambahkan nama port ke pemetaan port dalam definisi tugas Anda. Selain itu, Anda dapat mengidentifikasi protokol lapisan 7 aplikasi, untuk mendapatkan metrik tambahan.

1. Buat cluster dengan AWS Cloud Map namespace, gunakan namespace bersama, atau buat namespace secara terpisah. Untuk organisasi sederhana, buat cluster dengan nama yang Anda inginkan untuk namespace dan tentukan nama yang identik untuk namespace. Dalam hal ini, Amazon ECS membuat namespace HTTP baru dengan konfigurasi yang diperlukan. Service Connect tidak menggunakan atau membuat zona yang dihosting DNS di Amazon Route 53.

1. Konfigurasikan layanan untuk membuat titik akhir Service Connect di dalam namespace.

1. Menyebarkan layanan untuk membuat titik akhir. Amazon ECS menambahkan container proxy Service Connect ke setiap tugas, dan membuat titik akhir Service Connect. AWS Cloud Map Wadah ini tidak dikonfigurasi dalam definisi tugas, dan definisi tugas dapat digunakan kembali tanpa modifikasi untuk membuat beberapa layanan di namespace yang sama atau di beberapa ruang nama.

1. Menerapkan aplikasi klien sebagai layanan untuk terhubung ke titik akhir. Amazon ECS menghubungkannya ke titik akhir Service Connect melalui proxy Service Connect di setiap tugas.

   Aplikasi hanya menggunakan proxy untuk terhubung ke titik akhir Service Connect. Tidak ada konfigurasi tambahan untuk menggunakan proxy. Proxy melakukan penyeimbangan beban round-robin, deteksi outlier, dan percobaan ulang. Untuk informasi selengkapnya tentang proxy, lihat[Proksi Service Connect](service-connect-concepts-deploy.md#service-connect-concepts-proxy).

1. Pantau lalu lintas melalui proxy Service Connect di Amazon CloudWatch.

## Konfigurasi klaster
<a name="service-connect-concepts-cluster-defaults"></a>

Anda dapat mengatur namespace default untuk Service Connect saat membuat atau memperbarui klaster. Nama namespace yang Anda tentukan sebagai default dapat berada di akun yang sama, atau sama Wilayah AWS Wilayah AWS dan dibagikan oleh penggunaan lain Akun AWS . AWS Resource Access Manager

Jika Anda membuat klaster dan menentukan namespace Service Connect default, klaster menunggu dalam status `PROVISIONING` sementara Amazon ECS membuat namespace. Anda dapat melihat status klaster yang menunjukkan status namespace. `attachment` Lampiran tidak ditampilkan secara default di AWS CLI, Anda harus menambahkan `--include ATTACHMENTS` untuk melihatnya.

Jika Anda ingin menggunakan namespace yang dibagikan dengan Akun AWS penggunaan Anda AWS RAM, tentukan Amazon Resource Name (ARN) dari namespace dalam konfigurasi cluster. Untuk informasi selengkapnya tentang AWS Cloud Map ruang nama bersama, lihat. [Amazon ECS Service Connect dengan ruang nama bersama AWS Cloud Map](service-connect-shared-namespaces.md)

## Konfigurasi layanan
<a name="service-connect-concepts-config"></a>

Service Connect dirancang untuk memerlukan konfigurasi minimum. Anda perlu menetapkan nama untuk setiap pemetaan port yang ingin Anda gunakan dengan Service Connect dalam definisi tugas. Dalam layanan, Anda perlu mengaktifkan Service Connect dan memilih namespace di namespace Anda Akun AWS atau bersama untuk membuat layanan klien. Untuk membuat layanan client-server, Anda perlu menambahkan satu konfigurasi layanan Service Connect yang cocok dengan nama salah satu pemetaan port. Amazon ECS menggunakan kembali nomor port dan nama port dari definisi tugas untuk menentukan layanan dan titik akhir Service Connect. Untuk mengganti nilai tersebut, Anda dapat menggunakan parameter lain **Discovery**, **DNS**, dan **Port** di konsol, atau `discoveryName` dan`clientAliases`, masing-masing di Amazon ECS API.

## Konfigurasi Pemeriksaan Kesehatan Awal
<a name="service-connect-concepts-health-check"></a>

Service Connect memastikan tugas sehat sebelum merutekan lalu lintas ke tugas tersebut. Saat tugas diluncurkan (selama penerapan, penskalaan, atau penggantian), Service Connect memantau kesehatan tugas Anda untuk memastikannya siap menerima lalu lintas. Anda harus menentukan pemeriksaan kesehatan untuk wadah penting dalam definisi tugas Anda untuk mengaktifkan perilaku ini.

Perilaku pemeriksaan kesehatan awal menyumbang potensi penundaan dengan mencapai keadaan ketika tugas siap menerima lalu lintas:
+ Jika ada tugas`HEALTHY`, itu segera tersedia untuk lalu lintas.
+ Jika kesehatan tugas`UNKNOWN`, Service Connect mengikuti konfigurasi pemeriksaan kesehatan kontainer (lihat[Pemeriksaan kondisi](task_definition_parameters.md#container_definition_healthcheck)) wadah penting tugas untuk menghitung batas waktu, hingga`8 minutes`, sebelum membuatnya tersedia untuk lalu lintas, meskipun masih ada`UNKNOWN`.
+ Jika ada tugas`UNHEALTHY`, Amazon ECS dapat meluncurkan tugas pengganti. Jika tidak ada tugas sehat yang tersedia, penerapan Anda mungkin akan dibatalkan berdasarkan konfigurasi layanan Anda.

Untuk semua lalu lintas yang sedang berlangsung, Service Connect menggunakan pemeriksaan kesehatan pasif berdasarkan deteksi outlier untuk merutekan lalu lintas secara efisien.

# Amazon ECS Service Connect dengan ruang nama bersama AWS Cloud Map
<a name="service-connect-shared-namespaces"></a>

Amazon ECS Service Connect mendukung penggunaan AWS Cloud Map ruang nama bersama Akun AWS di beberapa ruang yang sama. Wilayah AWS Kemampuan ini memungkinkan Anda membuat aplikasi terdistribusi di mana layanan yang berjalan berbeda Akun AWS dapat menemukan dan berkomunikasi satu sama lain melalui Service Connect. Ruang nama bersama dikelola menggunakan AWS Resource Access Manager (AWS RAM), yang memungkinkan berbagi sumber daya lintas akun yang aman. *Untuk informasi selengkapnya tentang ruang nama bersama, lihat [Berbagi AWS Cloud Map namespace lintas akun](https://docs.aws.amazon.com/cloud-map/latest/dg/sharing-namespaces.html) di Panduan Pengembang.AWS Cloud Map *

**penting**  
Anda harus menggunakan izin `AWSRAMPermissionCloudMapECSFullPermission` terkelola untuk berbagi namespace agar Service Connect berfungsi dengan baik dengan namespace.

Bila Anda menggunakan AWS Cloud Map ruang nama bersama dengan Service Connect, layanan dari beberapa Akun AWS dapat berpartisipasi dalam namespace layanan yang sama. Ini sangat berguna untuk organisasi dengan banyak Akun AWS yang perlu menjaga service-to-service komunikasi lintas batas akun sambil menjaga keamanan dan isolasi.

**catatan**  
Untuk berkomunikasi dengan layanan yang berbeda VPCs, Anda perlu mengkonfigurasi konektivitas antar-VPC. Ini dapat dicapai dengan menggunakan koneksi VPC Peering. Untuk informasi selengkapnya, lihat [Membuat atau menghapus koneksi Peering VPC di panduan Peering](https://docs.aws.amazon.com/vpc/latest/peering/create-vpc-peering-connection.html) *VPC Amazon Virtual Private Cloud*.

# Menggunakan AWS Cloud Map ruang nama bersama dengan Amazon ECS Service Connect
<a name="service-connect-shared-namespaces-setup"></a>

Menyiapkan AWS Cloud Map ruang nama bersama untuk Service Connect melibatkan langkah-langkah berikut: Pemilik namespace membuat namespace, pemilik membagikannya melalui AWS Resource Access Manager (AWS RAM), konsumen menerima pembagian sumber daya, dan konsumen mengonfigurasi Service Connect untuk menggunakan namespace bersama.

## Langkah 1: Buat AWS Cloud Map namespace
<a name="service-connect-shared-namespaces-create"></a>

Pemilik namespace membuat AWS Cloud Map namespace yang akan dibagikan dengan akun lain.

**Untuk membuat namespace untuk berbagi menggunakan Konsol Manajemen AWS**

1. Buka AWS Cloud Map konsol di [https://console.aws.amazon.com/cloudmap/](https://console.aws.amazon.com/cloudmap/).

1. Pilih **Buat namespace**.

1. Masukkan **nama Namespace**. Nama ini akan digunakan oleh layanan di semua akun yang berpartisipasi.

1. Untuk jenis **Namespace, pilih jenis** yang sesuai untuk kasus penggunaan Anda:
   + **Panggilan API** - ruang nama HTTP untuk penemuan layanan tanpa fungsionalitas DNS.
   + **Panggilan API dan kueri DNS di VPCs** - Ruang nama DNS pribadi untuk penemuan layanan dengan kueri DNS pribadi di VPC.
   + **Panggilan API dan kueri DNS publik** - Ruang nama DNS publik untuk penemuan layanan dengan kueri DNS publik.

1.  Pilih **Buat namespace**.

## Langkah 2: Bagikan namespace menggunakan AWS RAM
<a name="service-connect-shared-namespaces-share"></a>

Pemilik namespace menggunakan AWS RAM untuk berbagi namespace dengan yang lain. Akun AWS

**Untuk berbagi namespace menggunakan konsol AWS RAM**

1. Buka AWS RAM konsol di [https://console.aws.amazon.com/ram/](https://console.aws.amazon.com/ram/).

1. Pilih **Buat berbagi sumber daya**.

1. Untuk **Nama**, masukkan nama deskriptif untuk berbagi sumber daya.

1. Di bagian **Sumber Daya**:

   1. Untuk **jenis Resource**, pilih **Cloud Map Namespaces**.

   1. Pilih namespace yang Anda buat pada langkah sebelumnya.

1. Di bagian **Izin terkelola**, tentukan **AWSRAMPermissionCloudMapECSFullIzin**.
**penting**  
Anda harus menggunakan izin `AWSRAMPermissionCloudMapECSFullPermission` terkelola untuk berbagi namespace agar Service Connect berfungsi dengan baik dengan namespace.

1. Di bagian **Prinsipal**, tentukan namespace yang ingin Akun AWS Anda bagikan. Anda dapat memasukkan akun IDs atau unit organisasi IDs.

1. Pilih **Buat berbagi sumber daya**.

## Langkah 3: Terima pembagian sumber daya
<a name="service-connect-shared-namespaces-accept"></a>

Akun konsumen namespace harus menerima undangan berbagi sumber daya untuk menggunakan namespace bersama.

**Untuk menerima undangan berbagi sumber daya menggunakan AWS RAM konsol**

1. Di akun konsumen, buka AWS RAM konsol di [https://console.aws.amazon.com/ram/](https://console.aws.amazon.com/ram/).

1. Di panel navigasi, pilih **Dibagikan dengan saya**, lalu pilih **Pembagian sumber daya**.

1. Pilih undangan berbagi sumber daya dan pilih **Terima berbagi sumber daya**.

1. Setelah menerima, perhatikan ARN namespace bersama dari detail sumber daya. Anda akan menggunakan ARN ini saat mengonfigurasi layanan Service Connect.

## Langkah 4: Konfigurasikan layanan Amazon ECS dengan namespace bersama
<a name="service-connect-shared-namespaces-configure"></a>

Setelah menerima namespace bersama, konsumen namespace dapat mengonfigurasi layanan Amazon ECS untuk menggunakan namespace bersama. Konfigurasi ini mirip dengan menggunakan namespace biasa, tetapi Anda harus menentukan namespace ARN bukan nama. Untuk prosedur pembuatan layanan terperinci, lihat[Membuat penyebaran pembaruan bergulir Amazon ECS](create-service-console-v2.md).

**Untuk membuat layanan dengan namespace bersama menggunakan Konsol Manajemen AWS**

1. Buka konsol di [https://console.aws.amazon.com/ecs/v2](https://console.aws.amazon.com/ecs/v2).

1. Pada halaman **Clusters**, pilih cluster tempat Anda ingin membuat layanan.

1. Di bawah **Layanan**, pilih **Buat**.

1. Setelah mengisi detail lainnya tergantung pada beban kerja Anda, di bagian **Service Connect**, pilih **Use Service Connect**.

1. Untuk **Namespace**, masukkan ARN lengkap dari namespace bersama.

   Format ARN adalah: `arn:aws:servicediscovery:region:account-id:namespace/namespace-id`

1. Konfigurasikan setelan Service Connect yang tersisa sesuai kebutuhan untuk jenis layanan Anda (klien atau client-server).

1. Selesaikan proses pembuatan layanan.

Anda juga dapat mengkonfigurasi layanan menggunakan AWS CLI atau AWS SDKs dengan menentukan namespace bersama ARN dalam `namespace` parameter. `serviceConnectConfiguration`

```
aws ecs create-service \
    --cluster my-cluster \
    --service-name my-service \
    --task-definition my-task-def \
    --service-connect-configuration '{
        "enabled": true,
        "namespace": "arn:aws:servicediscovery:us-west-2:123456789012:namespace/ns-abcdef1234567890",
        "services": [{
            "portName": "web",
            "discoveryName": "my-service",
            "clientAliases": [{
                "port": 80,
                "dnsName": "my-service"
            }]
        }]
    }'
```

## Pertimbangan-pertimbangan
<a name="service-connect-shared-namespaces-considerations"></a>

Pertimbangkan hal berikut saat menggunakan AWS Cloud Map ruang nama bersama dengan Service Connect:
+ AWS RAM harus tersedia di Wilayah AWS tempat Anda ingin menggunakan namespace bersama.
+ Namespace bersama harus Wilayah AWS sama dengan layanan dan cluster Amazon ECS Anda.
+ Anda harus menggunakan namespace ARN, bukan ID, saat mengonfigurasi Service Connect dengan namespace bersama.
+ Semua jenis namespace didukung: HTTP, Private DNS, dan Public DNS namespace.
+ Jika akses ke namespace bersama dicabut, operasi Amazon ECS yang memerlukan interaksi dengan namespace (seperti`CreateService`,, `UpdateService` dan) akan gagal. `ListServicesByNamespace` Untuk informasi selengkapnya tentang masalah izin pemecahan masalah dengan ruang nama bersama, lihat. [Memecahkan masalah Amazon ECS Service Connect dengan ruang nama bersama AWS Cloud Map](service-connect-shared-namespaces-troubleshooting.md)
+ Untuk penemuan layanan menggunakan kueri DNS di namespace DNS pribadi bersama:
  + Pemilik namespace perlu menelepon `create-vpc-association-authorization` dengan ID zona host pribadi yang terkait dengan namespace, dan VPC konsumen.

    ```
    aws route53 create-vpc-association-authorization --hosted-zone-id Z1234567890ABC --vpc VPCRegion=us-east-1,VPCId=vpc-12345678
    ```
  + Konsumen namespace perlu menelepon `associate-vpc-with-hosted-zone` dengan ID zona host pribadi.

    ```
    aws route53 associate-vpc-with-hosted-zone --hosted-zone-id Z1234567890ABC --vpc VPCRegion=us-east-1,VPCId=vpc-12345678
    ```
+ Hanya pemilik namespace yang dapat mengelola pembagian sumber daya.
+ Konsumen namespace dapat membuat dan mengelola layanan dalam namespace bersama tetapi tidak dapat memodifikasi namespace itu sendiri.
+ Nama penemuan harus unik dalam namespace bersama, terlepas dari akun mana yang membuat layanan.
+ Layanan di namespace bersama dapat menemukan dan terhubung ke layanan dari AWS akun lain yang memiliki akses ke namespace.
+ Saat mengaktifkan TLS untuk Service Connect dan menggunakan namespace bersama, AWS Private CA Certificate Authority (CA) dicakup ke namespace. Ketika akses ke namespace bersama dicabut, akses ke CA dihentikan.
+ Saat bekerja dengan namespace bersama, pemilik namespace dan konsumen tidak memiliki akses ke metrik Amazon lintas akun secara default. CloudWatch Metrik target dipublikasikan hanya ke akun yang memiliki layanan klien. Akun yang memiliki layanan klien tidak memiliki akses ke metrik yang diterima oleh akun yang memiliki layanan client-server, dan sebaliknya. Untuk memungkinkan akses lintas akun ke metrik, siapkan observabilitas CloudWatch lintas akun. *Untuk informasi selengkapnya tentang mengonfigurasi observabilitas lintas akun, lihat observabilitas [CloudWatch lintas akun di Panduan Pengguna Amazon](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Unified-Cross-Account.html). CloudWatch * Untuk informasi selengkapnya tentang CloudWatch metrik untuk Service Connect, lihat[Metrik Amazon ECS CloudWatch](available-metrics.md).

# Memecahkan masalah Amazon ECS Service Connect dengan ruang nama bersama AWS Cloud Map
<a name="service-connect-shared-namespaces-troubleshooting"></a>

Gunakan informasi berikut untuk memecahkan masalah dengan AWS Cloud Map ruang nama bersama dan Service Connect. Untuk informasi selengkapnya tentang menemukan pesan galat, lihat pemecahan masalah [Amazon ECS.](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/troubleshooting.html)

Pesan kesalahan yang terkait dengan masalah izin muncul karena izin yang hilang, atau jika akses ke namespace dicabut. 

**penting**  
Anda harus menggunakan izin `AWSRAMPermissionCloudMapECSFullPermission` terkelola untuk berbagi namespace agar Service Connect berfungsi dengan baik dengan namespace.

Pesan kesalahan muncul dalam salah satu format berikut:

Terjadi kesalahan (ClientException) saat memanggil < OperationName > operation: User: arn:aws:iam: ::user/ is not authorized to perform: < > ActionName on resource: < > ResourceArn karena tidak ada kebijakan berbasis sumber daya yang mengizinkan tindakan < > ActionName <account-id><user-name>

Skenario berikut dapat menghasilkan pesan kesalahan dalam format ini:

**Pembuatan klaster atau kegagalan pembaruan**  
Masalah ini terjadi ketika operasi Amazon ECS seperti `CreateCluster` atau `UpdateCluster` gagal karena AWS Cloud Map izin yang hilang. Operasi memerlukan izin untuk AWS Cloud Map tindakan berikut:  
+ `servicediscovery:GetNamespace`
Pastikan bahwa undangan berbagi sumber daya telah diterima di akun konsumen dan bahwa ARN namespace yang benar digunakan dalam konfigurasi Service Connect.

**Pembuatan layanan atau kegagalan pembaruan**  
Masalah ini terjadi ketika operasi Amazon ECS seperti `CreateService` atau `UpdateService` gagal karena AWS Cloud Map izin yang hilang. Operasi memerlukan izin untuk AWS Cloud Map tindakan berikut:  
+ `servicediscovery:CreateService`
+ `servicediscovery:GetNamespace`
+ `servicediscovery:GetOperation`(untuk membuat AWS Cloud Map layanan baru)
+ `servicediscovery:GetService`(untuk ketika AWS Cloud Map layanan sudah ada)
Pastikan bahwa undangan berbagi sumber daya telah diterima di akun konsumen dan bahwa ARN namespace yang benar digunakan dalam konfigurasi Service Connect.

**`ListServicesByNamespace`operasi gagal**  
Masalah ini terjadi ketika `ListServicesByNamespace` operasi Amazon ECS gagal. Operasi memerlukan izin untuk AWS Cloud Map tindakan berikut:  
+ `servicediscovery:GetNamespace`
Untuk menyelesaikan masalah ini:  
+ Verifikasi bahwa akun konsumen memiliki `servicediscovery:GetNamespace` izin.
+ Gunakan namespace ARN saat memanggil API, bukan namanya.
+ Pastikan pembagian sumber daya aktif dan undangan telah diterima.

User: tidak diizinkan untuk melakukan: < ActionName > on resource: < ResourceArn > dengan penolakan eksplisit dalam kebijakan berbasis identitas. <iam-user>

Skenario berikut dapat menghasilkan pesan kesalahan dalam format ini:

**Penghapusan layanan gagal dan macet dalam status `DRAINING`**  
Masalah ini terjadi ketika `DeleteService` operasi Amazon ECS gagal karena `servicediscovery:DeleteService` izin yang hilang saat akses ke namespace dicabut. Layanan mungkin tampak berhasil dihapus pada awalnya tetapi akan macet di `DRAINING` negara bagian. Pesan kesalahan muncul sebagai acara layanan Amazon ECS.  
Untuk mengatasi masalah ini, pemilik namespace harus membagikan namespace dengan akun konsumen agar penghapusan layanan selesai.

**Tugas dalam layanan gagal dijalankan**  
Masalah ini terjadi ketika tugas gagal dimulai karena izin yang hilang. Pesan kesalahan muncul sebagai kesalahan tugas yang dihentikan. Untuk informasi selengkapnya, lihat [Mengatasi kesalahan tugas Amazon ECS yang dihentikan](resolve-stopped-errors.md).  
 AWS Cloud Map Tindakan berikut diperlukan untuk menjalankan tugas:  
+ `servicediscovery:GetOperation`
+ `servicediscovery:RegisterInstance`
Pastikan akun konsumen memiliki izin yang diperlukan dan namespace bersama dapat diakses.

**Tugas gagal berhenti dengan bersih atau terjebak dalam `DEACTIVATING` atau keadaan `DEPROVISIONING`**  
Masalah ini terjadi ketika tugas gagal membatalkan pendaftaran dari AWS Cloud Map layanan selama shutdown karena izin yang hilang. Kesalahan muncul sebagai lampiran tugas `statusReason` yang dapat di-retreived menggunakan API. `DescribeTasks` Untuk informasi selengkapnya, lihat [DescribeTasks](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DescribeTasks.html)di *Referensi API Amazon Elastic Container Service*.  
 AWS Cloud Map Tindakan berikut diperlukan untuk menghentikan tugas:  
+ `servicediscovery:DeregisterInstance`
+ `servicediscovery:GetOperation`
Jika akses ke namespace bersama dicabut, tugas mungkin tetap dalam `DEPROVISIONING` status `DEACTIVATING` atau sampai akses namespace dipulihkan. Minta pemilik namespace untuk memulihkan akses ke namespace.

# Log akses Amazon ECS Service Connect
<a name="service-connect-envoy-access-logs"></a>

Amazon ECS Service Connect mendukung log akses untuk menyediakan telemetri terperinci tentang permintaan individual yang diproses oleh proxy Service Connect. Log akses melengkapi log aplikasi yang ada dengan menangkap metadata lalu lintas per permintaan seperti metode HTTP, jalur, kode respons, bendera, dan informasi waktu. Hal ini memungkinkan pengamatan yang lebih dalam ke dalam pola lalu lintas tingkat permintaan dan interaksi layanan untuk pemecahan masalah dan pemantauan yang efektif.

Untuk mengaktifkan log akses, tentukan `accessLogConfiguration` objek `logConfiguration` dan objek dalam `serviceConnectConfiguration` objek. Anda dapat mengonfigurasi format log dan apakah log harus menyertakan parameter kueri di file`accessLogConfiguration`. Log dikirim ke grup log tujuan oleh driver log yang ditentukan dalam file. `logConfiguration`

```
{
    "serviceConnectConfiguration": {
        "enabled": true,
        "namespace": "myapp.namespace",
        "services": [
            ...
        ],
        "logConfiguration": {
            "logDriver": "awslogs",
            "options": {
                "awslogs-group": "my-envoy-log-group",
                "awslogs-region": "us-west-2",
                "awslogs-stream-prefix": "myapp-envoy-logs"
            }
        },
         "accessLogConfiguration": {
            "format": "TEXT",
            "includeQueryParameters": "ENABLED" 
        }
    }
}
```

## Pertimbangan-pertimbangan
<a name="service-connect-envoy-access-logs-considerations"></a>

Pertimbangkan hal berikut ketika Anda mengaktifkan akses ke log akses
+ Log akses dan log aplikasi keduanya ditulis untuk`/dev/stdout`. Untuk memisahkan log akses dari log aplikasi, sebaiknya gunakan driver `awsfirelens` log dengan kustom Fluent Bit atau Fluentd konfigurasi.
+  Sebaiknya gunakan driver `awslogs` log untuk mengirim aplikasi dan mengakses log ke CloudWatch tujuan yang sama.
+ log akses didukung pada layanan Fargate yang menggunakan versi platform `1.4.0` dan yang lebih tinggi.
+ Parameter kueri seperti id permintaan dan token dikecualikan dari log akses secara default. Untuk menyertakan parameter kueri dalam log akses, setel `includeQueryParameters` ke`"ENABLED"`.

## Akses format log
<a name="service-connect-envoy-access-logs-formats"></a>

log akses dapat diformat dalam kamus format JSON atau string format Teks, dengan perbedaan operator perintah yang didukung untuk berbagai jenis log akses.

### Log akses HTTP
<a name="service-connect-envoy-access-logs-formats-http"></a>

Operator perintah berikut disertakan secara default untuk log HTTP:

------
#### [ Text ]

```
[%START_TIME%] "%REQ(:METHOD)% %REQ(X-ENVOY-ORIGINAL-PATH?:PATH)% %PROTOCOL%"
%RESPONSE_CODE% %BYTES_RECEIVED% %BYTES_SENT% %DURATION%
%RESP(X-ENVOY-UPSTREAM-SERVICE-TIME)% "%REQ(X-FORWARDED-FOR)%" "%REQ(USER-AGENT)%"
"%REQ(X-REQUEST-ID)%" "%REQ(:AUTHORITY)%" "%UPSTREAM_HOST%"\n
```

------
#### [ JSON ]

```
{
  "start_time": "%START_TIME%",
  "method": "%REQ(:METHOD)%",
  "path": "%REQ(X-ENVOY-ORIGINAL-PATH?:PATH)%",
  "protocol": "%PROTOCOL%",
  "response_code": "%RESPONSE_CODE%",
  "bytes_received": "%BYTES_RECEIVED%",
  "bytes_sent": "%BYTES_SENT%",
  "duration_ms": "%DURATION%",
  "upstream_service_time": "%RESP(X-ENVOY-UPSTREAM-SERVICE-TIME)%",
  "forwarded_for": "%REQ(X-FORWARDED-FOR)%",
  "user_agent": "%REQ(USER-AGENT)%",
  "request_id": "%REQ(X-REQUEST-ID)%",
  "authority": "%REQ(:AUTHORITY)%",
  "upstream_host": "%UPSTREAM_HOST%"
}
```

------

### HTTP2 log akses
<a name="service-connect-envoy-access-logs-formats-http2"></a>

Selain operator perintah yang disertakan untuk log HTTP, HTTP2 log menyertakan `%STREAM_ID%` operator secara default.

------
#### [ Text ]

```
[%START_TIME%] "%REQ(:METHOD)% %REQ(X-ENVOY-ORIGINAL-PATH?:PATH)% %PROTOCOL%"
%RESPONSE_CODE% %BYTES_RECEIVED% %BYTES_SENT% %DURATION%
%RESP(X-ENVOY-UPSTREAM-SERVICE-TIME)% "%REQ(X-FORWARDED-FOR)%" "%REQ(USER-AGENT)%"
"%REQ(X-REQUEST-ID)%" "%REQ(:AUTHORITY)%" "%UPSTREAM_HOST%" "%STREAM_ID%"\n
```

------
#### [ JSON ]

```
{
  "start_time": "%START_TIME%",
  "method": "%REQ(:METHOD)%",
  "path": "%REQ(X-ENVOY-ORIGINAL-PATH?:PATH)%",
  "protocol": "%PROTOCOL%",
  "response_code": "%RESPONSE_CODE%",
  "bytes_received": "%BYTES_RECEIVED%",
  "bytes_sent": "%BYTES_SENT%",
  "duration": "%DURATION%",
  "upstream_service_time": "%RESP(X-ENVOY-UPSTREAM-SERVICE-TIME)%",
  "forwarded_for": "%REQ(X-FORWARDED-FOR)%",
  "user_agent": "%REQ(USER-AGENT)%",
  "request_id": "%REQ(X-REQUEST-ID)%",
  "authority": "%REQ(:AUTHORITY)%",
  "upstream_host": "%UPSTREAM_HOST%",
  "stream_id": "%STREAM_ID%"
}
```

------

### log akses gRPC
<a name="service-connect-envoy-access-logs-formats-grpc"></a>

Selain operator perintah yang disertakan untuk log HTTP, log akses gRPC menyertakan `%STREAM_ID%` dan `%GRPC_STATUS()%` operator secara default.

------
#### [ Text ]

```
[%START_TIME%] "%REQ(:METHOD)% %REQ(X-ENVOY-ORIGINAL-PATH?:PATH)% %PROTOCOL%"
%RESPONSE_CODE% %GRPC_STATUS()% %BYTES_RECEIVED% %BYTES_SENT% %DURATION%
%RESP(X-ENVOY-UPSTREAM-SERVICE-TIME)% "%REQ(X-FORWARDED-FOR)%" "%REQ(USER-AGENT)%"
"%REQ(X-REQUEST-ID)%" "%REQ(:AUTHORITY)%" "%UPSTREAM_HOST%" "%STREAM_ID%"\n
```

------
#### [ JSON ]

```
{
  "start_time": "%START_TIME%",
  "method": "%REQ(:METHOD)%",
  "path": "%REQ(X-ENVOY-ORIGINAL-PATH?:PATH)%",
  "protocol": "%PROTOCOL%",
  "response_code": "%RESPONSE_CODE%",
  "grpc_status": "%GRPC_STATUS()%",
  "bytes_received": "%BYTES_RECEIVED%",
  "bytes_sent": "%BYTES_SENT%",
  "duration": "%DURATION%",
  "upstream_service_time": "%RESP(X-ENVOY-UPSTREAM-SERVICE-TIME)%",
  "forwarded_for": "%REQ(X-FORWARDED-FOR)%",
  "user_agent": "%REQ(USER-AGENT)%",
  "request_id": "%REQ(X-REQUEST-ID)%",
  "authority": "%REQ(:AUTHORITY)%",
  "upstream_host": "%UPSTREAM_HOST%",
  "stream_id": "%STREAM_ID%"
}
```

------

### Log akses TCP
<a name="service-connect-envoy-access-logs-formats-tcp"></a>

Operator perintah berikut disertakan secara default dalam log akses TCP:

------
#### [ Text ]

```
[%START_TIME%] %DOWNSTREAM_REMOTE_ADDRESS% %DOWNSTREAM_REMOTE_PORT% 
%BYTES_RECEIVED% %BYTES_SENT% %DURATION%  
%CONNECTION_TERMINATION_DETAILS% %CONNECTION_ID%\n
```

------
#### [ JSON ]

```
{
  "start_time": "%START_TIME%",
  "downstream_remote_address": "%DOWNSTREAM_REMOTE_ADDRESS%",
  "downstream_remote_port": "%DOWNSTREAM_REMOTE_PORT%",s
  "bytes_received": "%BYTES_RECEIVED%",
  "bytes_sent": "%BYTES_SENT%",
  "duration": "%DURATION%",
  "connection_termination_details": "%CONNECTION_TERMINATION_DETAILS%",
  "connection_id": %CONNECTION_ID%
}
```

------

Untuk informasi selengkapnya tentang operator perintah ini, lihat [Operator Perintah](https://www.envoyproxy.io/docs/envoy/latest/configuration/observability/access_log/usage#command-operators) dalam dokumentasi Utusan.

# Mengaktifkan log akses untuk Amazon ECS Service Connect
<a name="service-connect-access-logs-configuration"></a>

Log akses tidak diaktifkan secara default untuk layanan Amazon ECS yang menggunakan Service Connect. Anda dapat mengaktifkan log akses dengan cara berikut.

## Aktifkan log akses menggunakan AWS CLI
<a name="service-connect-access-logs-configure-cli"></a>

Perintah berikut menunjukkan bagaimana Anda dapat mengaktifkan log akses untuk layanan Amazon ECS menggunakan AWS CLI dengan menentukan `accessLogConfiguration` saat Anda membuat layanan:

```
aws ecs create-service \
    --cluster my-cluster \
    --service-name my-service \
    --task-definition my-task-def \
    --service-connect-configuration '{
        "enabled": true,
        "namespace": "arn:aws:servicediscovery:us-west-2:123456789012:namespace/ns-abcdef1234567890",
        "services": [{
            "portName": "web",
            "discoveryName": "my-service",
            "clientAliases": [{
                "port": 80,
                "dnsName": "my-service"
            }]
        }],
        "logConfiguration": {
            "logDriver": "awslogs",
            "options": {
                "awslogs-group": "my-envoy-log-group",
                "awslogs-region": "us-west-2",
                "awslogs-stream-prefix": "myapp-envoy-logs"
            }
        },
         "accessLogConfiguration": {
            "format": "TEXT",
            "includeQueryParameters": "ENABLED" 
        }
    }'
```

## Aktifkan log akses menggunakan konsol
<a name="service-connect-access-logs-configure-console"></a>

Untuk prosedur pembuatan layanan terperinci, lihat[Membuat penyebaran pembaruan bergulir Amazon ECS](create-service-console-v2.md).

**Untuk membuat layanan dengan namespace bersama menggunakan Konsol Manajemen AWS**

1. Buka konsol di [https://console.aws.amazon.com/ecs/v2](https://console.aws.amazon.com/ecs/v2).

1. Pada halaman **Clusters**, pilih cluster tempat Anda ingin membuat layanan.

1. Di bawah **Layanan**, pilih **Buat**.

1. Setelah mengisi detail lainnya tergantung pada beban kerja Anda, di bagian **Service Connect**, pilih **Use Service Connect**.

1. Konfigurasikan pengaturan Service Connect sesuai kebutuhan untuk jenis layanan Anda (klien atau client-server).

1. Perluas **konfigurasi log Access**. Untuk **Format**, pilih **JSON** atau`TEXT`.

1. Untuk menyertakan parameter kueri dalam log akses, pilih **Sertakan parameter kueri**.

1. Selesaikan proses pembuatan layanan.

# Enkripsi lalu lintas Amazon ECS Service Connect
<a name="service-connect-tls"></a>

Amazon ECS Service Connect mendukung enkripsi lalu lintas otomatis dengan sertifikat Transport Layer Security (TLS) untuk layanan Amazon ECS. Saat Anda mengarahkan layanan Amazon ECS ke [AWS Private Certificate Authority (AWS Private CA)](https://docs.aws.amazon.com/privateca/latest/userguide/PcaWelcome.html), Amazon ECS secara otomatis menyediakan sertifikat TLS untuk mengenkripsi lalu lintas antara layanan Amazon ECS Service Connect Anda. Amazon ECS menghasilkan, memutar, dan mendistribusikan sertifikat TLS yang digunakan untuk enkripsi lalu lintas.

Enkripsi lalu lintas otomatis dengan Service Connect menggunakan kemampuan enkripsi terdepan di industri untuk mengamankan komunikasi antar-layanan Anda yang membantu Anda memenuhi persyaratan keamanan. Ini mendukung sertifikat AWS Private Certificate Authority TLS dengan `256-bit ECDSA` dan `2048-bit RSA` enkripsi. Anda juga memiliki kontrol penuh atas sertifikat pribadi dan kunci penandatanganan untuk membantu Anda memenuhi persyaratan kepatuhan. Secara default, TLS 1.3 didukung, tetapi TLS 1.0 - 1.2 tidak didukung. Service Connect mendukung TLS 1.3 dengan cipher berikut:
+ `TLS_AES_128_GCM_SHA256`
+ `TLS_AES_256_GCM_SHA384`
+ `TLS_CHACHA20_POLY1305_SHA256`

**catatan**  
Untuk menggunakan TLS 1.3, Anda harus mengaktifkannya pada pendengar pada target.  
Hanya lalu lintas masuk dan keluar yang lewat melalui agen Amazon ECS dienkripsi.

## Pemeriksaan kesehatan Service Connect dan Application Load Balancer
<a name="service-connect-tls-alb-healthchecks"></a>

Anda dapat menggunakan Service Connect dengan pemeriksaan kesehatan Application Load Balancer dan enkripsi TLS 1.3. 

### Konfigurasi Application Load Balancer
<a name="service-connect-tls-alb-config"></a>

Konfigurasikan Application Load Balancer dengan pengaturan berikut:
+ Konfigurasikan pendengar TLS dengan kebijakan keamanan TLS 1.3 (seperti `ELBSecurityPolicy- TLS13 -1-2-2021-06`). Untuk informasi selengkapnya, lihat [Kebijakan keamanan untuk Application Load Balancer Anda](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/describe-ssl-policies.html). 
+ Buat grup target dengan pengaturan berikut:
  + Atur protokol ke HTTPS
  + Lampirkan grup target ke pendengar TLS
  + Konfigurasikan port pemeriksaan kesehatan agar sesuai dengan port kontainer layanan Service Connect

### Konfigurasi Service Connect
<a name="service-connect-tls-sc-config"></a>

Konfigurasikan layanan dengan pengaturan berikut:
+ Konfigurasikan layanan untuk menggunakan mode `awsvpc` jaringan, karena mode `bridge` jaringan tidak didukung.
+ Aktifkan Service Connect untuk layanan.
+ Siapkan konfigurasi penyeimbang beban dengan pengaturan berikut:
  + Tentukan grup target yang Anda konfigurasikan untuk Application Load Balancer
  + Atur port kontainer agar sesuai dengan port kontainer layanan Service Connect TLS
+ Hindari pengaturan `ingressPortOverride` untuk layanan. Untuk informasi selengkapnya, lihat [ServiceConnectService](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_ServiceConnectService.html)di *Referensi API Amazon Elastic Container Service*.

### Pertimbangan-pertimbangan
<a name="service-connect-tls-alb-considerations"></a>

Pertimbangkan hal berikut saat menggunakan Application Load Balancer, TLS dan Service Connect:
+ Gunakan mode `awsvpc` jaringan alih-alih mode `bridge` jaringan untuk pemeriksaan kesehatan HTTPS saat menggunakan enkripsi Service Connect dengan TLS. Pemeriksaan kesehatan HTTP akan terus bekerja dengan `bridge` mode.
+ Konfigurasikan port pemeriksaan kesehatan grup target agar sesuai dengan port kontainer layanan Service Connect, bukan port HTTPS default (443).

## AWS Private Certificate Authority sertifikat dan Service Connect
<a name="service-connect-tls-certificates"></a>

Anda harus memiliki peran IAM infrastruktur. Untuk informasi selengkapnya tentang peran ini, lihat peran [IAM infrastruktur Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/infrastructure_IAM_role.html                     ).

**AWS Private Certificate Authority mode untuk Service Connect**

AWS Private Certificate Authority dapat berjalan dalam dua mode: tujuan umum dan berumur pendek.
+ Tujuan umum - Sertifikat yang dapat dikonfigurasi dengan tanggal kedaluwarsa apa pun.
+ Berumur pendek - Sertifikat dengan validitas maksimum tujuh hari.

Meskipun Amazon ECS mendukung kedua mode, kami sarankan untuk menggunakan sertifikat berumur pendek. Secara default, sertifikat berputar setiap lima hari, dan berjalan dalam mode berumur pendek menawarkan penghematan biaya yang signifikan dibandingkan tujuan umum.

Service Connect tidak mendukung pencabutan sertifikat dan sebaliknya memanfaatkan sertifikat berumur pendek dengan rotasi sertifikat yang sering. Anda memiliki wewenang untuk memodifikasi frekuensi rotasi, menonaktifkan, atau menghapus rahasia menggunakan [rotasi terkelola](https://docs.aws.amazon.com/secretsmanager/latest/userguide/rotate-secrets_managed.html) di [Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html), tetapi hal itu dapat disertai dengan konsekuensi yang mungkin berikut.
+ Frekuensi Rotasi Lebih Pendek - Frekuensi rotasi yang lebih pendek menimbulkan biaya yang lebih tinggi karena AWS Private CA, AWS KMS dan Secrets Manager, dan Auto Scaling mengalami peningkatan beban kerja untuk rotasi.
+ Frekuensi Rotasi Lebih Panjang - Komunikasi aplikasi Anda gagal jika frekuensi rotasi melebihi **tujuh hari**.
+ Penghapusan Rahasia - Menghapus rahasia menghasilkan kegagalan rotasi dan berdampak pada komunikasi aplikasi pelanggan.

Jika rotasi rahasia Anda gagal, sebuah `RotationFailed` acara dipublikasikan di [AWS CloudTrail](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-user-guide.html). Anda juga dapat mengatur [CloudWatchAlarm](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html) untuk`RotationFailed`.

**penting**  
Jangan menambahkan replika Regions ke rahasia. Melakukannya mencegah Amazon ECS menghapus rahasia, karena Amazon ECS tidak memiliki izin untuk menghapus Wilayah dari replikasi. Jika Anda sudah menambahkan replikasi, jalankan perintah berikut.  

```
aws secretsmanager remove-regions-from-replication \
 --secret-id SecretId \
 --remove-replica-regions region-name
```

**Otoritas Sertifikat Bawahan**  
Anda dapat membawa apa saja AWS Private CA, root atau bawahan, ke Service Connect TLS untuk menerbitkan sertifikat entitas akhir untuk layanan. Penerbit yang disediakan diperlakukan sebagai penandatangan dan akar kepercayaan di mana-mana. Anda dapat menerbitkan sertifikat entitas akhir untuk berbagai bagian aplikasi Anda dari bawahan yang berbeda. CAs Saat menggunakan AWS CLI, berikan Nama Sumber Daya Amazon (ARN) CA untuk membangun rantai kepercayaan.

**Otoritas Sertifikat Lokal**  
Untuk menggunakan CA lokal, Anda membuat dan mengonfigurasi CA bawahan. AWS Private Certificate Authority Ini memastikan semua sertifikat TLS yang dikeluarkan untuk beban kerja Amazon ECS Anda berbagi rantai kepercayaan dengan beban kerja yang Anda jalankan di tempat dan dapat terhubung dengan aman.

**penting**  
Tambahkan tag **yang diperlukan** `AmazonECSManaged : true` di AWS Private CA. 

**Infrastruktur sebagai kode**  
Saat menggunakan alat Service Connect TLS dengan Infrastructure as Code (IAc), penting untuk mengonfigurasi dependensi Anda dengan benar untuk menghindari masalah, seperti layanan yang macet dalam pengurasan. AWS KMS Kunci Anda, jika disediakan, peran IAM, dan AWS Private CA dependensi harus dihapus setelah layanan Amazon ECS Anda.

Jika namespace yang digunakan untuk Service Connect adalah namespace bersama, Anda dapat memilih untuk menggunakan sumber daya bersama. AWS Private CA Untuk informasi selengkapnya, lihat [Melampirkan kebijakan untuk akses lintas akun](https://docs.aws.amazon.com/privateca/latest/userguide/pca-ram.html) di *Panduan AWS Private Certificate Authority Pengguna*.

## Service Connect dan Secrets Manager
<a name="service-connect-asm"></a>

**Saat menggunakan Amazon ECS Service Connect dengan enkripsi TLS, layanan berinteraksi dengan Secrets Manager dengan cara berikut:**  
Service Connect menggunakan peran infrastruktur yang disediakan untuk membuat rahasia dalam Secrets Manager. Rahasia ini digunakan untuk menyimpan kunci pribadi terkait untuk sertifikat TLS Anda untuk mengenkripsi lalu lintas antara layanan Service Connect Anda.

**Awas**  
Pembuatan dan pengelolaan rahasia ini secara otomatis oleh Service Connect menyederhanakan proses penerapan enkripsi TLS untuk layanan Anda. Namun, penting untuk menyadari potensi implikasi keamanan. Peran IAM lain yang memiliki akses baca ke Secrets Manager mungkin dapat mengakses rahasia yang dibuat secara otomatis ini. Ini dapat mengekspos materi kriptografi sensitif kepada pihak yang tidak berwenang, jika kontrol akses tidak dikonfigurasi dengan benar.  
Untuk mengurangi risiko ini, ikuti praktik terbaik berikut:  
Kelola dan batasi akses ke Secrets Manager dengan hati-hati, terutama untuk rahasia yang dibuat oleh Service Connect.
Secara teratur mengaudit peran IAM dan izinnya untuk memastikan prinsip hak istimewa paling sedikit dipertahankan.

Saat memberikan akses baca ke Secrets Manager, pertimbangkan untuk mengecualikan kunci pribadi TLS yang dibuat oleh Service Connect. Anda dapat melakukan ini dengan menggunakan kondisi dalam kebijakan IAM Anda untuk mengecualikan rahasia ARNs yang cocok dengan pola:

```
"arn:aws:secretsmanager:::secret:ecs-sc!"
```

Contoh kebijakan IAM yang menyangkal `GetSecretValue` tindakan untuk semua rahasia dengan awalan: `ecs-sc!`

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Deny",
            "Action": "secretsmanager:GetSecretValue",
            "Resource": "arn:aws:secretsmanager:*:*:secret:ecs-sc!*"
        }
    ]
}
```

------

**catatan**  
Ini adalah contoh umum dan mungkin perlu disesuaikan berdasarkan kasus penggunaan spesifik dan konfigurasi AWS akun Anda. Selalu uji kebijakan IAM Anda secara menyeluruh untuk memastikan mereka menyediakan akses yang diinginkan sambil menjaga keamanan.

Dengan memahami bagaimana Service Connect berinteraksi dengan Secrets Manager, Anda dapat mengelola keamanan layanan Amazon ECS dengan lebih baik sambil memanfaatkan manfaat enkripsi TLS otomatis.

## Service Connect dan AWS Key Management Service
<a name="service-connect-kms"></a>

Anda dapat menggunakan [AWS Key Management Service](https://docs.aws.amazon.com/kms/latest/developerguide/overview.html)untuk mengenkripsi dan mendekripsi sumber daya Service Connect Anda. AWS KMS adalah layanan yang dikelola oleh AWS tempat Anda dapat membuat dan mengelola kunci kriptografi yang melindungi data Anda.

Saat menggunakan AWS KMS Service Connect, Anda dapat memilih untuk menggunakan kunci AWS milik yang AWS mengelola untuk Anda, atau Anda dapat memilih AWS KMS kunci yang ada. Anda juga dapat [membuat AWS KMS kunci baru](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html#create-symmetric-cmk) untuk digunakan.

**Menyediakan kunci enkripsi Anda sendiri**  
Anda dapat menyediakan materi utama Anda sendiri, atau Anda dapat menggunakan penyimpanan kunci eksternal melalui AWS Key Management Service Impor kunci Anda sendiri AWS KMS, lalu tentukan Nama Sumber Daya Amazon (ARN) kunci tersebut di Amazon ECS Service Connect.

Berikut ini adalah contoh AWS KMS kebijakan. Ganti *user input* nilai dengan nilai Anda sendiri.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "id",
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::111122223333:role/role-name"
      },
      "Action": [
        "kms:Encrypt",
        "kms:Decrypt",
        "kms:GenerateDataKey",
        "kms:GenerateDataKeyPair"
      ],
      "Resource": "*"
    }
  ]
}
```

------

Untuk informasi selengkapnya tentang kebijakan utama, lihat [Membuat kebijakan kunci](https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-overview.html) di *Panduan AWS Key Management Service Pengembang*.

**catatan**  
Service Connect hanya mendukung AWS KMS kunci enkripsi simetris. Anda tidak dapat menggunakan jenis AWS KMS kunci lain untuk mengenkripsi sumber daya Service Connect. Untuk bantuan menentukan apakah AWS KMS kunci adalah kunci enkripsi simetris, lihat [Mengidentifikasi kunci KMS asimetris](https://docs.aws.amazon.com/kms/latest/developerguide/identify-key-types.html#identify-asymm-keys).

Untuk informasi selengkapnya tentang kunci enkripsi AWS Key Management Service simetris, lihat [AWS KMS Kunci enkripsi simetris](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#symmetric-cmks) di Panduan *AWS Key Management Service Pengembang*.

# Mengaktifkan TLS untuk Amazon ECS Service Connect
<a name="enable-service-connect-tls"></a>

Anda mengaktifkan enkripsi lalu lintas saat membuat atau memperbarui layanan Service Connect.

**Untuk mengaktifkan enkripsi lalu lintas untuk layanan di namespace yang ada menggunakan Konsol Manajemen AWS**

1. Anda harus memiliki peran IAM infrastruktur. Untuk informasi selengkapnya tentang peran ini, lihat peran [IAM infrastruktur Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/infrastructure_IAM_role.html                     ).

1. Buka konsol di [https://console.aws.amazon.com/ecs/v2](https://console.aws.amazon.com/ecs/v2).

1. Di panel navigasi, pilih **Namespace**.

1. Pilih **Namespace** dengan **Layanan** yang ingin Anda aktifkan enkripsi lalu lintas.

1. Pilih **Layanan** yang ingin Anda aktifkan enkripsi lalu lintas.

1. Pilih **Perbarui Layanan** di sudut kanan atas dan gulir ke bawah ke bagian Service Connect.

1. Pilih **Aktifkan enkripsi lalu lintas** di bawah informasi layanan Anda untuk mengaktifkan TLS.

1. Untuk peran **Service Connect TLS, pilih peran** IAM infrastruktur yang ada atau buat yang baru.

1. Untuk **otoritas sertifikat Penandatangan**, pilih otoritas sertifikat yang ada atau buat yang baru.

   Untuk informasi lebih lanjut, lihat[AWS Private Certificate Authority sertifikat dan Service Connect](service-connect-tls.md#service-connect-tls-certificates).

1. Untuk **Pilih AWS KMS key**, pilih kunci yang AWS dimiliki dan dikelola atau Anda dapat memilih kunci yang berbeda. Anda juga dapat memilih untuk membuat yang baru.

Untuk contoh menggunakan AWS CLI untuk mengkonfigurasi TLS untuk layanan Anda,[Mengonfigurasi Amazon ECS Service Connect dengan AWS CLI](create-service-connect.md).

# Memverifikasi TLS diaktifkan untuk Amazon ECS Service Connect
<a name="verify-tls-enabled"></a>

Service Connect memulai TLS di agen Service Connect dan menghentikannya di agen tujuan. Akibatnya, kode aplikasi tidak pernah melihat interaksi TLS. Gunakan langkah-langkah berikut untuk memverifikasi bahwa TLS diaktifkan.

1. Sertakan `openssl` CLI dalam gambar aplikasi Anda.

1. Aktifkan [ECS Exec](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-exec.html) pada layanan Anda untuk terhubung ke tugas Anda melalui SSM. Sebagai alternatif, Anda dapat meluncurkan instans Amazon EC2 di VPC Amazon yang sama dengan layanan.

1. Ambil IP dan port tugas dari layanan yang ingin Anda verifikasi. Anda dapat mengambil alamat IP tugas di AWS Cloud Map konsol. Informasi ada di halaman detail layanan untuk namespace. 

1. Masuk ke salah satu tugas Anda menggunakan `execute-command` seperti pada contoh berikut. **Sebagai alternatif, masuk ke instans Amazon EC2 yang dibuat di Langkah 2.**

   ```
   $ aws ecs execute-command --cluster cluster-name \
       --task task-id  \
       --container container-name \
       --interactive \
       --command "/bin/sh"
   ```
**catatan**  
Memanggil nama DNS secara langsung tidak mengungkapkan sertifikat.

1. Di shell yang terhubung, gunakan `openssl` CLI untuk memverifikasi dan melihat sertifikat yang dilampirkan pada tugas.

   Contoh:

   ```
   openssl s_client -connect 10.0.147.43:6379 < /dev/null 2> /dev/null \ 
   | openssl x509 -noout -text
   ```

   Contoh respons:

   ```
   Certificate:
       Data:
           Version: 3 (0x2)
           Serial Number:
               <serial-number>
           Signature Algorithm: ecdsa-with-SHA256
           Issuer: <issuer>
           Validity
               Not Before: Jan 23 21:38:12 2024 GMT
               Not After : Jan 30 22:38:12 2024 GMT
           Subject: <subject>
           Subject Public Key Info:
               Public Key Algorithm: id-ecPublicKey
                   Public-Key: (256 bit)
                   pub:
                       <pub>
                   ASN1 OID: prime256v1
                   NIST CURVE: P-256
           X509v3 extensions:
               X509v3 Subject Alternative Name:
                   DNS:redis.yelb-cftc
               X509v3 Basic Constraints:
                   CA:FALSE
               X509v3 Authority Key Identifier:
                   keyid:<key-id>
   
               X509v3 Subject Key Identifier:
                   1D:<id>
               X509v3 Key Usage: critical
                   Digital Signature, Key Encipherment
               X509v3 Extended Key Usage:
                   TLS Web Server Authentication, TLS Web Client Authentication
       Signature Algorithm: ecdsa-with-SHA256
           <hash>
   ```

# Mengonfigurasi Amazon ECS Service Connect dengan AWS CLI
<a name="create-service-connect"></a>

Anda dapat membuat layanan Amazon ECS untuk tugas Fargate yang menggunakan Service Connect dengan. AWS CLI

**catatan**  
Anda dapat menggunakan titik akhir layanan dual-stack untuk berinteraksi dengan Amazon ECS dari AWS CLI, SDKs dan Amazon ECS API melalui keduanya dan. IPv4 IPv6 Untuk informasi selengkapnya, lihat [Menggunakan titik akhir tumpukan ganda Amazon ECS](dual-stack-endpoint.md).

## Prasyarat
<a name="create-service-connect-prereqs"></a>

Berikut ini adalah prasyarat Service Connect:
+ Verifikasi bahwa versi terbaru diinstal dan dikonfigurasi. AWS CLI Untuk informasi selengkapnya, lihat [Menginstal atau memperbarui ke versi terbaru AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html).
+ Pengguna IAM Anda memiliki izin yang diperlukan yang ditentukan dalam contoh kebijakan [Amazonecs\$1 FullAccess](security-iam-awsmanpol.md#security-iam-awsmanpol-AmazonECS_FullAccess) IAM.
+ Anda memiliki VPC, subnet, tabel rute, dan grup keamanan yang dibuat untuk digunakan. Untuk informasi selengkapnya, lihat [Buat virtual private cloud](get-set-up-for-amazon-ecs.md#create-a-vpc).
+ Anda memiliki peran eksekusi tugas dengan nama `ecsTaskExecutionRole` dan kebijakan `AmazonECSTaskExecutionRolePolicy` terkelola dilampirkan ke peran. Peran ini memungkinkan Fargate untuk menulis log aplikasi NGINX dan log proxy Service Connect ke Amazon Logs. CloudWatch Untuk informasi selengkapnya, lihat [Membuat peran eksekusi tugas](task_execution_IAM_role.md#create-task-execution-role).

## Langkah 1: Buat cluster
<a name="create-service-connect-cluster"></a>

Gunakan langkah-langkah berikut untuk membuat cluster dan namespace Amazon ECS Anda.

**Untuk membuat cluster dan namespace Amazon ECS AWS Cloud Map**

1. Buat klaster Amazon ECS bernama `tutorial` untuk digunakan. Parameter `--service-connect-defaults` menetapkan namespace default cluster. Dalam contoh output, AWS Cloud Map namespace nama `service-connect` tidak ada di akun ini dan Wilayah AWS, sehingga namespace dibuat oleh Amazon ECS. Namespace dibuat AWS Cloud Map di akun, dan terlihat dengan semua ruang nama lainnya, jadi gunakan nama yang menunjukkan tujuannya.

   ```
   aws ecs create-cluster --cluster-name tutorial --service-connect-defaults namespace=service-connect
   ```

   Output:

   ```
   {
       "cluster": {
           "clusterArn": "arn:aws:ecs:us-west-2:123456789012:cluster/tutorial",
           "clusterName": "tutorial",
           "serviceConnectDefaults": {
               "namespace": "arn:aws:servicediscovery:us-west-2:123456789012:namespace/ns-EXAMPLE"
           },
           "status": "PROVISIONING",
           "registeredContainerInstancesCount": 0,
           "runningTasksCount": 0,
           "pendingTasksCount": 0,
           "activeServicesCount": 0,
           "statistics": [],
           "tags": [],
           "settings": [
               {
                   "name": "containerInsights",
                   "value": "disabled"
               }
           ],
           "capacityProviders": [],
           "defaultCapacityProviderStrategy": [],
           "attachments": [
               {
                   "id": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111",
                   "type": "sc",
                   "status": "ATTACHING",
                   "details": []
               }
           ],
           "attachmentsStatus": "UPDATE_IN_PROGRESS"
       }
   }
   }
   ```

1. Verifikasi bahwa cluster dibuat:

   ```
   aws ecs describe-clusters --clusters tutorial
   ```

   Output:

   ```
   {
       "clusters": [
           {
               "clusterArn": "arn:aws:ecs:us-west-2:123456789012:cluster/tutorial",
               "clusterName": "tutorial",
               "serviceConnectDefaults": {
                   "namespace": "arn:aws:servicediscovery:us-west-2:123456789012:namespace/ns-EXAMPLE"
               },
               "status": "ACTIVE",
               "registeredContainerInstancesCount": 0,
               "runningTasksCount": 0,
               "pendingTasksCount": 0,
               "activeServicesCount": 0,
               "statistics": [],
               "tags": [],
               "settings": [],
               "capacityProviders": [],
               "defaultCapacityProviderStrategy": []
           }
       ],
       "failures": []
   }
   ```

1. (Opsional) Verifikasi bahwa namespace dibuat di. AWS Cloud Map Anda dapat menggunakan Konsol Manajemen AWS atau AWS CLI konfigurasi normal saat ini dibuat AWS Cloud Map.

   Misalnya, gunakan AWS CLI:

   ```
   aws servicediscovery get-namespace --id ns-EXAMPLE
   ```

   Output:

   ```
   {
       "Namespace": {
           "Id": "ns-EXAMPLE",
           "Arn": "arn:aws:servicediscovery:us-west-2:123456789012:namespace/ns-EXAMPLE",
           "Name": "service-connect",
           "Type": "HTTP",
           "Properties": {
               "DnsProperties": {
                   "SOA": {}
               },
               "HttpProperties": {
                   "HttpName": "service-connect"
               }
           },
           "CreateDate": 1661749852.422,
           "CreatorRequestId": "service-connect"
       }
   }
   ```

## Langkah 2: Buat layanan untuk server
<a name="create-service-connect-nginx-server"></a>

Fitur Service Connect ditujukan untuk menghubungkan beberapa aplikasi di Amazon ECS. Setidaknya salah satu dari aplikasi tersebut perlu menyediakan layanan web untuk terhubung. Pada langkah ini, Anda membuat:
+ Definisi tugas yang menggunakan image kontainer NGINX resmi yang tidak dimodifikasi dan menyertakan konfigurasi Service Connect.
+ Definisi layanan Amazon ECS yang mengonfigurasi Service Connect untuk menyediakan penemuan layanan dan proxy mesh layanan untuk lalu lintas ke layanan ini. Konfigurasi menggunakan kembali namespace default dari konfigurasi cluster untuk mengurangi jumlah konfigurasi layanan yang Anda buat untuk setiap layanan.
+ Layanan Amazon ECS. Ini menjalankan satu tugas menggunakan definisi tugas, dan menyisipkan wadah tambahan untuk proxy Service Connect. Proxy mendengarkan port dari pemetaan port kontainer dari definisi tugas. Dalam aplikasi klien yang berjalan di Amazon ECS, proxy dalam tugas klien mendengarkan koneksi keluar ke nama port definisi tugas, nama penemuan layanan atau nama alias klien layanan, dan nomor port dari alias klien.

**Untuk membuat layanan web dengan Service Connect**

1. Daftarkan definisi tugas yang kompatibel dengan Fargate dan gunakan mode `awsvpc` jaringan. Ikuti langkah-langkah ini:

   1. Buat file yang diberi nama `service-connect-nginx.json` dengan isi definisi tugas berikut.

      Definisi tugas ini mengonfigurasi Service Connect dengan menambahkan `name` dan `appProtocol` parameter ke pemetaan port. Nama port membuat port ini lebih dapat diidentifikasi dalam konfigurasi layanan ketika beberapa port digunakan. Nama port juga digunakan secara default sebagai nama yang dapat ditemukan untuk digunakan oleh aplikasi lain di namespace.

      Definisi tugas berisi peran IAM tugas karena layanan mengaktifkan ECS Exec.
**penting**  
Definisi tugas ini menggunakan a `logConfiguration` untuk mengirim output nginx dari `stdout` dan `stderr` ke Amazon Logs. CloudWatch Peran eksekusi tugas ini tidak memiliki izin tambahan yang diperlukan untuk membuat grup CloudWatch log Log. Buat grup log di CloudWatch Log menggunakan Konsol Manajemen AWS or AWS CLI. Jika Anda tidak ingin mengirim log nginx ke Log, Anda CloudWatch dapat menghapus file. `logConfiguration`  
Ganti Akun AWS id dalam peran eksekusi tugas dengan Akun AWS id Anda.

      ```
      {
          "family": "service-connect-nginx",
          "executionRoleArn": "arn:aws:iam::123456789012:role/ecsTaskExecutionRole",
          "taskRoleArn": "arn:aws:iam::123456789012:role/ecsTaskRole",
          "networkMode": "awsvpc",
          "containerDefinitions": [
              {
              "name": "webserver",
              "image": "public.ecr.aws/docker/library/nginx:latest",
              "cpu": 100,
              "portMappings": [
                  {
                      "name": "nginx",
                      "containerPort": 80,
                      "protocol": "tcp", 
                      "appProtocol": "http"
                  }
              ],
              "essential": true,
              "logConfiguration": {
                  "logDriver": "awslogs",
                  "options": {
                      "awslogs-group": "/ecs/service-connect-nginx",
                      "awslogs-region": "region", 
                      "awslogs-stream-prefix": "nginx"
                  }
              }
              }
          ],
          "cpu": "256",
          "memory": "512"
      }
      ```

   1. Daftarkan definisi tugas menggunakan `service-connect-nginx.json` file:

      ```
      aws ecs register-task-definition --cli-input-json file://service-connect-nginx.json
      ```

1. Buat layanan:

   1. Buat file yang diberi nama `service-connect-nginx-service.json` dengan konten layanan Amazon ECS yang Anda buat. Contoh ini menggunakan definisi tugas yang dibuat pada langkah sebelumnya. `awsvpcConfiguration` diperlukan karena ketentuan tugas contoh menggunakan mode jaringan `awsvpc`.

      Saat Anda membuat layanan ECS, tentukan Fargate, dan versi platform `LATEST` yang mendukung Service Connect. Itu `securityGroups` dan `subnets` harus milik VPC yang memiliki persyaratan untuk menggunakan Amazon ECS. Anda dapat memperoleh grup keamanan dan subnet IDs dari Konsol VPC Amazon. 

      Layanan ini mengkonfigurasi Service Connect dengan menambahkan `serviceConnectConfiguration` parameter. Namespace tidak diperlukan karena cluster memiliki namespace default yang dikonfigurasi. Aplikasi klien yang berjalan di ECS di namespace terhubung ke layanan ini dengan menggunakan `portName` dan port di. `clientAliases` Misalnya, layanan ini dapat dijangkau menggunakan`http://nginx:80/`, karena nginx menyediakan halaman selamat datang di lokasi root. `/` Aplikasi eksternal yang tidak berjalan di Amazon ECS atau tidak berada di namespace yang sama dapat mencapai aplikasi ini melalui proxy Service Connect dengan menggunakan alamat IP tugas dan nomor port dari definisi tugas. Untuk `tls` konfigurasi Anda, tambahkan sertifikat `arn` untuk peran IAM Anda `awsPcaAuthorityArn``kmsKey`, Anda, dan `roleArn` Anda.

      Layanan ini menggunakan a `logConfiguration` untuk mengirim layanan menghubungkan output proxy dari `stdout` dan `stderr` ke Amazon CloudWatch Logs. Peran eksekusi tugas ini tidak memiliki izin tambahan yang diperlukan untuk membuat grup CloudWatch log Log. Buat grup log di CloudWatch Log menggunakan Konsol Manajemen AWS or AWS CLI. Kami menyarankan Anda membuat grup log ini dan menyimpan log proxy di CloudWatch Log. Jika Anda tidak ingin mengirim log proxy ke CloudWatch Log, Anda dapat menghapus`logConfiguration`.

      ```
      {
          "cluster": "tutorial",
          "deploymentConfiguration": {
              "maximumPercent": 200,
              "minimumHealthyPercent": 0
          },
          "deploymentController": {
              "type": "ECS"
          },
          "desiredCount": 1,
          "enableECSManagedTags": true,
          "enableExecuteCommand": true,
          "launchType": "FARGATE",
          "networkConfiguration": {
              "awsvpcConfiguration": {
                  "assignPublicIp": "ENABLED",
                  "securityGroups": [
                      "sg-EXAMPLE"
                  ],
                  "subnets": [
                      "subnet-EXAMPLE",
                      "subnet-EXAMPLE",
                      "subnet-EXAMPLE"
                  ]
                 }
          },
          "platformVersion": "LATEST",
          "propagateTags": "SERVICE",
          "serviceName": "service-connect-nginx-service",
          "serviceConnectConfiguration": {
              "enabled": true,
              "services": [
                  {
                      "portName": "nginx",
                      "clientAliases": [
                          {
                              "port": 80
                          }
                      ],
                      "tls": {
                         "issuerCertificateAuthority": {
                            "awsPcaAuthorityArn": "certificateArn"
                         }, 
                         "kmsKey": "kmsKey", 
                         "roleArn": "iamRoleArn"
                      }
                  }
              ],
              "logConfiguration": {
                  "logDriver": "awslogs",
                  "options": {
                      "awslogs-group": "/ecs/service-connect-proxy",
                      "awslogs-region": "region",
                      "awslogs-stream-prefix": "service-connect-proxy"
                  }
              }
          },
          "taskDefinition": "service-connect-nginx"
      }
      ```

   1. Buat layanan menggunakan `service-connect-nginx-service.json` file:

      ```
      aws ecs create-service --cluster tutorial --cli-input-json file://service-connect-nginx-service.json
      ```

      Output:

      ```
      {
          "service": {
              "serviceArn": "arn:aws:ecs:us-west-2:123456789012:service/tutorial/service-connect-nginx-service",
              "serviceName": "service-connect-nginx-service",
              "clusterArn": "arn:aws:ecs:us-west-2:123456789012:cluster/tutorial",
              "loadBalancers": [],
              "serviceRegistries": [],
              "status": "ACTIVE",
              "desiredCount": 1,
              "runningCount": 0,
              "pendingCount": 0,
              "launchType": "FARGATE",
              "platformVersion": "LATEST",
              "platformFamily": "Linux",
              "taskDefinition": "arn:aws:ecs:us-west-2:123456789012:task-definition/service-connect-nginx:1",
              "deploymentConfiguration": {
                  "deploymentCircuitBreaker": {
                      "enable": false,
                      "rollback": false
                  },
                  "maximumPercent": 200,
                  "minimumHealthyPercent": 0
              },
              "deployments": [
                  {
                      "id": "ecs-svc/3763308422771520962",
                      "status": "PRIMARY",
                      "taskDefinition": "arn:aws:ecs:us-west-2:123456789012:task-definition/service-connect-nginx:1",
                      "desiredCount": 1,
                      "pendingCount": 0,
                      "runningCount": 0,
                      "failedTasks": 0,
                      "createdAt": 1661210032.602,
                      "updatedAt": 1661210032.602,
                      "launchType": "FARGATE",
                      "platformVersion": "1.4.0",
                      "platformFamily": "Linux",
                      "networkConfiguration": {
                          "awsvpcConfiguration": {
                              "assignPublicIp": "ENABLED",
                              "securityGroups": [
                                  "sg-EXAMPLE"
                              ],
                              "subnets": [
                                  "subnet-EXAMPLEf",
                                  "subnet-EXAMPLE",
                                  "subnet-EXAMPLE"
                              ]
                          }
                      },
                      "rolloutState": "IN_PROGRESS",
                      "rolloutStateReason": "ECS deployment ecs-svc/3763308422771520962 in progress.",
                      "failedLaunchTaskCount": 0,
                      "replacedTaskCount": 0,
                      "serviceConnectConfiguration": {
                          "enabled": true,
                          "namespace": "service-connect",
                          "services": [
                              {
                                  "portName": "nginx",
                                  "clientAliases": [
                                      {
                                          "port": 80
                                      }
                                  ]
                              }
                          ],
                          "logConfiguration": {
                              "logDriver": "awslogs",
                              "options": {
                                  "awslogs-group": "/ecs/service-connect-proxy",
                                  "awslogs-region": "us-west-2",
                                  "awslogs-stream-prefix": "service-connect-proxy"
                              },
                              "secretOptions": []
                          }
                      },
                      "serviceConnectResources": [
                          {
                              "discoveryName": "nginx",
                              "discoveryArn": "arn:aws:servicediscovery:us-west-2:123456789012:service/srv-EXAMPLE"
                          }
                      ]
                  }
              ],
              "roleArn": "arn:aws:iam::123456789012:role/aws-service-role/ecs.amazonaws.com/AWSServiceRoleForECS",
              "version": 0,
              "events": [],
              "createdAt": 1661210032.602,
              "placementConstraints": [],
              "placementStrategy": [],
              "networkConfiguration": {
                  "awsvpcConfiguration": {
                      "assignPublicIp": "ENABLED",
                      "securityGroups": [
                          "sg-EXAMPLE"
                      ],
                      "subnets": [
                          "subnet-EXAMPLE",
                          "subnet-EXAMPLE",
                          "subnet-EXAMPLE"
                      ]
                  }
              },
              "schedulingStrategy": "REPLICA",
              "enableECSManagedTags": true,
              "propagateTags": "SERVICE",
              "enableExecuteCommand": true
          }
      }
      ```

      `serviceConnectConfiguration`Yang Anda berikan muncul di dalam *penyebaran* pertama output. Saat Anda membuat perubahan pada layanan ECS dengan cara yang perlu membuat perubahan pada tugas, penerapan baru dibuat oleh Amazon ECS.

## Langkah 3: Verifikasi bahwa Anda dapat terhubung
<a name="create-service-connect-verify"></a>

Untuk memverifikasi bahwa Service Connect dikonfigurasi dan berfungsi, ikuti langkah-langkah berikut untuk menyambung ke layanan web dari aplikasi eksternal. Kemudian, lihat metrik tambahan dalam CloudWatch proxy Service Connect yang dibuat.

**Untuk terhubung ke layanan web dari aplikasi eksternal**
+ Connect ke alamat IP tugas dan port kontainer menggunakan alamat IP tugas

  Gunakan AWS CLI untuk mendapatkan ID tugas, menggunakan file`aws ecs list-tasks --cluster tutorial`.

  Jika subnet dan grup keamanan Anda mengizinkan lalu lintas dari internet publik di port dari definisi tugas, Anda dapat terhubung ke IP publik dari komputer Anda. IP publik tidak tersedia dari `describe-tasks`, jadi langkah-langkahnya melibatkan pergi ke Amazon EC2 Konsol Manajemen AWS atau AWS CLI untuk mendapatkan detail dari elastic network interface.

  Dalam contoh ini, instans Amazon EC2 di VPC yang sama menggunakan IP pribadi tugas tersebut. Aplikasi ini nginx, tetapi `server: envoy` header menunjukkan bahwa proxy Service Connect digunakan. Proxy Service Connect mendengarkan pada port kontainer dari definisi tugas.

  ```
  $ curl -v 10.0.19.50:80/
  *   Trying 10.0.19.50:80...
  * Connected to 10.0.19.50 (10.0.19.50) port 80 (#0)
  > GET / HTTP/1.1
  > Host: 10.0.19.50
  > User-Agent: curl/7.79.1
  > Accept: */*
  >
  * Mark bundle as not supporting multiuse
  < HTTP/1.1 200 OK
  < server: envoy
  < date: Tue, 23 Aug 2022 03:53:06 GMT
  < content-type: text/html
  < content-length: 612
  < last-modified: Tue, 16 Apr 2019 13:08:19 GMT
  < etag: "5cb5d3c3-264"
  < accept-ranges: bytes
  < x-envoy-upstream-service-time: 0
  <
  <!DOCTYPE html>
  <html>
  <head>
  <title>Welcome to nginx!</title>
  <style>
      body {
          width: 35em;
          margin: 0 auto;
          font-family: Tahoma, Verdana, Arial, sans-serif;
      }
  </style>
  </head>
  <body>
  <h1>Welcome to nginx!</h1>
  <p>If you see this page, the nginx web server is successfully installed and
  working. Further configuration is required.</p>
  
  <p>For online documentation and support please refer to
  <a href="http://nginx.org/">nginx.org</a>.<br/>
  Commercial support is available at
  <a href="http://nginx.com/">nginx.com</a>.</p>
  
  <p><em>Thank you for using nginx.</em></p>
  </body>
  </html>
  ```

**Untuk melihat metrik Service Connect**  
Proxy Service Connect membuat metrik aplikasi (HTTP, HTTP2, gRPC, atau koneksi TCP) dalam metrik. CloudWatch Saat Anda menggunakan CloudWatch konsol, lihat dimensi metrik tambahan **DiscoveryName**, (DiscoveryName,, ClusterName) ** ServiceName,** dan (**TargetDiscoveryName**, **TargetDiscoveryName ServiceName, ClusterName**) di bawah namespace Amazon ECS. Untuk informasi selengkapnya tentang metrik dan dimensi ini, lihat [Melihat Metrik yang Tersedia](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/viewing_metrics_with_cloudwatch.html) di Panduan Pengguna CloudWatch Log Amazon.

# Gunakan penemuan layanan untuk menghubungkan layanan Amazon ECS dengan nama DNS
<a name="service-discovery"></a>

Layanan Amazon ECS Anda secara opsional dapat dikonfigurasi untuk menggunakan penemuan layanan Amazon ECS. Penemuan layanan menggunakan tindakan AWS Cloud Map API untuk mengelola ruang nama HTTP dan DNS untuk layanan Amazon ECS Anda. Untuk informasi selengkapnya, lihat [Apa yang AWS Cloud Map](https://docs.aws.amazon.com/cloud-map/latest/dg/Welcome.html) Ada di *Panduan AWS Cloud Map Pengembang*.

Penemuan layanan tersedia di AWS Wilayah berikut:


| Nama Wilayah | Region | 
| --- | --- | 
|  AS Timur (Virginia Utara)  |  us-east-1  | 
|  US East (Ohio)  |  us-east-2  | 
|  AS Barat (California Utara)  |  us-west-1  | 
|  US West (Oregon)  |  as-barat-2  | 
|  Afrika (Cape Town)  |  af-selatan-1  | 
|  Asia Pasifik (Hong Kong)  |  ap-east-1  | 
|  Asia Pasifik (Taipei)  |  ap-timur-2  | 
|  Asia Pasifik (Mumbai)  |  ap-south-1  | 
|  Asia Pasifik (Hyderabad)  |  ap-south-2  | 
|  Asia Pasifik (Tokyo)  |  ap-northeast-1  | 
|  Asia Pasifik (Seoul)  |  ap-northeast-2  | 
|  Asia Pacific (Osaka)  |  ap-northeast-3  | 
|  Asia Pasifik (Singapura)  |  ap-southeast-1  | 
|  Asia Pacific (Sydney)  |  ap-southeast-2  | 
|  Asia Pasifik (Jakarta)  |  ap-southeast-3  | 
|  Asia Pacific (Melbourne)  |  ap-southeast-4  | 
|  Asia Pasifik (Malaysia)  |  ap-southeast-5  | 
|  Asia Pasifik (Selandia Baru)  |  ap-tenggara 6  | 
|  Asia Pasifik (Thailand)  |  ap-tenggara 7  | 
|  Kanada (Pusat)  |  ca-central-1  | 
|  Kanada Barat (Calgary)  |  ca-west-1  | 
|  Tiongkok (Beijing)  |  cn-north-1  | 
|  China (Ningxia)  |  cn-northwest-1  | 
|  Europe (Frankfurt)  |  eu-central-1  | 
|  Europe (Zurich)  |  eu-central-2  | 
|  Eropa (Irlandia)  |  eu-west-1  | 
|  Europe (London)  |  eu-west-2  | 
|  Europe (Paris)  |  eu-west-3  | 
|  Europe (Milan)  |  eu-south-1  | 
|  Eropa (Stockholm)  |  eu-north-1  | 
|  Israel (Tel Aviv)  |  il-central-1  | 
|  Eropa (Spanyol)  |  eu-south-2  | 
|  Timur Tengah (UAE)  |  me-central-1  | 
|  Meksiko (Tengah)  |  mx-pusat-1  | 
|  Timur Tengah (Bahrain)  |  me-selatan-1  | 
|  Amerika Selatan (São Paulo)  |  sa-east-1  | 
|  AWS GovCloud (AS-Timur)  |  us-gov-east-1  | 
|  AWS GovCloud (AS-Barat)  |  us-gov-west-1  | 

## Konsep Penemuan Layanan
<a name="service-discovery-concepts"></a>

Penemuan layanan terdiri dari komponen-komponen berikut:
+ **Ruang nama penemuan layanan**: Grup logis layanan penemuan layanan yang berbagi nama domain yang sama, seperti`example.com`, tempat Anda ingin merutekan lalu lintas. Anda dapat membuat namespace dengan panggilan ke `aws servicediscovery create-private-dns-namespace` perintah atau di konsol Amazon ECS. Anda dapat menggunakan `aws servicediscovery list-namespaces` perintah untuk melihat informasi ringkasan tentang ruang nama yang dibuat oleh akun saat ini. Untuk informasi selengkapnya tentang perintah penemuan layanan, lihat `[create-private-dns-namespace](https://docs.aws.amazon.com/cli/latest/reference/servicediscovery/create-private-dns-namespace.html)` dan `[list-namespaces](https://docs.aws.amazon.com/cli/latest/reference/servicediscovery/list-namespaces.html)` di *Panduan AWS CLI Referensi AWS Cloud Map (penemuan layanan)*.
+ **Layanan penemuan layanan**: Ada dalam namespace penemuan layanan dan terdiri dari nama layanan dan konfigurasi DNS untuk namespace. Layanan tersebut menyediakan komponen inti berikut:
  + **Registri layanan**: Memungkinkan Anda mencari layanan melalui tindakan DNS atau AWS Cloud Map API dan mendapatkan kembali satu atau lebih titik akhir yang tersedia yang dapat digunakan untuk terhubung ke layanan.
+ **Contoh penemuan layanan**: Ada dalam layanan penemuan layanan dan terdiri dari atribut yang terkait dengan setiap layanan Amazon ECS di direktori layanan.
  + **Atribut instans**: Metadata berikut ditambahkan sebagai atribut khusus untuk setiap layanan Amazon ECS yang dikonfigurasi untuk menggunakan penemuan layanan:
    + **`AWS_INSTANCE_IPV4`**— Sebagai `A` catatan, IPv4 alamat yang dikembalikan Route 53 sebagai respons terhadap kueri DNS dan ditampilkan AWS Cloud Map saat menemukan detail instance, misalnya,. `192.0.2.44`
    + **`AWS_INSTANCE_IPV6`**— Sebagai `AAAA` catatan, IPv6 alamat yang dikembalikan Route 53 sebagai respons terhadap kueri DNS dan ditampilkan AWS Cloud Map saat menemukan detail instance, misalnya,. ` 2001:0db8:85a3:0000:0000:abcd:0001:2345` Keduanya `AWS_INSTANCE_IPv4` dan `AWS_INSTANCE_IPv6` ditambahkan untuk layanan dualstack Amazon ECS. Hanya `AWS_INSTANCE_IPv6` ditambahkan untuk layanan khusus Amazon IPv6 ECS.
    + **`AWS_INSTANCE_PORT`**— Nilai port yang terkait dengan layanan penemuan layanan.
    + **`AVAILABILITY_ZONE`**— Zona Ketersediaan tempat tugas diluncurkan. Untuk tugas yang menggunakan EC2, ini adalah Availability Zone di mana instance container ada. Untuk tugas yang menggunakan Fargate, ini adalah Availability Zone di mana elastic network interface ada.
    + **`REGION`**— Wilayah di mana tugas itu ada.
    + **`ECS_SERVICE_NAME`**— Nama layanan Amazon ECS tempat tugas tersebut berada.
    + **`ECS_CLUSTER_NAME`**— Nama cluster Amazon ECS tempat tugas tersebut berada.
    + **`EC2_INSTANCE_ID`**— ID dari instance kontainer tempat tugas ditempatkan. Atribut kustom ini tidak ditambahkan jika tugas menggunakan Fargate.
    + **`ECS_TASK_DEFINITION_FAMILY`**— Keluarga definisi tugas yang digunakan tugas.
    + **`ECS_TASK_SET_EXTERNAL_ID`**— Jika set tugas dibuat untuk penyebaran eksternal dan dikaitkan dengan registri penemuan layanan, maka `ECS_TASK_SET_EXTERNAL_ID` atribut akan berisi ID eksternal dari set tugas.
+ **Pemeriksaan kesehatan Amazon ECS: Amazon ECS melakukan pemeriksaan kesehatan** tingkat kontainer berkala. Jika titik akhir tidak lulus pemeriksaan kondisi, maka titik akhir akan dihapus dari perutean DNS dan ditandai dengan kondisi tidak baik.

## Pertimbangan penemuan layanan
<a name="service-discovery-considerations"></a>

Berikut ini harus dipertimbangkan saat menggunakan penemuan layanan:
+ Penemuan layanan didukung untuk tugas di Fargate yang menggunakan platform versi 1.1.0 atau yang lebih baru. Untuk informasi selengkapnya, lihat [Versi platform Fargate untuk Amazon ECS](platform-fargate.md).
+ Layanan yang dikonfigurasi untuk menggunakan penemuan layanan memiliki batas 1.000 tugas per layanan. Hal ini dikarenakan kuota layanan Route 53.
+ Alur kerja Create Service di konsol Amazon ECS hanya mendukung pendaftaran layanan ke ruang nama DNS pribadi. Ketika namespace DNS AWS Cloud Map pribadi dibuat, zona host pribadi Route 53 akan dibuat secara otomatis.
+ Atribut DNS VPC harus dikonfigurasi agar resolusi DNS berhasil. Untuk informasi tentang cara mengonfigurasi atribut, lihat [Dukungan DNS di VPC Anda di](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-dns.html#vpc-dns-support) Panduan Pengguna *Amazon VPC*.
+ Amazon ECS tidak mendukung pendaftaran layanan ke ruang AWS Cloud Map nama bersama.
+ Catatan DNS yang dibuat untuk layanan penemuan layanan selalu mendaftar dengan alamat IP pribadi untuk tugas tersebut, bukan alamat IP publik, bahkan ketika ruang nama publik digunakan.
+ Penemuan layanan mengharuskan tugas menentukan mode `awsvpc``bridge`,, atau `host` jaringan (`none`tidak didukung).
+ Jika definisi tugas layanan menggunakan mode `awsvpc` jaringan, Anda dapat membuat kombinasi `A` atau `SRV` catatan apa pun untuk setiap tugas layanan. Jika Anda menggunakan `SRV` catatan, port diperlukan. Anda juga dapat membuat `AAAA` catatan jika layanan menggunakan subnet dualstack. Jika layanan menggunakan subnet IPv6 -only, Anda tidak dapat membuat `A` catatan.
+ Jika definisi tugas layanan menggunakan mode `host` jaringan `bridge` atau, catatan SRV adalah satu-satunya jenis catatan DNS yang didukung. Buat catatan SRV untuk setiap tugas layanan. Catatan SRV harus menentukan kombinasi nama kontainer dan port kontainer dari penentuan tugas.
+ Catatan DNS untuk layanan penemuan layanan dapat ditanyakan dalam VPC Anda. Mereka menggunakan format berikut: `<service-discovery-service-name>.<service-discovery-namespace>`.
+ Saat melakukan kueri DNS pada nama layanan, `A` dan `AAAA` catatan mengembalikan satu set alamat IP yang sesuai dengan tugas Anda. `SRV`catatan mengembalikan satu set alamat IP dan port untuk setiap tugas.
+ Jika Anda memiliki delapan atau kurang catatan sehat, Route 53 merespons semua kueri DNS dengan semua catatan sehat.
+ Saat semua catatan tidak sehat, Route 53 akan merespons kueri DNS dengan hingga delapan catatan yang tidak sehat.
+ Anda dapat mengonfigurasi penemuan layanan untuk layanan yang berada di belakang penyeimbang beban, tetapi lalu lintas penemuan layanan selalu diarahkan ke tugas dan bukan penyeimbang beban.
+ Penemuan layanan tidak mendukung penggunaan Classic Load Balancer.
+ Kami menyarankan Anda menggunakan pemeriksaan kesehatan tingkat kontainer yang dikelola oleh Amazon ECS untuk layanan penemuan layanan Anda.
  + **HealthCheckCustomConfig**Amazon ECS mengelola pemeriksaan kesehatan atas nama Anda. Amazon ECS menggunakan informasi dari wadah dan pemeriksaan kesehatan, dan status tugas Anda, untuk memperbarui kesehatan. AWS Cloud Map Ini ditentukan menggunakan `--health-check-custom-config` parameter saat membuat layanan penemuan layanan Anda. Untuk informasi selengkapnya, lihat [HealthCheckCustomConfig](https://docs.aws.amazon.com/cloud-map/latest/api/API_HealthCheckCustomConfig.html) di dalam *Referensi API AWS Cloud Map *. 
+ Sumber AWS Cloud Map daya yang dibuat saat penemuan layanan digunakan harus dibersihkan secara manual.
+ Tugas dan instance didaftarkan `UNHEALTHY` sampai pemeriksaan kesehatan kontainer mengembalikan nilai. Jika pemeriksaan kesehatan lulus, status diperbarui ke`HEALTHY`. Jika pemeriksaan kesehatan kontainer gagal, instance penemuan layanan dideregistrasi.

## Harga penemuan layanan
<a name="service-discovery-pricing"></a>

Pelanggan yang menggunakan penemuan layanan Amazon ECS dikenakan biaya untuk sumber daya Route 53 dan operasi API AWS Cloud Map penemuan. Ini melibatkan biaya untuk membuat zona yang dihosting Route 53 dan kueri ke registri layanan. Untuk informasi selengkapnya, lihat [AWS Cloud Map Harga](https://docs.aws.amazon.com/cloud-map/latest/dg/cloud-map-pricing.html) di *Panduan AWS Cloud Map Pengembang*.

Amazon ECS melakukan pemeriksaan kesehatan tingkat kontainer dan memaparkannya ke operasi API pemeriksaan kesehatan AWS Cloud Map khusus. Layanan tersebut saat ini tersedia untuk pelanggan tanpa biaya tambahan. Jika Anda mengonfigurasi pemeriksaan kesehatan jaringan tambahan untuk tugas yang terpapar publik, Anda dikenakan biaya untuk pemeriksaan kesehatan tersebut.

# Membuat layanan Amazon ECS yang menggunakan Service Discovery
<a name="create-service-discovery"></a>

Pelajari cara membuat layanan yang berisi tugas Fargate yang menggunakan penemuan layanan dengan. AWS CLI

Untuk daftar penemuan layanan dukungan Wilayah AWS tersebut, lihat[Gunakan penemuan layanan untuk menghubungkan layanan Amazon ECS dengan nama DNS](service-discovery.md).

Untuk informasi tentang Daerah yang mendukung Fargate, lihat. [Wilayah yang Didukung untuk Amazon ECS di Fargate AWS](AWS_Fargate-Regions.md)

**catatan**  
Anda dapat menggunakan titik akhir layanan dual-stack untuk berinteraksi dengan Amazon ECS dari AWS CLI, SDKs dan Amazon ECS API melalui keduanya dan. IPv4 IPv6 Untuk informasi selengkapnya, lihat [Menggunakan titik akhir tumpukan ganda Amazon ECS](dual-stack-endpoint.md).

## Prasyarat
<a name="create-service-discovery-prereqs"></a>

Sebelum Anda memulai tutorial ini, pastikan bahwa prasyarat berikut terpenuhi:
+ Versi terbaru diinstal dan dikonfigurasi. AWS CLI Untuk informasi selengkapnya, lihat [Menginstal atau memperbarui ke versi terbaru AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html).
+ Langkah-langkah yang dijelaskan di dalamnya [Siapkan untuk menggunakan Amazon ECS](get-set-up-for-amazon-ecs.md) sudah lengkap.
+ Pengguna IAM Anda memiliki izin yang diperlukan yang ditentukan dalam contoh kebijakan [Amazonecs\$1 FullAccess](security-iam-awsmanpol.md#security-iam-awsmanpol-AmazonECS_FullAccess) IAM.
+ Anda telah membuat setidaknya satu VPC dan satu grup keamanan. Untuk informasi selengkapnya, lihat [Buat virtual private cloud](get-set-up-for-amazon-ecs.md#create-a-vpc).

## Langkah 1: Buat sumber daya Penemuan Layanan di AWS Cloud Map
<a name="create-service-discovery-namespace"></a>

Ikuti langkah-langkah berikut untuk membuat namespace penemuan layanan dan layanan penemuan layanan Anda:

1. Buat namespace penemuan layanan Cloud Map pribadi. Contoh ini menciptakan namespace yang disebut. `tutorial` Ganti *vpc-abcd1234* dengan ID salah satu yang sudah ada VPCs. 

   ```
   aws servicediscovery create-private-dns-namespace \
         --name tutorial \
         --vpc vpc-abcd1234
   ```

   Output dari perintah ini adalah sebagai berikut.

   ```
   {
       "OperationId": "h2qe3s6dxftvvt7riu6lfy2f6c3jlhf4-je6chs2e"
   }
   ```

1. Menggunakan `OperationId` dari output dari langkah sebelumnya, verifikasi bahwa namespace pribadi berhasil dibuat. Catat ID namespace karena Anda menggunakannya dalam perintah berikutnya.

   ```
   aws servicediscovery get-operation \
         --operation-id h2qe3s6dxftvvt7riu6lfy2f6c3jlhf4-je6chs2e
   ```

   Outputnya adalah sebagai berikut.

   ```
   {
       "Operation": {
           "Id": "h2qe3s6dxftvvt7riu6lfy2f6c3jlhf4-je6chs2e",
           "Type": "CREATE_NAMESPACE",
           "Status": "SUCCESS",
           "CreateDate": 1519777852.502,
           "UpdateDate": 1519777856.086,
           "Targets": {
              "NAMESPACE": "ns-uejictsjen2i4eeg"
           }
       }
   }
   ```

1. Menggunakan `NAMESPACE` ID dari output dari langkah sebelumnya, buat layanan penemuan layanan. Contoh ini menciptakan layanan bernama`myapplication`. Catat ID layanan dan ARN karena Anda menggunakannya dalam perintah berikutnya.

   ```
   aws servicediscovery create-service \
         --name myapplication \
         --dns-config "NamespaceId="ns-uejictsjen2i4eeg",DnsRecords=[{Type="A",TTL="300"}]" \
         --health-check-custom-config FailureThreshold=1
   ```

   Outputnya adalah sebagai berikut.

   ```
   {
       "Service": {
          "Id": "srv-utcrh6wavdkggqtk",
           "Arn": "arn:aws:servicediscovery:region:aws_account_id:service/srv-utcrh6wavdkggqtk",
           "Name": "myapplication",
           "DnsConfig": {
               "NamespaceId": "ns-uejictsjen2i4eeg",
               "DnsRecords": [
                   {
                       "Type": "A",
                       "TTL": 300
                   }
               ]
           },
           "HealthCheckCustomConfig": {
               "FailureThreshold": 1
           },
           "CreatorRequestId": "e49a8797-b735-481b-a657-b74d1d6734eb"
       }
   }
   ```

## Langkah 2: Buat sumber daya Amazon ECS
<a name="create-service-discovery-cluster"></a>

Ikuti langkah-langkah berikut untuk membuat klaster Amazon ECS, definisi tugas, dan layanan:

1. Buat cluster Amazon ECS. Contoh ini menciptakan sebuah cluster yang diberi nama`tutorial`. 

   ```
   aws ecs create-cluster \
         --cluster-name tutorial
   ```

1. Daftarkan definisi tugas yang kompatibel dengan Fargate dan gunakan mode `awsvpc` jaringan. Ikuti langkah-langkah ini:

   1. Buat file yang diberi nama `fargate-task.json` dengan isi definisi tugas berikut.

      ```
      {
          "family": "tutorial-task-def",
              "networkMode": "awsvpc",
              "containerDefinitions": [
                  {
                      "name": "sample-app",
                      "image": "public.ecr.aws/docker/library/httpd:2.4",
                      "portMappings": [
                          {
                              "containerPort": 80,
                              "hostPort": 80,
                              "protocol": "tcp"
                          }
                      ],
                      "essential": true,
                      "entryPoint": [
                          "sh",
                          "-c"
                      ],
                      "command": [
                          "/bin/sh -c \"echo '<html> <head> <title>Amazon ECS Sample App</title> <style>body {margin-top: 40px; background-color: #333;} </style> </head><body> <div style=color:white;text-align:center> <h1>Amazon ECS Sample App</h1> <h2>Congratulations!</h2> <p>Your application is now running on a container in Amazon ECS.</p> </div></body></html>' >  /usr/local/apache2/htdocs/index.html && httpd-foreground\""
                      ]
                  }
              ],
              "requiresCompatibilities": [
                  "FARGATE"
              ],
              "cpu": "256",
              "memory": "512"
      }
      ```

   1. Daftarkan definisi tugas menggunakan`fargate-task.json`.

      ```
      aws ecs register-task-definition \
            --cli-input-json file://fargate-task.json
      ```

1. Buat layanan ECS dengan mengikuti langkah-langkah berikut:

   1. Buat file yang diberi nama `ecs-service-discovery.json` dengan konten layanan ECS yang Anda buat. Contoh ini menggunakan definisi tugas yang dibuat pada langkah sebelumnya. `awsvpcConfiguration` diperlukan karena ketentuan tugas contoh menggunakan mode jaringan `awsvpc`. 

      Saat Anda membuat layanan ECS, tentukan Fargate dan versi platform `LATEST` yang mendukung penemuan layanan. Ketika layanan penemuan layanan dibuat di AWS Cloud Map , `registryArn` adalah ARN dikembalikan. Itu `securityGroups` dan `subnets` harus milik VPC yang digunakan untuk membuat namespace Cloud Map. Anda dapat memperoleh grup keamanan dan subnet IDs dari Konsol VPC Amazon.

      ```
      {
          "cluster": "tutorial",
          "serviceName": "ecs-service-discovery",
          "taskDefinition": "tutorial-task-def",
          "serviceRegistries": [
             {
                "registryArn": "arn:aws:servicediscovery:region:aws_account_id:service/srv-utcrh6wavdkggqtk"
             }
          ],
          "launchType": "FARGATE",
          "platformVersion": "LATEST",
          "networkConfiguration": {
             "awsvpcConfiguration": {
                "assignPublicIp": "ENABLED",
                "securityGroups": [ "sg-abcd1234" ],
                "subnets": [ "subnet-abcd1234" ]
             }
          },
          "desiredCount": 1
      }
      ```

   1. Buat layanan ECS Anda menggunakan`ecs-service-discovery.json`.

      ```
      aws ecs create-service \
            --cli-input-json file://ecs-service-discovery.json
      ```

## Langkah 3: Verifikasi Penemuan Layanan di AWS Cloud Map
<a name="create-service-discovery-verify"></a>

Anda dapat memverifikasi bahwa semuanya dibuat dengan benar dengan menanyakan informasi penemuan layanan Anda. Setelah penemuan layanan dikonfigurasi, Anda dapat menggunakan operasi AWS Cloud Map API, atau menelepon `dig` dari instance dalam VPC Anda. Ikuti langkah-langkah ini:

1. Dengan menggunakan ID layanan penemuan layanan, cantumkan instance penemuan layanan. Catat ID instance (ditandai dengan huruf tebal) untuk pembersihan sumber daya. 

   ```
    aws servicediscovery list-instances \
          --service-id srv-utcrh6wavdkggqtk
   ```

   Outputnya adalah sebagai berikut.

   ```
   {
       "Instances": [
           {
               "Id": "16becc26-8558-4af1-9fbd-f81be062a266",
               "Attributes": {
                   "AWS_INSTANCE_IPV4": "172.31.87.2"
                   "AWS_INSTANCE_PORT": "80", 
                   "AVAILABILITY_ZONE": "us-east-1a", 
                   "REGION": "us-east-1", 
                   "ECS_SERVICE_NAME": "ecs-service-discovery", 
                   "ECS_CLUSTER_NAME": "tutorial", 
                   "ECS_TASK_DEFINITION_FAMILY": "tutorial-task-def"
               }
           }
       ]
   }
   ```

1. Gunakan namespace penemuan layanan, layanan, dan parameter tambahan seperti nama cluster ECS untuk menanyakan detail tentang instance penemuan layanan.

   ```
   aws servicediscovery discover-instances \
         --namespace-name tutorial \
         --service-name myapplication \
         --query-parameters ECS_CLUSTER_NAME=tutorial
   ```

1. Catatan DNS yang dibuat di zona host Route 53 untuk layanan penemuan layanan dapat ditanyakan dengan perintah berikut: AWS CLI 

   1. Menggunakan ID namespace, dapatkan informasi tentang namespace, yang mencakup ID zona yang dihosting Route 53.

      ```
      aws servicediscovery \
            get-namespace --id ns-uejictsjen2i4eeg
      ```

      Outputnya adalah sebagai berikut.

      ```
      {
          "Namespace": {
              "Id": "ns-uejictsjen2i4eeg",
              "Arn": "arn:aws:servicediscovery:region:aws_account_id:namespace/ns-uejictsjen2i4eeg",
              "Name": "tutorial",
              "Type": "DNS_PRIVATE",
              "Properties": {
                   "DnsProperties": {
                      "HostedZoneId": "Z35JQ4ZFDRYPLV"
                  }
              },
              "CreateDate": 1519777852.502,
              "CreatorRequestId": "9049a1d5-25e4-4115-8625-96dbda9a6093"
          }
      }
      ```

   1. Menggunakan ID zona yang dihosting Route 53 dari langkah sebelumnya (lihat teks dalam huruf tebal), dapatkan catatan sumber daya yang ditetapkan untuk zona yang dihosting. 

      ```
      aws route53 list-resource-record-sets \
            --hosted-zone-id Z35JQ4ZFDRYPLV
      ```

1. Anda juga dapat menanyakan DNS dari instance dalam `dig` VPC Anda menggunakan.

   ```
   dig +short myapplication.tutorial
   ```

## Langkah 4: Membersihkan
<a name="create-service-discovery-cleanup"></a>

Setelah selesai dengan tutorial ini, bersihkan sumber daya terkait untuk menghindari biaya untuk sumber daya yang tidak digunakan. Ikuti langkah-langkah ini:

1. Batalkan pendaftaran instance layanan penemuan layanan menggunakan ID layanan dan ID instans yang Anda catat sebelumnya.

   ```
   aws servicediscovery deregister-instance \
         --service-id srv-utcrh6wavdkggqtk \
         --instance-id 16becc26-8558-4af1-9fbd-f81be062a266
   ```

   Outputnya adalah sebagai berikut.

   ```
   {
       "OperationId": "xhu73bsertlyffhm3faqi7kumsmx274n-jh0zimzv"
   }
   ```

1. Menggunakan `OperationId` dari output dari langkah sebelumnya, verifikasi bahwa instance layanan penemuan layanan berhasil dideregistrasi.

   ```
   aws servicediscovery get-operation \ 
         --operation-id xhu73bsertlyffhm3faqi7kumsmx274n-jh0zimzv
   ```

   ```
   {
     "Operation": {
           "Id": "xhu73bsertlyffhm3faqi7kumsmx274n-jh0zimzv",
           "Type": "DEREGISTER_INSTANCE",
           "Status": "SUCCESS",
           "CreateDate": 1525984073.707,
           "UpdateDate": 1525984076.426,
           "Targets": {
               "INSTANCE": "16becc26-8558-4af1-9fbd-f81be062a266",
               "ROUTE_53_CHANGE_ID": "C5NSRG1J4I1FH",
               "SERVICE": "srv-utcrh6wavdkggqtk"
           }
       }
   }
   ```

1. Hapus layanan penemuan layanan menggunakan ID layanan.

   ```
   aws servicediscovery delete-service \ 
         --id srv-utcrh6wavdkggqtk
   ```

1. Hapus namespace penemuan layanan menggunakan ID namespace.

   ```
   aws servicediscovery delete-namespace \ 
         --id ns-uejictsjen2i4eeg
   ```

   Outputnya adalah sebagai berikut.

   ```
   {
       "OperationId": "c3ncqglftesw4ibgj5baz6ktaoh6cg4t-jh0ztysj"
   }
   ```

1. Menggunakan `OperationId` dari output dari langkah sebelumnya, verifikasi bahwa namespace penemuan layanan berhasil dihapus.

   ```
   aws servicediscovery get-operation \ 
         --operation-id c3ncqglftesw4ibgj5baz6ktaoh6cg4t-jh0ztysj
   ```

   Outputnya adalah sebagai berikut.

   ```
   {
       "Operation": {
           "Id": "c3ncqglftesw4ibgj5baz6ktaoh6cg4t-jh0ztysj",
           "Type": "DELETE_NAMESPACE",
           "Status": "SUCCESS",
           "CreateDate": 1525984602.211,
           "UpdateDate": 1525984602.558,
           "Targets": {
               "NAMESPACE": "ns-rymlehshst7hhukh",
               "ROUTE_53_CHANGE_ID": "CJP2A2M86XW3O"
           }
       }
   }
   ```

1. Perbarui hitungan yang diinginkan untuk layanan Amazon ECS ke`0`. Anda harus melakukan ini untuk menghapus layanan di langkah berikutnya.

   ```
   aws ecs update-service \
         --cluster tutorial \
         --service ecs-service-discovery \
         --desired-count 0
   ```

1. Hapus layanan Amazon ECS.

   ```
   aws ecs delete-service \
         --cluster tutorial \
         --service ecs-service-discovery
   ```

1. Hapus cluster Amazon ECS.

   ```
   aws ecs delete-cluster \
         --cluster tutorial
   ```

# Gunakan Amazon VPC Lattice untuk menghubungkan, mengamati, dan mengamankan layanan Amazon ECS Anda
<a name="ecs-vpc-lattice"></a>

Amazon VPC Lattice adalah layanan jaringan aplikasi yang dikelola sepenuhnya yang memungkinkan pelanggan Amazon ECS untuk mengamati, mengamankan, dan memantau aplikasi yang dibangun di seluruh layanan AWS komputasi, VPCs, dan akun — tanpa memerlukan perubahan kode apa pun.

VPC Lattice menggunakan kelompok target, yang merupakan kumpulan sumber daya komputasi. Target ini menjalankan aplikasi atau layanan Anda dan dapat berupa instans Amazon EC2, alamat IP, fungsi Lambda, dan Application Load Balancer. Dengan mengaitkan layanan Amazon ECS mereka dengan grup target VPC Lattice, pelanggan sekarang dapat mengaktifkan tugas Amazon ECS sebagai target IP di VPC Lattice. Amazon ECS secara otomatis mendaftarkan tugas ke grup target VPC Lattice saat tugas untuk layanan terdaftar diluncurkan.

**catatan**  
Saat menggunakan lima konfigurasi VPC Lattice, waktu penerapan Anda mungkin sedikit lebih lama daripada saat menggunakan konfigurasi yang lebih sedikit.

Aturan pendengar digunakan untuk meneruskan lalu lintas ke grup target tertentu saat kondisi terpenuhi. Pendengar memeriksa permintaan koneksi menggunakan protokol pada port yang Anda konfigurasikan. Layanan merutekan permintaan ke target terdaftar berdasarkan aturan yang Anda tentukan saat mengonfigurasi listener Anda.

Amazon ECS juga secara otomatis menggantikan tugas jika menjadi tidak sehat menurut pemeriksaan kesehatan VPC Lattice. Setelah dikaitkan dengan VPC Lattice, pelanggan Amazon ECS juga dapat memanfaatkan banyak fitur konektivitas, keamanan, dan observabilitas lintas komputasi lainnya di VPC Lattice seperti menghubungkan ke layanan di seluruh cluster,, dan akun dengan, integrasi IAM untuk otorisasi dan otentikasi VPCs, dan fitur manajemen AWS Resource Access Manager lalu lintas lanjutan.

Pelanggan Amazon ECS dapat memanfaatkan VPC Lattice dengan cara berikut.
+ Peningkatan produktivitas pengembang - VPC Lattice meningkatkan produktivitas pengembang dengan membiarkan Anda fokus pada membangun fitur, sementara VPC Lattice menangani tantangan jaringan, keamanan, dan pengamatan secara seragam di semua platform komputasi.
+ Postur keamanan yang lebih baik - VPC Lattice memungkinkan pengembang Anda untuk dengan mudah mengautentikasi dan mengamankan komunikasi di seluruh aplikasi dan platform komputasi, menegakkan enkripsi dalam perjalanan, dan menerapkan kontrol akses granular dengan kebijakan VPC Lattice Auth. Ini memungkinkan Anda untuk mengadopsi postur keamanan yang lebih kuat yang memenuhi persyaratan peraturan dan kepatuhan terkemuka di industri.
+ Peningkatan skalabilitas dan ketahanan aplikasi - VPC Lattice memungkinkan Anda membuat jaringan aplikasi yang digunakan dengan fitur seperti path, header, dan routing berbasis metode, otentikasi, otorisasi, dan pemantauan. Manfaat ini diberikan tanpa overhead sumber daya pada beban kerja dan dapat mendukung penerapan multi-cluster yang menghasilkan jutaan permintaan per detik tanpa menambahkan latensi yang signifikan.
+ Fleksibilitas penerapan dengan infrastruktur heterogen - VPC Lattice menyediakan fitur yang konsisten di semua layanan komputasi seperti Amazon ECS, Fargate, Amazon EC2, Amazon EKS, dan Lambda dan memungkinkan organisasi Anda fleksibilitas untuk memilih infrastruktur yang sesuai untuk setiap aplikasi.

## Bagaimana VPC Lattice bekerja dengan layanan Amazon ECS lainnya
<a name="ecs-lattice-compatibility"></a>

Menggunakan VPC Lattice dengan Amazon ECS dapat mengubah cara Anda menggunakan layanan Amazon ECS lainnya, sementara yang lain tetap sama.

**Application Load Balancer**  
Anda tidak perlu lagi membuat Application Load Balancer tertentu untuk digunakan dengan tipe grup target Application Load Balancer di VPC Lattice yang kemudian ditautkan ke layanan Amazon ECS. Anda hanya perlu mengonfigurasi layanan Amazon ECS Anda dengan grup target VPC Lattice sebagai gantinya. Anda juga dapat memilih untuk menggunakan Application Load Balancer dengan Amazon ECS secara bersamaan.

**Penerapan bergulir Amazon ECS**  
Hanya penerapan bergulir Amazon ECS yang berfungsi dengan VPC Lattice, dan Amazon ECS dengan aman membawa tugas ke dalam dan menghapusnya dari layanan selama penerapan. Blue/Green Penyebaran dan penerapan kode tidak didukung.

Untuk mempelajari selengkapnya tentang VPC Lattice, lihat Panduan Pengguna Amazon [VPC](https://docs.aws.amazon.com/vpc-lattice/latest/ug/what-is-vpc-lattice.html) Lattice.

# Buat layanan yang menggunakan VPC Lattice
<a name="ecs-vpc-lattice-create-service"></a>

Anda dapat menggunakan salah satu Konsol Manajemen AWS atau AWS CLI untuk membuat layanan dengan VPC Lattice.

## Prasyarat
<a name="create-ecs-vpc-lattice-prereqs"></a>

Sebelum Anda memulai tutorial ini, pastikan bahwa prasyarat berikut terpenuhi:
+ Versi terbaru diinstal dan dikonfigurasi. AWS CLI Untuk informasi selengkapnya, silakan lihat [ Menginstal AWS Command Line Interface](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv2.html).
**catatan**  
Anda dapat menggunakan titik akhir layanan dual-stack untuk berinteraksi dengan Amazon ECS dari AWS CLI, SDKs dan Amazon ECS API melalui keduanya dan. IPv4 IPv6 Untuk informasi selengkapnya, lihat [Menggunakan titik akhir tumpukan ganda Amazon ECS](dual-stack-endpoint.md).
+ Langkah-langkah yang dijelaskan di dalamnya [Siapkan untuk menggunakan Amazon ECS](get-set-up-for-amazon-ecs.md) sudah lengkap.
+ Pengguna IAM Anda memiliki izin yang diperlukan yang ditentukan dalam contoh kebijakan [Amazonecs\$1 FullAccess](security-iam-awsmanpol.md#security-iam-awsmanpol-AmazonECS_FullAccess) IAM.

## Buat layanan yang menggunakan VPC Lattice dengan Konsol Manajemen AWS
<a name="ecs-lattice-create-console"></a>

Ikuti langkah-langkah ini untuk membuat layanan dengan VPC Lattice menggunakan. Konsol Manajemen AWS

1. Buka konsol di [https://console.aws.amazon.com/ecs/v2](https://console.aws.amazon.com/ecs/v2).

1. Di halaman navigasi, pilih **Cluster**.

1. Pada halaman **Clusters**, pilih cluster untuk membuat layanan di.

1. Dari tab **Layanan**, pilih **Buat**.

   Jika Anda belum pernah membuat layanan sebelumnya, ikuti langkah-langkah yang ditemukan di [Membuat layanan Amazon ECS menggunakan konsol](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/create-service-console-v2.html), lalu lanjutkan dengan langkah-langkah ini saat Anda mencapai bagian Kisi VPC.

1. Pilih untuk **Menghidupkan Kisi VPC** dengan mencentang tombol.

1. Untuk menggunakan peran yang ada, untuk **peran infrastruktur ECS untuk Amazon ECS**, pilih salah satu yang telah Anda buat untuk digunakan saat membuat grup target VPC Lattice. Untuk membuat peran baru, **Buat peran infrastruktur ECS**.

1. Pilih **VPC**.

   **VPC** tergantung pada mode jaringan yang Anda pilih saat Anda mendaftarkan definisi tugas Anda. Jika Anda menggunakan `network` mode `host` or dengan EC2, pilih VPC Anda. 

   Untuk `awsvpc` mode, VPC dipilih secara otomatis berdasarkan VPC yang Anda pilih di bawah **Jaringan** dan tidak dapat diubah.

1. Di bawah **Grup Target** pilih grup target atau grup. Anda harus memilih setidaknya satu kelompok sasaran dan dapat memiliki maksimal lima. Pilih **Tambahkan grup target** untuk menambahkan grup target tambahan. Pilih **nama Port**, **Protokol**, dan **Port** untuk setiap grup target yang Anda pilih. Untuk menghapus grup target, pilih **Hapus**.
**catatan**  
Jika Anda ingin menambahkan grup target yang ada, Anda perlu menggunakan AWS CLI. *Untuk petunjuk tentang cara menambahkan grup target menggunakan AWS CLI, lihat [daftar target di Referensi](https://docs.aws.amazon.com/cli/latest/reference/vpc-lattice/register-targets.html). AWS Command Line Interface *
Meskipun layanan VPC Lattice dapat memiliki beberapa grup target, setiap grup target hanya dapat ditambahkan ke satu layanan.
Untuk membuat layanan dalam konfigurasi IPv6 -only, pilih grup target dengan jenis `IPv6` alamat IP.

1. Pada titik ini, Anda menavigasi ke konsol VPC Lattice untuk melanjutkan pengaturan. Di sinilah Anda menyertakan grup target baru dalam tindakan default listener atau dalam aturan layanan VPC Lattice yang ada. 

   Untuk informasi selengkapnya, lihat [Aturan pendengar untuk layanan Kisi VPC Anda](https://docs.aws.amazon.com/vpc-lattice/latest/ug/listener-rules.html).

**penting**  
Anda harus mengizinkan `vpc-lattice` awalan aturan masuk ke grup keamanan atau tugas Anda dan pemeriksaan kesehatan dapat gagal. 

## Buat layanan yang menggunakan VPC Lattice dengan AWS CLI
<a name="ecs-lattice-create-cli"></a>

Gunakan AWS CLI untuk membuat layanan dengan VPC Lattice. Ganti masing-masing *user input placeholder* dengan informasi Anda sendiri.

1. Buat file konfigurasi grup target. Contoh berikut diberi nama `tg-config.json`

   ```
   {
       "ipAddressType": "IPV4",
       "port": 443,
       "protocol": "HTTPS",
       "protocolVersion": "HTTP1",
       "vpcIdentifier": "vpc-f1663d9868EXAMPLE"
   }
   ```

1. Gunakan perintah berikut untuk membuat grup target VPC Lattice.

   ```
   aws vpc-lattice create-target-group \
       --name my-lattice-target-group-ip \
       --type IP \
       --config file://tg-config.json
   ```
**catatan**  
Untuk membuat layanan dalam konfigurasi IPv6 -only, buat grup target dengan jenis `IPv6` alamat IP. Untuk informasi selengkapnya, lihat [create-target-group](https://docs.aws.amazon.com/cli/latest/reference/vpc-lattice/create-target-group.html) dalam *AWS CLI Referensi Perintah*.

   Contoh output:

   ```
   {
       "arn": "arn:aws:vpc-lattice:us-east-2:123456789012:targetgroup/tg-0eaa4b9ab4EXAMPLE",
       "config": {
           "healthCheck": {
               "enabled": true,
               "healthCheckIntervalSeconds": 30,
               "healthCheckTimeoutSeconds": 5,
               "healthyThresholdCount": 5,
               "matcher": {
                   "httpCode": "200"
               },
               "path": "/",
               "protocol": "HTTPS",
               "protocolVersion": "HTTP1",
               "unhealthyThresholdCount": 2
           },
           "ipAddressType": "IPV4",
           "port": 443,
           "protocol": "HTTPS",
           "protocolVersion": "HTTP1",
           "vpcIdentifier": "vpc-f1663d9868EXAMPLE"
       },
       "id": "tg-0eaa4b9ab4EXAMPLE",
       "name": "my-lattice-target-group-ip",
       "status": "CREATE_IN_PROGRESS",
       "type": "IP"
   }
   ```

1. File JSON berikut bernama *ecs-service-vpc-lattice.json* adalah contoh yang digunakan untuk melampirkan layanan Amazon ECS ke grup target VPC Lattice. Contoh `portName` di bawah ini sama dengan yang Anda tentukan di `name` bidang `portMappings` properti definisi tugas Anda.

   ```
   {
       "serviceName": "ecs-service-vpc-lattice",
       "taskDefinition": "ecs-task-def",
           "vpcLatticeConfigurations": [
           {
               "targetGroupArn": "arn:aws:vpc-lattice:us-west-2:123456789012:targetgroup/tg-0eaa4b9ab4EXAMPLE",
               "portName": "testvpclattice",
               "roleArn": "arn:aws:iam::123456789012:role/ecsInfrastructureRoleVpcLattice"
           }
       ],
       "desiredCount": 5,
       "role": "ecsServiceRole"
   }
   ```

   Gunakan perintah berikut untuk membuat layanan Amazon ECS dan melampirkannya ke grup target VPC Lattice menggunakan contoh json di atas.

   ```
   aws ecs create-service \
       --cluster clusterName \
       --serviceName ecs-service-vpc-lattice \
       --cli-input-json file://ecs-service-vpc-lattice.json
   ```

**catatan**  
VPC Lattice tidak didukung di Amazon ECS Anywhere.