You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何控制AWS负载均衡器的FQDN?实现重复部署域名固定

解决AWS负载均衡器重建后域名固定的问题

方案1:用AWS Route 53别名记录(最推荐)

  • 核心逻辑:Route 53的别名记录并非普通CNAME,它直接关联AWS资源(如ELB),当ELB重建后,别名记录会自动指向新的ELB DNS,无需手动或编程修改。
  • 操作步骤:
    1. 在Route 53中创建自定义域名的托管区(比如example.com),确保域名的DNS服务器指向Route 53提供的服务器。
    2. 创建一条A/AAAA类型的别名记录,记录名设为你需要的固定域名(如elb.example.com)。
    3. 目标选择「Alias to Application and Classic Load Balancer」,再选中对应区域和你的ELB资源。
    4. CloudFlare端只需配置一条CNAME记录指向elb.example.com,后续无论ELB如何重建,该记录都无需修改。

方案2:用基础设施即代码(IaC)自动同步DNS记录

如果用Terraform、CloudFormation等工具管理部署,可自动将新ELB的DNS同步到DNS记录:

Terraform示例:

# 创建ELB
resource "aws_elb" "my_load_balancer" {
  name               = "my-elb"
  availability_zones = ["ap-southeast-2a", "ap-southeast-2b"]

  listener {
    instance_port     = 80
    instance_protocol = "http"
    lb_port           = 80
    lb_protocol       = "http"
  }
}

# 在Route 53创建CNAME记录指向ELB的DNS
resource "aws_route53_record" "elb_cname" {
  zone_id = aws_route53_zone.my_zone.id
  name    = "elb.example.com"
  type    = "CNAME"
  ttl     = "300"
  records = [aws_elb.my_load_balancer.dns_name]
}

每次销毁重建ELB后,执行terraform apply会自动更新Route 53的记录,CloudFlare端依然只需指向固定的elb.example.com。

方案3:直接通过API更新CloudFlare记录

如果不想依赖Route 53,可在部署脚本中添加以下逻辑:

  1. 创建新ELB后,通过AWS CLI获取它的DNS名称:
    aws elb describe-load-balancers --names my-elb --query 'LoadBalancerDescriptions[0].DNSName' --output text
    
  2. 调用CloudFlare的API,修改对应CNAME记录的值为新的ELB DNS。
    这种方式需要维护CloudFlare的API密钥和域名信息,稳定性不如前两种方案。

内容的提问来源于stack exchange,提问作者Dylan Nicholson

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 10:53:11