BlondeSwan
BlondeSwan

Reputation: 792

Restoring an RDS Instance to a backup/snapshot

I'm trying to RESTORE an RDS instance to one of it's previous backups/snapshots, but when I follow the provided instructions by Amazon it CREATES a new instance from the backup instead of restoring the existing one.

I would like to just restore the db to an existing state because I have an EC2 instance pointing to it (managed through a Load Balancer) that I'd prefer to not have to go in and point to the new RDS.

How can I restore an RDS instance back to a previous point in time AND NOT create a new instance from the backup/snapshot

Upvotes: 4

Views: 2967

Answers (3)

Carter
Carter

Reputation: 1294

If you have terraform experience, I found this to be the most reproducible way of restoring from snapshots.

resource "aws_db_instance" "prod" {
  allocated_storage    = 10
  engine               = "mysql"
  engine_version       = "5.6.17"
  instance_class       = "db.t2.micro"
  name                 = "mydb"
  username             = "foo"
  password             = "bar"
  db_subnet_group_name = "my_database_subnet_group"
  parameter_group_name = "default.mysql5.6"
}

data "aws_db_snapshot" "latest_prod_snapshot" {
  db_instance_identifier = aws_db_instance.prod.id
  most_recent            = true
}

# Use the latest production snapshot to create a dev instance.
resource "aws_db_instance" "dev" {
  instance_class      = "db.t2.micro"
  name                = "mydbdev"
  snapshot_identifier = data.aws_db_snapshot.latest_prod_snapshot.id

  lifecycle {
    ignore_changes = [snapshot_identifier]
  }
}

From the terraform documentation.

Upvotes: 0

Tomek Klas
Tomek Klas

Reputation: 788

Restore to new RDS instance. Then rename or original rds server to something else and apply change immediately. Once the change is processed (2-3 min), rename the restore instance to the same name as the original rds and apply immediately.

RDS dns name within single account only varies by initial part, which is taken from the RDS instance name.

Upvotes: 6

E.J. Brennan
E.J. Brennan

Reputation: 46879

Short answer is you can't:

You can't restore from a DB snapshot to an existing DB instance; a new DB instance is created when you restore.

from here:

https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_RestoreFromSnapshot.html

Upvotes: 3

Related Questions