

# 共有 AWS Cloud Map 名前空間を使用した Amazon ECS Service Connect
<a name="service-connect-shared-namespaces"></a>

Amazon ECS Service Connect は、同じ AWS リージョン内の複数の AWS アカウントで共有 AWS Cloud Map 名前空間を使用することをサポートしています。この機能を使用すると、異なる AWS アカウントで実行されているサービスが Service Connect を介して相互に検出して通信することが可能な分散アプリケーションを作成できます。共有名前空間は、安全なクロスアカウントリソース共有を可能にする AWS Resource Access Manager (AWS RAM) を使用して管理されます。共有名前空間の詳細については、「*AWS Cloud Map デベロッパーガイド*」の「[クロスアカウント AWS Cloud Map 名前空間共有](https://docs.aws.amazon.com/cloud-map/latest/dg/sharing-namespaces.html)」を参照してください。

**重要**  
Service Connect が名前空間で適切に動作するには、`AWSRAMPermissionCloudMapECSFullPermission` マネージドアクセス許可を使用して名前空間を共有する必要があります。

Service Connect で共有 AWS Cloud Map 名前空間を使用する場合は、複数の AWS アカウントのサービスが同じサービス名前空間に参加できます。これは、複数の AWS アカウントが存在する組織で、セキュリティと分離を維持しながら、アカウントの境界を越えてサービス間通信を維持する必要がある場合に特に有効です。

**注記**  
異なる VPC にあるサービスと通信するには、VPC 間接続を設定する必要があります。これは、VPC ピアリング接続を使用して実現できます。詳細については、「*Amazon Virtual Private Cloud ピアリングガイド*」の「[VPC ピアリング接続の作成または削除](https://docs.aws.amazon.com/vpc/latest/peering/create-vpc-peering-connection.html)」を参照してください。

## 考慮事項
<a name="service-connect-shared-namespaces-considerations"></a>

Service Connect で共有 AWS Cloud Map 名前空間を使用する場合は、次の点を考慮してください。
+ AWS RAM は、共有名前空間を使用する AWS リージョンで利用できる必要があります。
+ 共有名前空間は、Amazon ECS のサービスおよびクラスターと同じ AWS リージョンに存在する必要があります。
+ 共有名前空間で Service Connect を設定する場合は、ID ではなく名前空間 ARN を使用する必要があります。
+ HTTP、プライベート DNS、パブリック DNS 名前空間のすべての名前空間タイプがサポートされています。
+ 共有名前空間へのアクセスが取り消されると、名前空間とのやり取りを必要とする Amazon ECS オペレーション (`CreateService`、`UpdateService`、`ListServicesByNamespace` など) は失敗します。共有名前空間のアクセス許可に関する問題のトラブルシューティングの詳細については、「[共有 AWS Cloud Map 名前空間を使用した Amazon ECS Service Connect のトラブルシューティング](service-connect-shared-namespaces-troubleshooting.md)」を参照してください。
+ 共有プライベート DNS 名前空間で DNS クエリを使用するサービス検出の場合:
  + 名前空間所有者は、名前空間に関連付けられたプライベートホストゾーンの ID とコンシューマーの VPC を使用して `create-vpc-association-authorization` を呼び出す必要があります。

    ```
    aws route53 create-vpc-association-authorization --hosted-zone-id {{Z1234567890ABC}} --vpc VPCRegion={{us-east-1}},VPCId={{vpc-12345678}}
    ```
  + 名前空間コンシューマーは、プライベートホストゾーンの ID を使用して `associate-vpc-with-hosted-zone` を呼び出す必要があります。

    ```
    aws route53 associate-vpc-with-hosted-zone --hosted-zone-id {{Z1234567890ABC}} --vpc VPCRegion={{us-east-1}},VPCId={{vpc-12345678}}
    ```
+ リソース共有を管理できるのは、名前空間所有者のみです。
+ 名前空間コンシューマーは、共有名前空間内でサービスを作成および管理できますが、名前空間自体を変更することはできません。
+ 検出名は、サービスを作成するアカウントを問わず、共有名前空間内で一意であることが必要です。
+ 共有名前空間内のサービスは、名前空間にアクセスできる他の AWS アカウントのサービスを検出して接続できます。
+ Service Connect で TLS を有効にし、共有名前空間を使用する場合、AWS Private CA 認証局 (CA) は名前空間に限定されます。共有名前空間へのアクセスが取り消されると、CA へのアクセスは停止します。
+ 共有名前空間を使用する場合、名前空間の所有者とコンシューマーはデフォルトでクロスアカウントの Amazon CloudWatch メトリクスにアクセスできません。ターゲットメトリクスは、クライアントサービスを所有するアカウントにのみ発行されます。クライアントサービスを所有するアカウントは、クライアント/サーバーサービスを所有するアカウントが受信したメトリクスにアクセスできません。その逆も同様です。メトリクスへのクロスアカウントアクセスを許可するには、CloudWatch クロスアカウントオブザーバビリティを設定します。クロスアカウントオブザーバビリティの設定の詳細については、「*Amazon CloudWatch ユーザーガイド*」の「[CloudWatch のクロスアカウントオブザーバビリティ](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Unified-Cross-Account.html)」を参照してください。Service Connect の CloudWatch メトリクスの詳細については、「[Amazon ECS CloudWatch メトリクス](available-metrics.md)」を参照してください。