Search code examples
amazon-web-servicesdnsterraformamazon-route53aws-application-load-balancer

How can I create a Route 53 Record to an ALB? (AWS)


I want to create a new alb and a route53 record that points to it.

I see I have the DNS name: ${aws_lb.MYALB.dns_name}

Is it possible to create a cname to the public DNS name with aws_route53_record resource?


Solution

  • See the Terraform Route53 Record docs

    You can add a basic CNAME entry with the following:

    resource "aws_route53_record" "cname_route53_record" {
      zone_id = aws_route53_zone.primary.zone_id # Replace with your zone ID
      name    = "www.example.com" # Replace with your subdomain, Note: not valid with "apex" domains, e.g. example.com
      type    = "CNAME"
      ttl     = "60"
      records = [aws_lb.MYALB.dns_name]
    }
    

    Or if you're are using an "apex" domain (e.g. example.com) consider using an Alias (AWS Alias Docs):

    resource "aws_route53_record" "alias_route53_record" {
      zone_id = aws_route53_zone.primary.zone_id # Replace with your zone ID
      name    = "example.com" # Replace with your name/domain/subdomain
      type    = "A"
    
      alias {
        name                   = aws_lb.MYALB.dns_name
        zone_id                = aws_lb.MYALB.zone_id
        evaluate_target_health = true
      }
    }