How do I use AWS CLI commands to manage my snapshots and create backups for my Lightsail instances?
I want to use AWS Command Line Interface (AWS CLI) commands to manage my snapshots and create backups for my Amazon Lightsail instances.
Resolution
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. You can use the default, or append --output json to the commands to receive the output as shown in the following examples. For more information, see Control command output from the AWS CLI.
- The AWS CLI output displays timestamps in Unix Epoch time. Use a third-party converter to convert the timestamp, such as epochconverter.com.
Manage manual backups
Use AWS CLI commands to manage manual backups for your instance and list available snapshots.
Create a manual backup for a Lightsail instance
Run the create-instance-snapshot command to create a snapshot of the Lightsail instance. The following example creates a snapshot of the instance SnapshotTestLightsailInstance1 in the eu-west-1 AWS Region:
# aws lightsail create-instance-snapshot --instance-name TestLightsailInstance1 --instance-snapshot-name SnapshotTestLightsailInstance1{ "operations": [ { "id": "d3196be7-3dc6-4508-b335-16ce45f11c90", "resourceName": "SnapshotTestLightsailInstance1", "resourceType": "InstanceSnapshot", "createdAt": 1602180831.638, "location": { "availabilityZone": "all", "regionName": "eu-west-1" }, "isTerminal": false, "operationDetails": "TestLightsailInstance1", "operationType": "CreateInstanceSnapshot", "status": "Started", "statusChangedAt": 1602180831.638 }, { "id": "df237a33-bca9-4fc3-8f46-ea5d12606f5c", "resourceName": "TestLightsailInstance1", "resourceType": "Instance", "createdAt": 1602180831.638, "location": { "availabilityZone": "eu-west-1a", "regionName": "eu-west-1" }, "isTerminal": false, "operationDetails": "SnapshotTestLightsailInstance1", "operationType": "CreateInstanceSnapshot", "status": "Started", "statusChangedAt": 1602180831.638 } ] }
Note: Replace instance-snapshot-name, instance-name, and region with your values.
List available snapshots
Run the get-instance-snapshots command to list all snapshots for your Lightsail instances. The following example shows details of available snapshots in eu-west-1 Region:
# aws lightsail get-instance-snapshots --region eu-west-1 --query 'instanceSnapshots[].{name:name,createdAt:createdAt,resourceType:resourceType,state:state,fromInstanceName:fromInstanceName,sizeInGb:sizeInGb}' --output table ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | GetInstanceSnapshots | +----------------+-----------------------------------------+------------------------------------------------------------------------------------------------------------+-------------------+-----------+-------------+ | createdAt | fromInstanceName | name | resourceType | sizeInGb | state | +----------------+-----------------------------------------+------------------------------------------------------------------------------------------------------------+-------------------+-----------+-------------+ | 1602180831.638| TestLightsailInstance1 | SnapshotTestLightsailInstance1 | InstanceSnapshot | 40 | available | +----------------+-----------------------------------------+------------------------------------------------------------------------------------------------------------+-------------------+-----------+-------------+
Note: Replace region with your Region.
Manage automatic backups
Use AWS CLI commands to verify if automatic snapshots are turned on for your instances, and turn on automatic snapshots. You can also list automatic snapshots, and create a new instance from a backup with a higher bundle size or higher Lightsail plan.
Verify if automatic snapshots are turned on for your instances
Run the following command to verify if automatic snapshots are turned on for your instance and to show the defined schedule:
# aws lightsail get-instances --region eu-west-1 --query 'instances[].{addOns:addOns,name:name,publicIpAddress:publicIpAddress,AutoMatciSnapshotStatus:(addOns[].status),Schedule:(addOns[].snapshotTimeOfDay)}' --output text| grep -w "TestLightsailInstance1"['Enabled'] ['20:00'] [{'name': 'AutoSnapshot', 'status': 'Enabled', 'snapshotTimeOfDay': '20:00'}] TestLightsailInstance1 3.250.xx.xx
Note: Replace TestLightsailInstance1 with your instance name and region with your Region.
Turn on automatic snapshots
Run the enable-add-on command to turn on automatic snapshots for your Lightsail instances. The following example creates daily automatic snapshots that are set to an hourly increment in UTC (08PM UTC):
# aws lightsail enable-add-on --region eu-west-1 --resource-name TestLightsailInstance1 --add-on-request addOnType=AutoSnapshot,autoSnapshotAddOnRequest={snapshotTimeOfDay=20:00}{ "operations": [ { "id": "823bb162-9848-4897-b845-8f41c375801a", "resourceName": "TestLightsailInstance1", "resourceType": "Instance", "createdAt": 1602181856.652, "location": { "availabilityZone": "eu-west-1", "regionName": "eu-west-1" }, "isTerminal": false, "operationDetails": "EnableAddOn - AutoSnapshot", "operationType": "EnableAddOn", "status": "Started" } ] }
Note: Replace resource-name, snapshotTimeOfDay, and region with your values.
List automatic snapshots and create a new instance from the backup with higher bundle size or higher Lightsail plan
Run the get-auto-snapshots command to list all available automatic snapshots for your Lightsail instances or disk. The following example shows details of available snapshots for the instance TestLightsailInstance1:
# aws lightsail get-auto-snapshots --region eu-west-1 --resource-name TestLightsailInstance1{ "resourceName": "TestLightsailInstance1", "resourceType": "Instance", "autoSnapshots": [ { "date": "2020-10-08", "createdAt": 1602188663.0, "status": "Success", "fromAttachedDisks": [] } ] }
Note: Replace resource-name and region with your values.
Run the create-instances-from-snapshot command to create Lightsail instances from a manual or automatic backup. The following example uses a specific backup and a higher sized bundle to create an instance in the eu-west-1 Region:
# aws lightsail create-instances-from-snapshot --region eu-west-1 --instance-snapshot-name SnapshotTestLightsailInstance1 --instance-names RestoredTestLightsailInstance1-New --availability-zone eu-west-1a --bundle-id large_2_0{ "operations": [ { "id": "09f7d1bb-90f4-48dc-b304-543499e11208", "resourceName": "RestoredTestLightsailInstance1-New", "resourceType": "Instance", "createdAt": 1602182374.625, "location": { "availabilityZone": "eu-west-1a", "regionName": "eu-west-1" }, "isTerminal": false, "operationType": "CreateInstancesFromSnapshot", "status": "Started", "statusChangedAt": 1602182374.625 } ] }
Note: Replace instance-snapshot-name, instance-names, bundle-id, and region with your values.
The following is an example of the details for the Lightsail instance RestoredTestLightsailInstance1-New that you created:
# aws lightsail get-instances --region eu-west-1 --query 'instances[].{name:name,createdAt:createdAt,blueprintId:blueprintId,blueprintName:blueprintName,publicIpAddress:publicIpAddress}' --output table |grep -i RestoredTestLightsailInstance1-New | wordpress | WordPress | 1602182374.625 | RestoredTestLightsailInstance1-New | 34.247.xx.xx |
Related information
AWS CLI Command Reference for Lightsail
How can I manage my Lightsail instance using AWS CLI commands?
Relevant content
- asked a year agolg...
- asked 3 years agolg...
- asked a year agolg...
- asked 2 years agolg...
- AWS OFFICIALUpdated 7 months ago
- AWS OFFICIALUpdated 3 years ago
- AWS OFFICIALUpdated 6 months ago
- AWS OFFICIALUpdated a year ago