

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

# 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.