如何向 AWS Route53 自动命名托管区域添加静态条目?

如何向 AWS Route53 自动命名托管区域添加静态条目?

我正在使用 Amazon ECS(Docker)运行一些后端 REST 服务,它们在每次重启时都会更改其公共 IP。

当新的后端实例启动时,我正在使用 AWS Route 53 Auto Naming(又名 servicediscovery)在 DNS 上注册新的 A 记录。

一切正常,只是后端使用的是 HTTP。我希望使用 HTTPS 保护它们,并且我希望让我们加密/Certbot问题来了。

我希望获取托管区域内所有名称的通配符证书,比如说 *.aws.example.com,但我需要在托管区域上添加验证文本记录,但这是不可能的。

我收到的错误信息是:

资源 hostingzone/Z1R8P3NTRAIWDS 只能通过 servicediscovery.amazonaws.com 进行管理(arn:aws:servicediscovery:eu-west-1:263810592360:namespace/ns-cuqs46hqusim4jih)

如何向服务发现管理的托管区域添加一些静态记录?

答案1

我最终设法使用文档页面中“使用现有托管区域的服务发现”部分中的程序解决了我的问题: https://docs.aws.amazon.com/Route53/latest/APIReference/overview-service-discovery.html

基本上:

  1. 使用自动发现功能创建一个与先前存在的公共 Route53 托管区域无关的命名空间
  2. 使用以下 aws-cli 命令将自动发现记录链接到公共 Route53 托管区域aws route53 change-resource-record-sets --hosted-zone-id existing-hosted-zone-id --change-batch file://path-to-text-file

文本文件的组成如下:

{
  "Changes": [
    {
      "Action": "UPSERT", 
      "ResourceRecordSet": {
        "Type":"A", 
        "Name":"record-name-in-existing-hosted-zone", 
        "AliasTarget": {
          "DNSName":"record-name-in-new-hosted-zone", 
          "HostedZoneId":"service-discovery-hosted-zone-id", 
          "EvaluateTargetHealth":true
        }
      }
    }
  ]
}

答案2

您可能会考虑在前面使用 Elastic Load Balancer 并使用 Amazon 的证书流程。您将为 ELB 支付更多费用,但从那时起,您可以在 Route53 中使用 ELB 端点,而不必担心 ECS IP 地址。

否则,您可能需要关闭自动发现,或者从提供商处生成证书,该证书将根据文件中发送给管理员的电子邮件进行批准。

相关内容