How can I use AWS CLI commands to manage my Lightsail instance?
I want to use AWS Command Line Interface (AWS CLI) commands to manage my Amazon Lightsail instances.
Short description
The following are common scenarios to use AWS CLI commands on your Lightsail instances:
- To list all the Lightsail plans (bundles) and blueprints available in an AWS Region
- To use a specific bundle and blueprint to create a Lightsail instance
- To list all the Lightsail Instances in a particular Region
- To allocate a static IP address, and then attach it to the instance and verify it
Note:
- If you receive errors when you run AWS CLI commands, then see Troubleshoot AWS CLI errors. Also, make sure that you're using the most recent AWS CLI version.
- JSON is the default AWS CLI output. Or, you can append --output json to the commands to receive the output shown in the following examples. For more information, see Control command output from the AWS CLI.
- The AWS CLI command output displays timestamps in Unix Epoch time. Use one of the following methods to convert the timestamp into UTC.
macOS
Remove the decimal point from the timestamp and any digits to the right of the decimal point. Then, run the following command:
# date -r 1602175741 -uThu Oct 8 16:49:01 UTC 2020
Linux
Run the following command:
# date -d @1602175741.603 -uThu Oct 8 16:49:01 UTC 2020
Windows
Use a converter to convert the timestamp, such as epochconverter.com.
Resolution
List the Lightsail bundles and blueprints available in a Region
Run the get-bundles command to list bundles that are available for purchase in your Region. The following is an example output:
# aws lightsail get-bundles --region eu-west-1 --query 'bundles[].{price:price,cpuCount:cpuCount,ramSizeInGb:ramSizeInGb,diskSizeInGb:diskSizeInGb,bundleId:bundleId,instanceType:instanceType,supportedPlatforms:supportedPlatforms[0]}' --output table --------------------------------------------------------------------------------------------------------------- | GetBundles | +-----------------+-----------+---------------+---------------+--------+---------------+----------------------+ | bundleId | cpuCount | diskSizeInGb | instanceType | price | ramSizeInGb | supportedPlatforms | +-----------------+-----------+---------------+---------------+--------+---------------+----------------------+ | nano_2_0 | 1 | 20 | nano | 3.5 | 0.5 | LINUX_UNIX | | small_2_0 | 1 | 60 | small | 10.0 | 2.0 | LINUX_UNIX | | nano_win_2_0 | 1 | 30 | nano | 8.0 | 0.5 | WINDOWS | | micro_win_2_0 | 1 | 40 | micro | 12.0 | 1.0 | WINDOWS | +-----------------+-----------+---------------+---------------+--------+---------------+----------------------+
Note: Replace eu-west-1 with your Region.
Run the get-blueprints command to list all images or blueprints in your Region. The following is an example output:
# aws lightsail get-blueprints --region eu-west-1 --query 'blueprints[].{blueprintId:blueprintId,name:name,group:group,productUrl:productUrl,platform:platform}' --output table --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | GetBlueprints | +--------------------------------------+-----------------------+--------------------------------+-------------+-----------------------------------------------------+ | blueprintId | group | name | platform | productUrl | +--------------------------------------+-----------------------+--------------------------------+-------------+-----------------------------------------------------+ | windows_server_2019 | windows_2019 | Windows Server 2019 | WINDOWS | https://aws.amazon.com/marketplace/pp/B07QZ4XZ8F | | windows_server_2016 | windows_2016 | Windows Server 2016 | WINDOWS | https://aws.amazon.com/marketplace/pp/B01M7SJEU7 | | amazon_linux_2 | amazon_linux_2 | Amazon Linux 2 | LINUX_UNIX | https://aws.amazon.com/amazon-linux-2/ | | amazon_linux | amazon-linux | Amazon Linux | LINUX_UNIX | https://aws.amazon.com/marketplace/pp/B00CIYTQTC | | ubuntu_18_04 | ubuntu_18 | Ubuntu | LINUX_UNIX | https://aws.amazon.com/marketplace/pp/B07CQ33QKV | | debian_10 | debian_10 | Debian | LINUX_UNIX | https://aws.amazon.com/marketplace/pp/B0859NK4HC | +--------------------------------------+-----------------------+--------------------------------+-------------+-----------------------------------------------------+
Note: Replace eu-west-1 with your Region.
Filter the blueprints for the platform that you need. For example, the following command filters for blueprints with the Linux/Unix Platform OS:
# aws lightsail get-blueprints --query 'blueprints[?type==`os`&&platform==`LINUX_UNIX`].{name:name,version:version}'--output table -------------------------------------------- | GetBlueprints | +-----------------+------------------------+ | name | version | +-----------------+------------------------+ | Amazon Linux 2 | 2.0.20200917.0 | | Amazon Linux | 2018.03.0.20200918.0 | | Ubuntu | 20.04 LTS | | Debian | 10.5 | | openSUSE | 15.1 | | CentOS | 7 1901-01 | +-----------------+------------------------+
Use a specific bundle and blueprint to create a Lightsail instance
- Run the get-blueprint command. The following example gets a WordPress blueprint.
Note: Replace eu-west-1 with your Region and the WordPress information with your blueprint information.# aws lightsail get-blueprints --region eu-west-1 --query 'blueprints[].{blueprintId:blueprintId,name:name,group:group,productUrl:productUrl,platform:platform}' --output table |grep -i wordpress | wordpress | wordpress | WordPress | LINUX_UNIX | https://aws.amazon.com/marketplace/pp/B00NN8Y43U | | wordpress_multisite | wordpress_multisite | WordPress Multisite | LINUX_UNIX | https://aws.amazon.com/marketplace/pp/B00NN8XE6S |
- Run the create-instances command to create Amazon Lightsail Instances. The following example uses a WordPress blueprint and the micro_2_o bundle to create an Amazon Lightsail instance in the eu-west-1 Region.
Note: Replace instance-names, blueprint-id, bundle-id, and region with your values. To use a single API call to create multiple instances, specify parameters with --instance-names, such as LightsailInstance1 and LightsailInstance2 . The following example uses a WordPress blueprint and the micro_2_0 bundle to create two Lightsail instances in the eu-west-1 Region.# aws lightsail create-instances --region eu-west-1 --instance-names MyNewInstance --availability-zone eu-west-1a --blueprint-id wordpress --bundle-id micro_2_0 { "operations": [ { "id": "003757e7-0880-4162-9912-211d4756081e", "resourceName": "MyNewInstance", "resourceType": "Instance", "createdAt": 1602175452.334, "location": { "availabilityZone": "eu-west-1a", "regionName": "eu-west-1" }, "isTerminal": false, "operationType": "CreateInstance", "status": "Started", "statusChangedAt": 1602175452.334 } ] }
# aws lightsail create-instances --region eu-west-1 --instance-names {"TestLightsailInstance1","TestLightsailInstance2"} --availability-zone eu-west-1a --blueprint-id wordpress --bundle-id micro_2_0 { "operations": [ { "id": "8a15b195-9a20-4d79-ad1d-6e85557ae94d", "resourceName": "TestLightsailInstance1", "resourceType": "Instance", "createdAt": 1602175741.602, "location": { "availabilityZone": "eu-west-1a", "regionName": "eu-west-1" }, "isTerminal": false, "operationType": "CreateInstance", "status": "Started", "statusChangedAt": 1602175741.602 }, { "id": "a006513b-0e25-4802-ab33-671a40bf5a92", "resourceName": "TestLightsailInstance2", "resourceType": "Instance", "createdAt": 1602175741.603, "location": { "availabilityZone": "eu-west-1a", "regionName": "eu-west-1" }, "isTerminal": false, "operationType": "CreateInstance", "status": "Started", "statusChangedAt": 1602175741.603 } ] }
List all Lightsail instances in a Region
Run the get-instances command to display Lightsail instances in a specific Region. The following example shows the Lightsail instances in the eu-west-1 Region.
# aws lightsail get-instances --region eu-west-1 --query 'instances[].{name:name,createdAt:createdAt,blueprintId:blueprintId,blueprintName:blueprintName,publicIpAddress:publicIpAddress}' --output table --------------------------------------------------------------------------------------------------------------------- | GetInstances | +-----------------+----------------+-----------------+------------------------------------------+-------------------+ | blueprintId | blueprintName | createdAt | name | publicIpAddress | +-----------------+----------------+-----------------+------------------------------------------+-------------------+ | wordpress_4_9_8| WordPress | 1545700733.77 | WordPress-512MB-Ireland-1 | 63.33.xx.xx | | wordpress | WordPress | 1602175741.603 | TestLightsailInstance2 | 63.33.xx.xx | | wordpress | WordPress | 1602175741.602 | TestLightsailInstance1 | 54.7.xx.xx | | wordpress | WordPress | 1588098501.555 | WordPress-1 | 3.250.xx.xx | +-----------------+----------------+-----------------+------------------------------------------+-------------------+
Note: Replace region with your Region.
Allocate a Static IP and attach it to the Lightsail instance created
Note: The create-instances command creates a Lightsail instance with a public IP address. If you haven't created a static IP address for your instance, then Lightsail assigns a new public IP address whenever you stop or restart the instance.
- Run the allocate-static-ip command to allocate a fixed public address. The following example shows the allocation of a static IP named StaticIpForTestLightsailInstance1 in the eu-west-1 Region:
Note: Replace static-ip-name and region with your values.# aws lightsail allocate-static-ip --static-ip-name StaticIpForTestLightsailInstance1 --region eu-west-1 { "operations": [ { "id": "6471cedc-97f5-42d1-b35f-4f77c5f93242", "resourceName": "StaticIpForTestLightsailInstance1", "resourceType": "StaticIp", "createdAt": 1602180341.746, "location": { "availabilityZone": "all", "regionName": "eu-west-1" }, "isTerminal": true, "operationType": "AllocateStaticIp", "status": "Succeeded", "statusChangedAt": 1602180342.011 } ] }
- Run the get-static-ip command to display the value for allocated static IP addresses. The following example shows the allocation of a static IP 52.210.xx.xx named StaticIpForTestLightsailInstance1 in the eu-west-1 Region.
Note: Replace static-ip-name and region with your values.# aws lightsail get-static-ip --static-ip-name StaticIpForTestLightsailInstance1 --region eu-west-1 { "staticIp": { "name": "StaticIpForTestLightsailInstance1", "arn": "arn:aws:lightsail:eu-west-1:920893848407:StaticIp/16a97579-c51e-404c-96cc-5946528d12aa", "supportCode": "11178xxxxxxx/52.210.xx.xx", "createdAt": 1602180341.746, "location": { "availabilityZone": "all", "regionName": "eu-west-1" }, "resourceType": "StaticIp", "ipAddress": "52.210.xx.xx", "isAttached": false } }
- Run the attach-static-ip command. The following example shows the allocation of a static IP 52.210.xx.xx named StaticIpForTestLightsailInstance1 to the instance named TestLightsailInstance1 in the eu-west-1 Region.
Note: Replace static-ip-name, instance-name, and region with your values.# aws lightsail attach-static-ip --static-ip-name StaticIpForTestLightsailInstance1 --instance-name TestLightsailInstance1 --region eu-west-1 { "operations": [ { "id": "d9d2372f-b4b7-4838-99ae-c15f8ffb8332", "resourceName": "StaticIpForTestLightsailInstance1", "resourceType": "StaticIp", "createdAt": 1602180562.026, "location": { "availabilityZone": "all", "regionName": "eu-west-1" }, "isTerminal": true, "operationDetails": "TestLightsailInstance1", "operationType": "AttachStaticIp", "status": "Succeeded", "statusChangedAt": 1602180562.026 }, { "id": "131994d8-bd25-4b47-8d81-851224b168d1", "resourceName": "TestLightsailInstance1", "resourceType": "Instance", "createdAt": 1602180562.026, "location": { "availabilityZone": "eu-west-1a", "regionName": "eu-west-1" }, "isTerminal": true, "operationDetails": "StaticIpForTestLightsailInstance1", "operationType": "AttachStaticIp", "status": "Succeeded", "statusChangedAt": 1602180562.026 } ] }
- Run the get-instances command to verify that the static IP address correctly associated with your Lightsail instance.
# aws lightsail get-instances --region eu-west-1 --query 'instances[].{name:name,createdAt:createdAt,blueprintId:blueprintId,blueprintName:blueprintName,publicIpAddress:publicIpAddress,InstanceID:supportCode}' --output table --------------------------------------------------------------------------------------------------------------------------------------------------------- | GetInstances | +----------------------------------+------------------+----------------+-----------------+------------------------------------------+-------------------+ | InstanceID | blueprintId | blueprintName | createdAt | name | publicIpAddress | +----------------------------------+------------------+----------------+-----------------+------------------------------------------+-------------------+ | 11178xxxxxxx/i-09f6xxxx | wordpress | WordPress | 1602175741.602 | TestLightsailInstance1 | 52.210.xx.xx | +----------------------------------+------------------+----------------+-----------------+------------------------------------------+-------------------+
Related information
How do I use AWS CLI commands to manage my snapshots and create backups for my Lightsail instances?
How can I manage static IP addresses on my Lightsail instances using AWS CLI commands?
Turn on or turn off automatic snapshots for instances or disks in Amazon Lightsail
Relevant content
- asked a year agolg...
- asked 3 years agolg...
- asked 2 years agolg...
- asked 3 years agolg...
- AWS OFFICIALUpdated 3 years ago
- AWS OFFICIALUpdated 10 months ago
- AWS OFFICIALUpdated 9 months ago
- AWS OFFICIALUpdated 6 months ago
- AWS OFFICIALUpdated 4 months ago