我可以在 Route53 中创建指向非 aws 主机的 CNAME 吗?

Posted

技术标签:

【中文标题】我可以在 Route53 中创建指向非 aws 主机的 CNAME 吗?【英文标题】:Can I create a CNAME in Route53 pointing to a non-aws host? 【发布时间】:2018-08-14 23:32:26 【问题描述】:

Route53 文档说:

Amazon Route 53 提供“别名”记录(特定于 Amazon Route 53 虚拟记录)。别名记录用于映射资源记录集 您的托管区域到 Amazon Elastic Load Balancing 负载均衡器, Amazon CloudFront 分配、AWS Elastic Beanstalk 环境、 或配置为网站的 Amazon S3 存储桶。别名记录 像 CNAME 记录一样工作,您可以映射一个 DNS 名称 (example.com) 到另一个“目标”DNS 名称 (elb1234.elb.amazonaws.com)。

这是否意味着我无法 CNAME 到非 aws 主机?

Here's an example 来自 aws:

            Action: aws.String("CREATE"),
            ResourceRecordSet: &route53.ResourceRecordSet
                AliasTarget: &route53.AliasTarget
                DNSName:           aws.String("d123rk29d0stfj.cloudfront.net"),
                    EvaluateTargetHealth: aws.Bool(false),
                    HostedZoneId:         aws.String("Z2FDTNDATAQYW2"),
                ,
                Name: aws.String("example.com"),
                Type: aws.String("A"),
            ,

如果可以 CNAME 到非 aws 主机,我应该在 ResourceRecordSet 中指定什么?

【问题讨论】:

这是对“别名”记录的描述,表示它们 CNAME 一样工作。 Route53 适用于标准 A、CNAME 等,适用于 Internet 上的任何 IP 或域。您的最后一句话是错字吗?您是在问是否可以在 AWS 之外使用别名(不是 CNAME)? 我可以在 API 的哪个位置指定标准 CNAME? AliasTarget 是对 CNAME 的唯一引用。让我再检查一遍。 不知道,我使用控制台。检查文档? 【参考方案1】:

这对我有用:

    Action: aws.String("CREATE"),
    ResourceRecordSet: &route53.ResourceRecordSet
    Name: aws.String("mysite.com."),
    Type: aws.String("CNAME"),
    ResourceRecords: []*route53.ResourceRecord
        
            Value: aws.String("othersite.com"),
        ,
    ,
    TTL: aws.Int64(600),
    ,

【讨论】:

以上是关于我可以在 Route53 中创建指向非 aws 主机的 CNAME 吗?的主要内容,如果未能解决你的问题,请参考以下文章

具有 Route 53 域的 AWS S3 网站,需要通过 CloudFront 进行 https

我可以在不使用 Route 53 的情况下将我的域和子域指向 AWS 托管吗?

AWS Route 53 域指向 Github 页面

AWS 弹性负载均衡器 DNS 名称更改和 Route 53 (PHP)

AWS Route53 指向弹性 beanstalk webapp

AWS Route53上的MXE记录