Database
Provides a Lightsail Database. Amazon Lightsail is a service to provide easy virtual private servers with custom software already setup. See What is Amazon Lightsail? for more information.
Note: Lightsail is currently only supported in a limited number of AWS Regions, please see "Regions and Availability Zones" for more details
Example Usage
Basic mysql blueprint
import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";
const test = new aws.lightsail.Database("test", {
relationalDatabaseName: "test",
availabilityZone: "us-east-1a",
masterDatabaseName: "testdatabasename",
masterPassword: "testdatabasepassword",
masterUsername: "test",
blueprintId: "mysql_8_0",
bundleId: "micro_1_0",
});import pulumi
import pulumi_aws as aws
test = aws.lightsail.Database("test",
relational_database_name="test",
availability_zone="us-east-1a",
master_database_name="testdatabasename",
master_password="testdatabasepassword",
master_username="test",
blueprint_id="mysql_8_0",
bundle_id="micro_1_0")using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;
return await Deployment.RunAsync(() =>
{
var test = new Aws.LightSail.Database("test", new()
{
RelationalDatabaseName = "test",
AvailabilityZone = "us-east-1a",
MasterDatabaseName = "testdatabasename",
MasterPassword = "testdatabasepassword",
MasterUsername = "test",
BlueprintId = "mysql_8_0",
BundleId = "micro_1_0",
});
});package main
import (
"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lightsail"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := lightsail.NewDatabase(ctx, "test", &lightsail.DatabaseArgs{
RelationalDatabaseName: pulumi.String("test"),
AvailabilityZone: pulumi.String("us-east-1a"),
MasterDatabaseName: pulumi.String("testdatabasename"),
MasterPassword: pulumi.String("testdatabasepassword"),
MasterUsername: pulumi.String("test"),
BlueprintId: pulumi.String("mysql_8_0"),
BundleId: pulumi.String("micro_1_0"),
})
if err != nil {
return err
}
return nil
})
}package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.lightsail.Database;
import com.pulumi.aws.lightsail.DatabaseArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var test = new Database("test", DatabaseArgs.builder()
.relationalDatabaseName("test")
.availabilityZone("us-east-1a")
.masterDatabaseName("testdatabasename")
.masterPassword("testdatabasepassword")
.masterUsername("test")
.blueprintId("mysql_8_0")
.bundleId("micro_1_0")
.build());
}
}resources:
test:
type: aws:lightsail:Database
properties:
relationalDatabaseName: test
availabilityZone: us-east-1a
masterDatabaseName: testdatabasename
masterPassword: testdatabasepassword
masterUsername: test
blueprintId: mysql_8_0
bundleId: micro_1_0Basic postrgres blueprint
import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";
const test = new aws.lightsail.Database("test", {
relationalDatabaseName: "test",
availabilityZone: "us-east-1a",
masterDatabaseName: "testdatabasename",
masterPassword: "testdatabasepassword",
masterUsername: "test",
blueprintId: "postgres_12",
bundleId: "micro_1_0",
});import pulumi
import pulumi_aws as aws
test = aws.lightsail.Database("test",
relational_database_name="test",
availability_zone="us-east-1a",
master_database_name="testdatabasename",
master_password="testdatabasepassword",
master_username="test",
blueprint_id="postgres_12",
bundle_id="micro_1_0")using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;
return await Deployment.RunAsync(() =>
{
var test = new Aws.LightSail.Database("test", new()
{
RelationalDatabaseName = "test",
AvailabilityZone = "us-east-1a",
MasterDatabaseName = "testdatabasename",
MasterPassword = "testdatabasepassword",
MasterUsername = "test",
BlueprintId = "postgres_12",
BundleId = "micro_1_0",
});
});package main
import (
"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lightsail"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := lightsail.NewDatabase(ctx, "test", &lightsail.DatabaseArgs{
RelationalDatabaseName: pulumi.String("test"),
AvailabilityZone: pulumi.String("us-east-1a"),
MasterDatabaseName: pulumi.String("testdatabasename"),
MasterPassword: pulumi.String("testdatabasepassword"),
MasterUsername: pulumi.String("test"),
BlueprintId: pulumi.String("postgres_12"),
BundleId: pulumi.String("micro_1_0"),
})
if err != nil {
return err
}
return nil
})
}package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.lightsail.Database;
import com.pulumi.aws.lightsail.DatabaseArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var test = new Database("test", DatabaseArgs.builder()
.relationalDatabaseName("test")
.availabilityZone("us-east-1a")
.masterDatabaseName("testdatabasename")
.masterPassword("testdatabasepassword")
.masterUsername("test")
.blueprintId("postgres_12")
.bundleId("micro_1_0")
.build());
}
}resources:
test:
type: aws:lightsail:Database
properties:
relationalDatabaseName: test
availabilityZone: us-east-1a
masterDatabaseName: testdatabasename
masterPassword: testdatabasepassword
masterUsername: test
blueprintId: postgres_12
bundleId: micro_1_0Custom backup and maintenance windows
Below is an example that sets a custom backup and maintenance window. Times are specified in UTC. This example will allow daily backups to take place between 16:00 and 16:30 each day. This example also requires any maintiance tasks (anything that would cause an outage, including changing some attributes) to take place on Tuesdays between 17:00 and 17:30. An action taken against this database that would cause an outage will wait until this time window to make the requested changes.
import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";
const test = new aws.lightsail.Database("test", {
relationalDatabaseName: "test",
availabilityZone: "us-east-1a",
masterDatabaseName: "testdatabasename",
masterPassword: "testdatabasepassword",
masterUsername: "test",
blueprintId: "postgres_12",
bundleId: "micro_1_0",
preferredBackupWindow: "16:00-16:30",
preferredMaintenanceWindow: "Tue:17:00-Tue:17:30",
});import pulumi
import pulumi_aws as aws
test = aws.lightsail.Database("test",
relational_database_name="test",
availability_zone="us-east-1a",
master_database_name="testdatabasename",
master_password="testdatabasepassword",
master_username="test",
blueprint_id="postgres_12",
bundle_id="micro_1_0",
preferred_backup_window="16:00-16:30",
preferred_maintenance_window="Tue:17:00-Tue:17:30")using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;
return await Deployment.RunAsync(() =>
{
var test = new Aws.LightSail.Database("test", new()
{
RelationalDatabaseName = "test",
AvailabilityZone = "us-east-1a",
MasterDatabaseName = "testdatabasename",
MasterPassword = "testdatabasepassword",
MasterUsername = "test",
BlueprintId = "postgres_12",
BundleId = "micro_1_0",
PreferredBackupWindow = "16:00-16:30",
PreferredMaintenanceWindow = "Tue:17:00-Tue:17:30",
});
});package main
import (
"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lightsail"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := lightsail.NewDatabase(ctx, "test", &lightsail.DatabaseArgs{
RelationalDatabaseName: pulumi.String("test"),
AvailabilityZone: pulumi.String("us-east-1a"),
MasterDatabaseName: pulumi.String("testdatabasename"),
MasterPassword: pulumi.String("testdatabasepassword"),
MasterUsername: pulumi.String("test"),
BlueprintId: pulumi.String("postgres_12"),
BundleId: pulumi.String("micro_1_0"),
PreferredBackupWindow: pulumi.String("16:00-16:30"),
PreferredMaintenanceWindow: pulumi.String("Tue:17:00-Tue:17:30"),
})
if err != nil {
return err
}
return nil
})
}package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.lightsail.Database;
import com.pulumi.aws.lightsail.DatabaseArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var test = new Database("test", DatabaseArgs.builder()
.relationalDatabaseName("test")
.availabilityZone("us-east-1a")
.masterDatabaseName("testdatabasename")
.masterPassword("testdatabasepassword")
.masterUsername("test")
.blueprintId("postgres_12")
.bundleId("micro_1_0")
.preferredBackupWindow("16:00-16:30")
.preferredMaintenanceWindow("Tue:17:00-Tue:17:30")
.build());
}
}resources:
test:
type: aws:lightsail:Database
properties:
relationalDatabaseName: test
availabilityZone: us-east-1a
masterDatabaseName: testdatabasename
masterPassword: testdatabasepassword
masterUsername: test
blueprintId: postgres_12
bundleId: micro_1_0
preferredBackupWindow: 16:00-16:30
preferredMaintenanceWindow: Tue:17:00-Tue:17:30Final Snapshots
To enable creating a final snapshot of your database on deletion, use the final_snapshot_name argument to provide a name to be used for the snapshot.
import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";
const test = new aws.lightsail.Database("test", {
relationalDatabaseName: "test",
availabilityZone: "us-east-1a",
masterDatabaseName: "testdatabasename",
masterPassword: "testdatabasepassword",
masterUsername: "test",
blueprintId: "postgres_12",
bundleId: "micro_1_0",
preferredBackupWindow: "16:00-16:30",
preferredMaintenanceWindow: "Tue:17:00-Tue:17:30",
finalSnapshotName: "MyFinalSnapshot",
});import pulumi
import pulumi_aws as aws
test = aws.lightsail.Database("test",
relational_database_name="test",
availability_zone="us-east-1a",
master_database_name="testdatabasename",
master_password="testdatabasepassword",
master_username="test",
blueprint_id="postgres_12",
bundle_id="micro_1_0",
preferred_backup_window="16:00-16:30",
preferred_maintenance_window="Tue:17:00-Tue:17:30",
final_snapshot_name="MyFinalSnapshot")using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;
return await Deployment.RunAsync(() =>
{
var test = new Aws.LightSail.Database("test", new()
{
RelationalDatabaseName = "test",
AvailabilityZone = "us-east-1a",
MasterDatabaseName = "testdatabasename",
MasterPassword = "testdatabasepassword",
MasterUsername = "test",
BlueprintId = "postgres_12",
BundleId = "micro_1_0",
PreferredBackupWindow = "16:00-16:30",
PreferredMaintenanceWindow = "Tue:17:00-Tue:17:30",
FinalSnapshotName = "MyFinalSnapshot",
});
});package main
import (
"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lightsail"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := lightsail.NewDatabase(ctx, "test", &lightsail.DatabaseArgs{
RelationalDatabaseName: pulumi.String("test"),
AvailabilityZone: pulumi.String("us-east-1a"),
MasterDatabaseName: pulumi.String("testdatabasename"),
MasterPassword: pulumi.String("testdatabasepassword"),
MasterUsername: pulumi.String("test"),
BlueprintId: pulumi.String("postgres_12"),
BundleId: pulumi.String("micro_1_0"),
PreferredBackupWindow: pulumi.String("16:00-16:30"),
PreferredMaintenanceWindow: pulumi.String("Tue:17:00-Tue:17:30"),
FinalSnapshotName: pulumi.String("MyFinalSnapshot"),
})
if err != nil {
return err
}
return nil
})
}package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.lightsail.Database;
import com.pulumi.aws.lightsail.DatabaseArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var test = new Database("test", DatabaseArgs.builder()
.relationalDatabaseName("test")
.availabilityZone("us-east-1a")
.masterDatabaseName("testdatabasename")
.masterPassword("testdatabasepassword")
.masterUsername("test")
.blueprintId("postgres_12")
.bundleId("micro_1_0")
.preferredBackupWindow("16:00-16:30")
.preferredMaintenanceWindow("Tue:17:00-Tue:17:30")
.finalSnapshotName("MyFinalSnapshot")
.build());
}
}resources:
test:
type: aws:lightsail:Database
properties:
relationalDatabaseName: test
availabilityZone: us-east-1a
masterDatabaseName: testdatabasename
masterPassword: testdatabasepassword
masterUsername: test
blueprintId: postgres_12
bundleId: micro_1_0
preferredBackupWindow: 16:00-16:30
preferredMaintenanceWindow: Tue:17:00-Tue:17:30
finalSnapshotName: MyFinalSnapshotApply Immediately
To enable applying changes immediately instead of waiting for a maintiance window, use the apply_immediately argument.
import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";
const test = new aws.lightsail.Database("test", {
relationalDatabaseName: "test",
availabilityZone: "us-east-1a",
masterDatabaseName: "testdatabasename",
masterPassword: "testdatabasepassword",
masterUsername: "test",
blueprintId: "postgres_12",
bundleId: "micro_1_0",
applyImmediately: true,
});import pulumi
import pulumi_aws as aws
test = aws.lightsail.Database("test",
relational_database_name="test",
availability_zone="us-east-1a",
master_database_name="testdatabasename",
master_password="testdatabasepassword",
master_username="test",
blueprint_id="postgres_12",
bundle_id="micro_1_0",
apply_immediately=True)using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;
return await Deployment.RunAsync(() =>
{
var test = new Aws.LightSail.Database("test", new()
{
RelationalDatabaseName = "test",
AvailabilityZone = "us-east-1a",
MasterDatabaseName = "testdatabasename",
MasterPassword = "testdatabasepassword",
MasterUsername = "test",
BlueprintId = "postgres_12",
BundleId = "micro_1_0",
ApplyImmediately = true,
});
});package main
import (
"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lightsail"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := lightsail.NewDatabase(ctx, "test", &lightsail.DatabaseArgs{
RelationalDatabaseName: pulumi.String("test"),
AvailabilityZone: pulumi.String("us-east-1a"),
MasterDatabaseName: pulumi.String("testdatabasename"),
MasterPassword: pulumi.String("testdatabasepassword"),
MasterUsername: pulumi.String("test"),
BlueprintId: pulumi.String("postgres_12"),
BundleId: pulumi.String("micro_1_0"),
ApplyImmediately: pulumi.Bool(true),
})
if err != nil {
return err
}
return nil
})
}package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.lightsail.Database;
import com.pulumi.aws.lightsail.DatabaseArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var test = new Database("test", DatabaseArgs.builder()
.relationalDatabaseName("test")
.availabilityZone("us-east-1a")
.masterDatabaseName("testdatabasename")
.masterPassword("testdatabasepassword")
.masterUsername("test")
.blueprintId("postgres_12")
.bundleId("micro_1_0")
.applyImmediately(true)
.build());
}
}resources:
test:
type: aws:lightsail:Database
properties:
relationalDatabaseName: test
availabilityZone: us-east-1a
masterDatabaseName: testdatabasename
masterPassword: testdatabasepassword
masterUsername: test
blueprintId: postgres_12
bundleId: micro_1_0
applyImmediately: trueBlueprint Ids
A list of all available Lightsail Blueprints for Relational Databases the aws lightsail get-relational-database-blueprints aws cli command.
Examples
mysql_8_0postgres_12
Prefix
A Blueprint ID starts with a prefix of the engine type.
Suffix
A Blueprint ID has a sufix of the engine version.
Bundles
A list of all available Lightsail Bundles for Relational Databases the aws lightsail get-relational-database-bundles aws cli command.
Examples
small_1_0small_ha_1_0large_1_0large_ha_1_0
Prefix
A Bundle ID starts with one of the below size prefixes:
micro_small_medium_large_
Infixes (Optional for HA Database)
A Bundle Id can have the following infix added in order to use the HA option of the selected bundle.
ha_
Suffix
A Bundle ID ends with one of the following suffix: 1_0
Import
Using pulumi import, import Lightsail Databases using their name. For example:
$ pulumi import aws:lightsail/database:Database foo 'bar'Properties
Determines whether a final database snapshot is created before your database is deleted. If true is specified, no database snapshot is created. If false is specified, a database snapshot is created before your database is deleted. You must specify the final relational database snapshot name parameter if the skip final snapshot parameter is false.