Resource: awsLightsailInstance
Provides a Lightsail Instance. 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 in Amazon Lightsail" for more details
Example Usage
Basic Usage
/*Provider bindings are generated by running cdktf get.
See https://cdk.tf/provider-generation for more details.*/
import * as aws from "./.gen/providers/aws";
new aws.lightsailInstance.LightsailInstance(this, "gitlab_test", {
availabilityZone: "us-east-1b",
blueprintId: "amazon_linux_2",
bundleId: "nano_1_0",
keyPairName: "some_key_name",
name: "custom_gitlab",
tags: {
foo: "bar",
},
});
Example With User Data
Lightsail user data is handled differently than ec2 user data. Lightsail user data only accepts a single lined string. The below example shows installing apache and creating the index page.
/*Provider bindings are generated by running cdktf get.
See https://cdk.tf/provider-generation for more details.*/
import * as aws from "./.gen/providers/aws";
new aws.lightsailInstance.LightsailInstance(this, "custom", {
availabilityZone: "us-east-1b",
blueprintId: "amazon_linux_2",
bundleId: "nano_1_0",
name: "custom",
userData:
"sudo yum install -y httpd && sudo systemctl start httpd && sudo systemctl enable httpd && echo '<h1>Deployed via Terraform</h1>' | sudo tee /var/www/html/index.html",
});
Enable Auto Snapshots
/*Provider bindings are generated by running cdktf get.
See https://cdk.tf/provider-generation for more details.*/
import * as aws from "./.gen/providers/aws";
new aws.lightsailInstance.LightsailInstance(this, "test", {
addOn: {
snapshotTime: "06:00",
status: "Enabled",
type: "AutoSnapshot",
},
availabilityZone: "us-east-1b",
blueprintId: "amazon_linux_2",
bundleId: "nano_1_0",
name: "custom_instance",
tags: {
foo: "bar",
},
});
Argument Reference
The following arguments are supported:
name- (Required) The name of the Lightsail Instance. Names be unique within each AWS Region in your Lightsail account.availabilityZone- (Required) The Availability Zone in which to create your instance (see list below)blueprintId- (Required) The ID for a virtual private server image. A list of available blueprint IDs can be obtained using the AWS CLI command:awsLightsailGetBlueprintsbundleId- (Required) The bundle of specification information (see list below)keyPairName- (Optional) The name of your key pair. Created in the Lightsail console (cannot useawsKeyPairat this time)userData- (Optional) Single lined launch script as a string to configure server with additional user dataipAddressType- (Optional) The IP address type of the Lightsail Instance. Valid Values:dualstack|ipv4.addOn- (Optional) The add on configuration for the instance. Detailed below.tags- (Optional) A map of tags to assign to the resource. To create a key-only tag, use an empty string as the value. If configured with a providerdefaultTagsconfiguration block present, tags with matching keys will overwrite those defined at the provider-level.
addOn
Defines the add on configuration for the instance. The addOn configuration block supports the following arguments:
type- (Required) The add-on type. There is currently only one valid typeautoSnapshot.snapshotTime- (Required) The daily time when an automatic snapshot will be created. Must be in HH:00 format, and in an hourly increment and specified in Coordinated Universal Time (UTC). The snapshot will be automatically created between the time specified and up to 45 minutes after.status- (Required) The status of the add on. Valid Values:enabled,disabled.
Availability Zones
Lightsail currently supports the following Availability Zones (e.g., usEast1A):
apNortheast1{a,c,d}apNortheast2{a,c}apSouth1{a,b}apSoutheast1{a,b,c}apSoutheast2{a,b,c}caCentral1{a,b}euCentral1{a,b,c}euWest1{a,b,c}euWest2{a,b,c}euWest3{a,b,c}usEast1{a,b,c,d,e,f}usEast2{a,b,c}usWest2{a,b,c}
Bundles
Lightsail currently supports the following Bundle IDs (e.g., an instance in apNortheast1 would use small20):
Prefix
A Bundle ID starts with one of the below size prefixes:
nanomicrosmallmediumlargexlarge2Xlarge
Suffix
A Bundle ID ends with one of the following suffixes depending on Availability Zone:
- ap-northeast-1:
2_0 - ap-northeast-2:
2_0 - ap-south-1:
2_1 - ap-southeast-1:
2_0 - ap-southeast-2:
2_2 - ca-central-1:
2_0 - eu-central-1:
2_0 - eu-west-1:
2_0 - eu-west-2:
2_0 - eu-west-3:
2_0 - us-east-1:
2_0 - us-east-2:
2_0 - us-west-2:
2_0
Attributes Reference
In addition to all arguments above, the following attributes are exported:
id- The ARN of the Lightsail instance (matchesarn).arn- The ARN of the Lightsail instance (matchesid).createdAt- The timestamp when the instance was created.cpuCount- The number of vCPUs the instance has.ramSize- The amount of RAM in GB on the instance (e.g., 1.0).ipv6Address- (Deprecated) The first IPv6 address of the Lightsail instance. Useipv6Addressesattribute instead.ipv6Addresses- List of IPv6 addresses for the Lightsail instance.privateIpAddress- The private IP address of the instance.publicIpAddress- The public IP address of the instance.isStaticIp- A Boolean value indicating whether this instance has a static IP assigned to it.username- The user name for connecting to the instance (e.g., ec2-user).tagsAll- A map of tags assigned to the resource, including those inherited from the providerdefaultTagsconfiguration block.
Import
Lightsail Instances can be imported using their name, e.g.,