[AWS] ECSサービスディスカバリで作成したRoute53のホステッドゾーンの削除方法

ECSのサービスディスカバリを利用して、プライベートホステッドゾーンを作成できる。
ECSのクラスタ、サービスなどを削除したあとに、このホステッドゾーンが削除できずに残ってしまうことがある。

Route53のコンソールから削除しようとしても、エラーメッセージが表示されて削除できない。クラスタやサービス、タスクなどをコンソールから削除してもだめ。CloudFormationのスタックを削除してもだめ。

削除方法を探していると、AWS SDKを使ってCLIで削除する方法を見つけたのでメモ。

大まかな流れは、ホステッドゾーンが紐づいているサービスを削除後に、ホステッドゾーンを削除する。


サービスの削除

サービスの確認

$ aws servicediscovery list-services
{
    "Services": [
        {
        "Id": "srv-xxxxxxxxxxxxxxxx",
        "Arn": "arn:aws:servicediscovery:ap-northeast-1:999999999999:service/srv-xxxxxxxxxxxxxxxx",
        "Name": "testservice"
        }
    ]
}

コンソールから削除したサービスが表示される。なんでだろ。

idを指定してサービスを削除する。

$ aws servicediscovery delete-service --id=srv-xxxxxxxxxxxxxxxx

CLIで削除されていることを確認する。

$ aws servicediscovery list-services
{
   "Services": []
}


ホステッドゾーンの削除

ネームスペースを確認

$ aws servicediscovery list-namespaces
{
   "Namespaces": [
       {
           "Type": "DNS_PRIVATE",
           "Id": "ns-xxxxxxxxxxxxxxxx",
           "Arn": "arn:aws:servicediscovery:ap-northeast-1:999999999999:namespace/ns-xxxxxxxxxxxxxxxx",
           "Name": "local"
       }
   ]
}

idを指定してネームスペースを削除。

$ aws servicediscovery delete-namespace --id=ns-xxxxxxxxxxxxxxxx
{
   "OperationId": "bzaihft7sjwnooqxfcw6o6hgkmxq3umb-jmjtiufr"
}

削除されていることを確認。

$ aws servicediscovery list-namespaces
{
   "Namespaces": []
}

削除完了。

以上です。

この記事が気に入ったらサポートをしてみませんか?