DBInstance ​
The DBInstance resource lets you manage AWS RDS DBInstances for relational databases, providing a scalable and reliable way to store and retrieve your data.
Minimal Example ​
Create a basic RDS DBInstance with required properties and a couple of common optional settings.
ts
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"]
});
Advanced Configuration ​
Configure an RDS DBInstance with advanced options such as performance insights and automated backups.
ts
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" }
]
});
Read Replica Configuration ​
Create an RDS Read Replica to scale read operations for your database.
ts
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" }
]
});
Snapshot Restore ​
Restore a DBInstance from an existing snapshot.
ts
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" }
]
});
Security Group Configuration ​
Create a DBInstance with specific security group settings to control access.
ts
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" }
]
});