Deleting AWS private hosted zone

Written on July 15, 2018

Hoy, haciendo limpienza de mi cuenta de AWS, encontré que había una zona en Route53 que estaba gastando plata de forma innecesaria. Era una hosted zone privada, .local, que al intentar eliminarla desde la WebUI entregaba el siguiente error:

An error occurred (AccessDenied) when calling the DeleteHostedZone
operation: The resource hostedzone/ZSTONY906JY4R can only be managed
through servicediscovery.amazonaws.com
(arn:aws:servicediscovery:us-east-1:xxxyyyzzz:namespace/ns-obdi6gud7ubnr3rj)

Why?!

Esto error ocurre debido a dependencias dentro de AWS, en particular la dependencia con el Application Discovery Service (application-discovery) que por ahora sólo está disponible en us-west-2 (Oregon). La dependencia era algo como:

service => namespace => hosted zone

Así que para eliminar la famosa hosted zone tuve que:

  • Eliminar el servicio en Discovery
  • Eliminar el namespace donde corría el servicio, en Discovery
  • Eliminar la hosted zone en Route53

Si lo anterior lo traduzco a comandos, fue lo siguiente:

#echo Get IDs
aws servicediscovery list-namespaces
aws servicediscovery list-services
aws route53 list-hosted-zones

#echo kill'em with fire
aws servicediscovery delete-service --id <ID>
aws servicediscovery delete-namespace --id <ID>
aws route53 delete-hosted-zone --id <ID>