Bird
Raised Fist0
AWScloud~5 mins

RDS backup and snapshots in AWS - Commands & Configuration

Choose your learning style10 modes available
Introduction
When you run a database in the cloud, you need to save copies of your data to protect it from loss. RDS backups and snapshots let you save your database state so you can restore it if something goes wrong.
When you want to protect your database from accidental deletion or corruption by saving its state regularly.
When you need to create a copy of your database to test changes without affecting the live data.
When you want to move your database to a different region or account safely.
When you want to restore your database to a previous point in time after a failure.
When you want to automate backups to meet compliance or business rules.
Commands
This command creates a manual snapshot of the RDS database named 'mydbinstance'. Snapshots save the current state of the database for later restoration.
Terminal
aws rds create-db-snapshot --db-instance-identifier mydbinstance --db-snapshot-identifier mydbsnapshot1
Expected OutputExpected
{"DBSnapshot":{"DBSnapshotIdentifier":"mydbsnapshot1","DBInstanceIdentifier":"mydbinstance","SnapshotCreateTime":"2024-06-01T12:00:00Z","Status":"creating"}}
→
--db-instance-identifier - Specifies which database instance to snapshot
→
--db-snapshot-identifier - Names the snapshot for easy reference
This command checks the status and details of the snapshot named 'mydbsnapshot1' to confirm it was created successfully.
Terminal
aws rds describe-db-snapshots --db-snapshot-identifier mydbsnapshot1
Expected OutputExpected
{"DBSnapshots":[{"DBSnapshotIdentifier":"mydbsnapshot1","DBInstanceIdentifier":"mydbinstance","SnapshotCreateTime":"2024-06-01T12:00:00Z","Status":"available"}]}
→
--db-snapshot-identifier - Filters the output to show only the specified snapshot
This command creates a new database instance named 'mydbrestored' by restoring the data from the snapshot 'mydbsnapshot1'.
Terminal
aws rds restore-db-instance-from-db-snapshot --db-instance-identifier mydbrestored --db-snapshot-identifier mydbsnapshot1
Expected OutputExpected
{"DBInstance":{"DBInstanceIdentifier":"mydbrestored","DBInstanceStatus":"creating"}}
→
--db-instance-identifier - Names the new database instance to create
→
--db-snapshot-identifier - Specifies which snapshot to restore from
This command checks the status of the restored database instance to know when it is ready to use.
Terminal
aws rds describe-db-instances --db-instance-identifier mydbrestored
Expected OutputExpected
{"DBInstances":[{"DBInstanceIdentifier":"mydbrestored","DBInstanceStatus":"available"}]}
→
--db-instance-identifier - Filters output to the restored instance
Key Concept

If you remember nothing else from this pattern, remember: snapshots save your database state so you can restore it anytime without losing data.

Common Mistakes
Trying to create a snapshot with a name that already exists
AWS will reject the request because snapshot names must be unique per account and region
Use a new, unique snapshot identifier each time you create a snapshot
Restoring a snapshot without specifying a new database instance identifier
The restore command requires a new instance name; it cannot overwrite the original database
Always provide a unique --db-instance-identifier when restoring from a snapshot
Assuming snapshots are automatic backups
Manual snapshots are created only when you run the command; automatic backups are separate and managed by AWS
Use automated backups for regular scheduled backups and manual snapshots for on-demand copies
Summary
Create manual snapshots to save your database state at any time.
Check snapshot status to confirm it is ready before restoring.
Restore a new database instance from a snapshot using a unique name.
Verify the restored instance is available before using it.

Practice

(1/5)
1. What is the main difference between automated backups and manual snapshots in AWS RDS?
easy
A. Automated backups are stored outside AWS; manual snapshots are stored inside AWS.
B. Automated backups happen daily and expire; manual snapshots are created on demand and kept until deleted.
C. Automated backups are created only when the user requests; manual snapshots happen automatically every hour.
D. Automated backups cannot be restored; manual snapshots can only be viewed.

Solution

  1. Step 1: Understand automated backups

    Automated backups run daily and keep data for a set retention period, after which they expire automatically.
  2. Step 2: Understand manual snapshots

    Manual snapshots are created by the user anytime and remain until explicitly deleted.
  3. Final Answer:

    Automated backups happen daily and expire; manual snapshots are created on demand and kept until deleted. -> Option B
  4. Quick Check:

    Backup type difference = Automated expire, manual keep [OK]
Hint: Automated expire, manual keep until delete [OK]
Common Mistakes:
  • Thinking manual snapshots expire automatically
  • Believing automated backups are user-triggered only
  • Confusing storage location of backups and snapshots
2. Which AWS CLI command correctly creates a manual snapshot of an RDS instance named mydbinstance?
easy
A. aws rds create-db-snapshot --db-instance-identifier mydbinstance --db-snapshot-identifier mydbsnapshot
B. aws rds backup-db-instance --instance mydbinstance --snapshot mydbsnapshot
C. aws rds snapshot-create --db-instance mydbinstance --snapshot-name mydbsnapshot
D. aws rds make-snapshot --db-instance-id mydbinstance --snapshot-id mydbsnapshot

Solution

  1. Step 1: Identify correct AWS CLI syntax

    The correct command to create a manual snapshot is aws rds create-db-snapshot with required flags.
  2. Step 2: Match parameters

    Use --db-instance-identifier for the instance and --db-snapshot-identifier for the snapshot name.
  3. Final Answer:

    aws rds create-db-snapshot --db-instance-identifier mydbinstance --db-snapshot-identifier mydbsnapshot -> Option A
  4. Quick Check:

    Correct CLI command = aws rds create-db-snapshot --db-instance-identifier mydbinstance --db-snapshot-identifier mydbsnapshot [OK]
Hint: Use create-db-snapshot with instance and snapshot IDs [OK]
Common Mistakes:
  • Using incorrect command verbs like backup-db-instance
  • Mixing parameter names like --snapshot-name instead of --db-snapshot-identifier
  • Assuming snapshot creation is automatic without command
3. Given this AWS CLI output snippet after running aws rds describe-db-snapshots --db-instance-identifier mydbinstance:
{
  "DBSnapshots": [
    {"DBSnapshotIdentifier": "snapshot1", "Status": "available"},
    {"DBSnapshotIdentifier": "snapshot2", "Status": "creating"}
  ]
}
What does the status "creating" mean for snapshot2?
medium
A. "snapshot2" is currently being created and not ready for restore.
B. "snapshot2" is ready and can be used to restore the database.
C. "snapshot2" creation failed and needs retry.
D. "snapshot2" is deleted but still listed temporarily.

Solution

  1. Step 1: Understand snapshot status meanings

    Status "creating" means the snapshot process is in progress and not yet complete.
  2. Step 2: Interpret the impact on usage

    While "creating", the snapshot cannot be used for restore until status changes to "available".
  3. Final Answer:

    "snapshot2" is currently being created and not ready for restore. -> Option A
  4. Quick Check:

    Status creating = snapshot in progress [OK]
Hint: Creating means snapshot not ready yet [OK]
Common Mistakes:
  • Assuming creating means snapshot is ready
  • Confusing creating with failed or deleted status
  • Thinking snapshot is deleted but still listed
4. You wrote this AWS CLI command to create a manual snapshot but got an error:
aws rds create-db-snapshot --db-instance-identifier mydbinstance
What is missing that causes the error?
medium
A. The --region parameter is required for all commands.
B. The --db-instance-identifier value is incorrect and must be the snapshot name.
C. The --db-snapshot-identifier parameter with a snapshot name is missing.
D. The command must be run with sudo privileges.

Solution

  1. Step 1: Check required parameters for create-db-snapshot

    The command requires both --db-instance-identifier and --db-snapshot-identifier to name the snapshot.
  2. Step 2: Identify missing parameter

    The command lacks --db-snapshot-identifier, so AWS cannot create the snapshot without a name.
  3. Final Answer:

    The --db-snapshot-identifier parameter with a snapshot name is missing. -> Option C
  4. Quick Check:

    Missing snapshot ID causes error [OK]
Hint: Always provide snapshot name with --db-snapshot-identifier [OK]
Common Mistakes:
  • Forgetting to specify snapshot identifier
  • Assuming region is always mandatory
  • Thinking sudo is needed for AWS CLI commands
5. You want to keep daily backups of your RDS instance for 7 days automatically and also keep a manual snapshot before a major update that you want to keep indefinitely. Which combination of settings and actions achieves this?
hard
A. Create a manual snapshot daily and delete old ones after 7 days; no automated backups.
B. Disable automated backups and create 7 manual snapshots daily plus one before update.
C. Enable automated backups with 7-day retention and rely only on them for the update.
D. Enable automated backups with 7-day retention and create a manual snapshot before update.

Solution

  1. Step 1: Set automated backups retention

    Enable automated backups with a 7-day retention period to keep daily backups automatically.
  2. Step 2: Create manual snapshot before update

    Manually create a snapshot before the update to keep a permanent backup unaffected by retention.
  3. Final Answer:

    Enable automated backups with 7-day retention and create a manual snapshot before update. -> Option D
  4. Quick Check:

    Automated + manual snapshot = daily + permanent backup [OK]
Hint: Automated backups expire; manual snapshots keep forever [OK]
Common Mistakes:
  • Disabling automated backups losing daily backups
  • Relying only on automated backups for permanent backup
  • Manually creating many snapshots instead of using automated backups
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard