Skip to content

Database ​

The Database resource lets you manage AWS Lightsail Databases including their configurations and settings.

Minimal Example ​

Create a basic Lightsail database with required properties and some common optional settings.

ts
import AWS from "alchemy/aws/control";

const basicDatabase = await AWS.Lightsail.Database("basicDatabase", {
  RelationalDatabaseName: "myDatabase",
  RelationalDatabaseBlueprintId: "mysql_5_7",
  MasterDatabaseName: "primaryDB",
  MasterUsername: "adminUser",
  MasterUserPassword: "SecurePassword123",
  RelationalDatabaseBundleId: "medium_2_0",
  PubliclyAccessible: true
});

Advanced Configuration ​

Configure a database with advanced settings including maintenance windows and backup options.

ts
const advancedDatabase = await AWS.Lightsail.Database("advancedDatabase", {
  RelationalDatabaseName: "advancedDB",
  RelationalDatabaseBlueprintId: "mysql_5_7",
  MasterDatabaseName: "primaryDB",
  MasterUsername: "adminUser",
  MasterUserPassword: "AnotherSecurePassword456",
  RelationalDatabaseBundleId: "large_2_0",
  PreferredMaintenanceWindow: "Mon:04:00-Mon:05:00",
  PreferredBackupWindow: "Mon:02:00-Mon:03:00",
  BackupRetention: true
});

Database with Custom Parameters ​

Create a database with specific relational database parameters.

ts
const parameterDatabase = await AWS.Lightsail.Database("parameterDatabase", {
  RelationalDatabaseName: "paramDB",
  RelationalDatabaseBlueprintId: "mysql_5_7",
  MasterDatabaseName: "primaryDB",
  MasterUsername: "adminUser",
  MasterUserPassword: "PasswordWithSpecialChar!789",
  RelationalDatabaseBundleId: "medium_2_0",
  RelationalDatabaseParameters: [
    { parameterName: "max_connections", parameterValue: "200" },
    { parameterName: "query_cache_size", parameterValue: "1048576" }
  ]
});

Adopt Existing Database Resource ​

If you want to adopt an existing database resource instead of creating a new one, you can specify the adopt option.

ts
const adoptDatabase = await AWS.Lightsail.Database("adoptDatabase", {
  RelationalDatabaseName: "existingDB",
  RelationalDatabaseBlueprintId: "mysql_5_7",
  MasterDatabaseName: "primaryDB",
  MasterUsername: "adminUser",
  MasterUserPassword: "SecurePassword789",
  RelationalDatabaseBundleId: "medium_2_0",
  adopt: true
});