1. Answers
  2. Using aws route53 with rds

How do I use AWS Route53 with RDS?

In this guide, we will set up an Amazon RDS instance and configure AWS Route53 to manage DNS for it. We will create a MySQL RDS instance and a Route53 DNS record that points to the RDS instance endpoint.

Steps:

  1. Create an RDS instance: We will create an Amazon RDS instance running MySQL.
  2. Create a Route53 hosted zone: This will manage the DNS records for our domain.
  3. Create a Route53 DNS record: This will point to the RDS instance endpoint.

Prerequisites:

  • You should have Pulumi CLI installed and configured.
  • You should have AWS credentials configured for Pulumi.
  • You should have a domain name registered with Route53.

Pulumi Program

import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";

// Configuration
const dbConfig = {
    instanceClass: "db.t2.micro",
    allocatedStorage: 20,
    engine: "mysql",
    engineVersion: "8.0",
    name: "mydatabase",
    username: "admin",
    password: "password1234",
    skipFinalSnapshot: true,
};

// Create a new RDS instance
const rdsInstance = new aws.rds.Instance("my-rds-instance", {
    instanceClass: dbConfig.instanceClass,
    allocatedStorage: dbConfig.allocatedStorage,
    engine: dbConfig.engine,
    engineVersion: dbConfig.engineVersion,
    name: dbConfig.name,
    username: dbConfig.username,
    password: dbConfig.password,
    skipFinalSnapshot: dbConfig.skipFinalSnapshot,
});

// Create a Route53 hosted zone
const hostedZone = new aws.route53.Zone("myHostedZone", {
    name: "mydomain.com",
});

// Create a Route53 DNS record pointing to the RDS instance
const dbRecord = new aws.route53.Record("dbRecord", {
    zoneId: hostedZone.id,
    name: "database.mydomain.com",
    type: "CNAME",
    ttl: 300,
    records: [rdsInstance.endpoint],
});

// Export the DNS name of the RDS instance
export const dbEndpoint = rdsInstance.endpoint;
export const dbDnsName = dbRecord.fqdn;

Explanation

  1. RDS Instance:

    • We create an RDS instance using the aws.rds.Instance resource.
    • We configure it with MySQL engine, specify instance class, storage, and database credentials.
  2. Route53 Hosted Zone:

    • We create a hosted zone using the aws.route53.Zone resource.
    • This hosted zone will manage DNS records for mydomain.com.
  3. Route53 DNS Record:

    • We create a DNS record using the aws.route53.Record resource.
    • This record points to the RDS instance endpoint and is of type CNAME.
  4. Exports:

    • We export the RDS instance endpoint and the fully qualified domain name (FQDN) of the DNS record.

This program will create the necessary AWS resources and configure Route53 to manage the DNS for your RDS instance. You can run this program with Pulumi to provision the infrastructure in your AWS account.

Deploy this code

Want to deploy this code? Sign up for a free Pulumi account to deploy in a few clicks.

Sign up

New to Pulumi?

Want to deploy this code? Sign up with Pulumi to deploy in a few clicks.

Sign up