awsが初めてで、ECSクラスターでEC2サービスを作成しようとしているときに問題が発生しました。
cluster1に新しいサービス(service1)を正常に作成できましたが、その後、cluster1を削除してcluster2を作成することにしました。 cluster2にservice1を再作成しようとしたときに問題が発生しました。サービスを追加しようとすると、次のエラーが発生します
creation failed: Service already exists. (Service: AWSServiceDiscovery; Status Code: 400; Error Code: ServiceAlreadyExists; Request ID: d854025e-ebcc-11e8-84ab-b3bac906f2ef)
誰もがこの問題を解決する方法を知っていますか?タスク定義の登録を解除しようとしましたが、機能しませんでした。 cluster1が削除され、cluster2にサービスがありません
ここに完全な答えがあります。 AWS ECSサービスを作成し、Route53に名前空間(.local)とサービス(ECSサービスと同じ名前の)を作成したオプションのServiceDiscoveryも選択した場合。
ECSサービスとクラスターを削除しても、Route53名前空間/サービスエントリは自動的には削除されません。今、あなたはService already exists
新しいECSサービスがServiceDiscoveryサービスと同じ名前と一致するため、エラーが発生しました。 3つのオプションがあります。 1. Route53名前空間とサービスをクリーンアップします。 2. ServiceDiscovery機能を引き続き使用する場合は、Route53サービスを再利用します。 3. ECSサービスを作成するときは、サービス検出統合を有効にしないでください。
オプション1-
aws servicediscovery list-services
{"サービス":[{"Id": "srv-x4acveybedar32mv"、 "Arn": "arn:aws:servicediscovery:us-east-1:1234567890:service/srv-x4acveybedar32mv"、 "Name": "nginx" }]}
aws servicediscovery list-namespaces
{"名前空間":[{"Id": "ns-3yd7pskwsxhwlq67"、 "Arn": "arn:aws:servicediscovery:us-east-1:1234567890:namespace/ns-3yd7pskwsxhwlq67"、 "Name": "local" 、「タイプ」:「DNS_PRIVATE」}]}
aws servicediscovery delete-service --id "srv-x4acveybedar32mv"
。結果は、CLIからの空の応答です。aws servicediscovery delete-namespace --id "ns-3yd7pskwsxhwlq67"
{"OperationId": "s573v5dr62yee5d7vbfvsy5h65ybxmoh-jossalgs"}
DNSクリーンアップ操作が適切に反映されるまでに数分かかる場合があるため、再試行する前に常に数分を与えるだけです。
オプション2-
AWS Cloud Mapサービスから削除する必要があります。 AWSクラウドマップを使用したECSサービス検出(DNSベース)。
この問題の使用例。 Service Discovery(DNSベース)を使用して、Service Discoveryを削除せずにECSサービスを削除します(コンソールで、DNSプライベートゾーンから全体を削除するためのチェックボックスを設定していません)。既存全体でサービスを作成しようとしています。
AWS Cloud Mapは、サービス検出(およびDNSプライベートゾーン)を管理します。
手順:
1。 AWSクラウドマップに移動 ここに画像の説明を入力
2。ここに画像の説明を入力して削除 ここに画像の説明を入力