Skip to content
GitHubXDiscordRSS

DBInstance

Learn how to create, update, and manage AWS RDS DBInstances using Alchemy Cloud Control.

The DBInstance resource lets you manage AWS RDS DBInstances for relational databases, providing a scalable and reliable way to store and retrieve your data.

Create a basic RDS DBInstance with required properties and a couple of common optional settings.

import AWS from "alchemy/aws/control";
const dbInstance = await AWS.RDS.DBInstance("myDbInstance", {
DBInstanceIdentifier: "my-database",
DBInstanceClass: "db.t3.micro",
Engine: "mysql",
AllocatedStorage: "20",
MasterUsername: "admin",
MasterUserPassword: "password123",
StorageEncrypted: true,
VPCSecurityGroups: ["sg-0123456789abcdef0"]
});

Configure an RDS DBInstance with advanced options such as performance insights and automated backups.

const advancedDbInstance = await AWS.RDS.DBInstance("advancedDbInstance", {
DBInstanceIdentifier: "my-advanced-database",
DBInstanceClass: "db.t3.medium",
Engine: "postgres",
AllocatedStorage: "50",
MasterUsername: "admin",
MasterUserPassword: "securePassword",
EnablePerformanceInsights: true,
PerformanceInsightsRetentionPeriod: 7,
BackupRetentionPeriod: 30,
MultiAZ: true,
Tags: [
{ Key: "Environment", Value: "Production" },
{ Key: "Project", Value: "MyProject" }
]
});

Create an RDS Read Replica to scale read operations for your database.

const readReplica = await AWS.RDS.DBInstance("myReadReplica", {
DBInstanceIdentifier: "my-db-read-replica",
SourceDBInstanceIdentifier: "my-database",
DBInstanceClass: "db.t3.medium",
AllocatedStorage: "20",
Tags: [
{ Key: "Type", Value: "ReadReplica" },
{ Key: "Project", Value: "MyProject" }
]
});

Restore a DBInstance from an existing snapshot.

const restoredDbInstance = await AWS.RDS.DBInstance("restoredDbInstance", {
DBInstanceIdentifier: "my-restored-database",
DBSnapshotIdentifier: "my-database-snapshot",
DBInstanceClass: "db.t3.medium",
Tags: [
{ Key: "RestoredFrom", Value: "my-database-snapshot" }
]
});

Create a DBInstance with specific security group settings to control access.

const secureDbInstance = await AWS.RDS.DBInstance("secureDbInstance", {
DBInstanceIdentifier: "my-secure-database",
DBInstanceClass: "db.t3.micro",
Engine: "mysql",
AllocatedStorage: "20",
MasterUsername: "admin",
MasterUserPassword: "superSecretPassword",
VPCSecurityGroups: ["sg-0a1b2c3d4e5f67890"], // Replace with your security group ID
PubliclyAccessible: false,
Tags: [
{ Key: "Access", Value: "Internal" },
{ Key: "Environment", Value: "Development" }
]
});