Using the Amazon EBS Snapshot task in Bamboo

You can use the Amazon EBS Snapshot task to create, delete or backup snapshots of Amazon Elastic Block Store (EBS) volumes; in particular, the task provides backup management with retention handling and backup set correlation.

 



Configuration

Alternative solution via AWS CloudFormation

AWS has published a cloud native EBS Snapshot Scheduler solution that can be deployed into a single region with the AWS CloudFormation Stack task and then apply actions to Amazon EC2 instances in any AWS Region.

 

Changes to action names in release 2.10.3

As of release 2.10.3, there are two new API compatible EBS Snapshot actions and the former backup oriented actions have been renamed as follows to better reflect their scope (refer to https://utoolity.atlassian.net/browse/UAA-93 for details/background):

Old action name

New action name

Notes

Old action name

New action name

Notes

N/A

Create Snapshot(s)

New in 2.10.3

N/A

Delete Snapshot(s)

New in 2.10.3

Create Snapshot(s)

Grow Snapshot Backup Set

 

Delete Snapshot(s)

Prune Snapshot Backup Set

 

Backup Snapshot(s)

Grow & Prune Snapshot Backup Set

 

This is a name change only and no action needs to be taken: existing tasks simply use the new names now and their configuration remains unchanged.

 

To configure an Amazon EBS Snapshot task:

1. Navigate to the Tasks configuration tab for the job (this will be the default job if creating a new plan).

2. Click the name of an existing Amazon EBS Snapshot task, or click Add Task and then AmazonEBS Snapshot Task to create a new task.

3. Complete the following settings:

a. Common to all tasks

b. Actions supported by this task:

Create Snapshot(s)

Custom Variables

In addition to the the regular Bamboo Variable Substitution/Definition, the Create Snapshot(s) action's Description and Tags fields also support Injecting contextual entity variables into task configurations to ease composing unique names when targeting multiple EC2 instances at once. For example, you can refer to the source volume and add a timestamp to create the unique name ${utoolity.aws.volumeId}.${utoolity.iso8601.basicDateTime}.

These custom variables have task scope only (rather than the regular local scope aka job scope), i.e. they cease to exist when this task finishes.

Create Snapshot(s)

Custom Variables

In addition to the the regular Bamboo Variable Substitution/Definition, the Create Snapshot(s) action's Description and Tags fields also support Injecting contextual entity variables into task configurations to ease composing unique names when targeting multiple EC2 instances at once. For example, you can refer to the source volume and add a timestamp to create the unique name ${utoolity.aws.volumeId}.${utoolity.iso8601.basicDateTime}.

These custom variables have task scope only (rather than the regular local scope aka job scope), i.e. they cease to exist when this task finishes.

Volume ID

(Optional) Specify one or more volume IDs (semicolon separated).

Volume Filters

(Optional) Specify resource filters in JSON format. Insert fragments from the inline Examples dialog to get started.

Description

Describe the snapshot.

Don't fail for empty filter result

Check to prevent the task failing if no matching resources are found.

Tags

Specify tags in JSON format.

Delete Snapshot(s)



Snapshot ID

(Optional) Specify one or more snapshot IDs (semicolon separated).

Snapshot Filters

Optional) Specify resource filters in JSON format. Insert fragments from the inline Examples dialog to get started.

Don't fail for empty filter result

see Create Snapshot(s) above

Grow Snapshot Backup Set

Most use cases can be covered with the combined Grow & Prune Snapshot Backup Set instead, see below.

Volume ID

(Optional) Specify one or more volume IDs (semicolon separated).

Filters

(Optional) Specify resource filters in JSON format. Insert fragments from the inline Examples dialog to get started.

Don't fail for empty filter result

Check to prevent the task failing if no matching resources are found.

Backup Set

Specify the name of the backup set, which determines retention correlation.

Prune Snapshot Backup Set

Most use cases can be covered with the combined Grow & Prune Snapshot Backup Set instead, see below.

Volume ID

see Create Snapshot(s) above

Filters

see Create Snapshot(s) above

Don't fail for empty filter result

see Create Snapshot(s) above

Backup Set

see Grow Snapshot Backup Set above

Backup Retention

Specify the number of backups that should be retained.

Grow & Prune Snapshot Backup Set

Volume ID

see Create Snapshot(s) above

Filters

see Create Snapshot(s) above

Don't fail for empty filter result

see Create Snapshot(s) above

Backup Set

see Grow Snapshot Backup Set above

Backup Retention

see Prune Snapshot Backup Set above

 

Variables

Create Snapshot(s)

The logged bamboo.custom.aws.ec2.snapshot.first.tags outputs are example tags composed via custom variables and regular Bamboo variables, i.e. you need to specify any desired tags yourself as JSON input for the Tags field.

 

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 Creating common variables for 5 resources affected by task: ... bamboo.custom.aws.ec2.snapshot.resources: snap-8e464ffc;snap-df7ec7dc;snap-02e68305;snap-6af48d6d;snap-fa05c2e8 Creating resource variables for snapshot 'snap-8e464ffc': ... bamboo.custom.aws.ec2.snapshot.resources.snap-8e464ffc.Description: Snapshot created by TAWS-IT2103-EBS1-14 from vol-577ba418 at 20160412T231901Z ... bamboo.custom.aws.ec2.snapshot.resources.snap-8e464ffc.Encrypted: false ... bamboo.custom.aws.ec2.snapshot.resources.snap-8e464ffc.OwnerAlias: null ... bamboo.custom.aws.ec2.snapshot.resources.snap-8e464ffc.OwnerId: 309600995652 ... bamboo.custom.aws.ec2.snapshot.resources.snap-8e464ffc.Progress: 100% ... bamboo.custom.aws.ec2.snapshot.resources.snap-8e464ffc.SnapshotId: snap-8e464ffc ... bamboo.custom.aws.ec2.snapshot.resources.snap-8e464ffc.State: completed ... bamboo.custom.aws.ec2.snapshot.resources.snap-8e464ffc.StartTime: 20160412T231901Z ... bamboo.custom.aws.ec2.snapshot.resources.snap-8e464ffc.StateMessage: null ... bamboo.custom.aws.ec2.snapshot.resources.snap-8e464ffc.VolumeId: vol-577ba418 ... bamboo.custom.aws.ec2.snapshot.resources.snap-8e464ffc.VolumeSize: 8 ... bamboo.custom.aws.ec2.snapshot.resources.snap-8e464ffc.tags: basicTimeMilliseconds;basicDate;basicTime;basicDateTimeMilliseconds;volumeId;buildResultKey;basicDateTime ... bamboo.custom.aws.ec2.snapshot.resources.snap-8e464ffc.tags.basicTimeMilliseconds: 231901.788Z ... bamboo.custom.aws.ec2.snapshot.resources.snap-8e464ffc.tags.basicDate: 20160412 ... bamboo.custom.aws.ec2.snapshot.resources.snap-8e464ffc.tags.basicTime: 231901Z ... bamboo.custom.aws.ec2.snapshot.resources.snap-8e464ffc.tags.basicDateTimeMilliseconds: 20160412T231901.788Z ... bamboo.custom.aws.ec2.snapshot.resources.snap-8e464ffc.tags.volumeId: vol-577ba418 ... bamboo.custom.aws.ec2.snapshot.resources.snap-8e464ffc.tags.buildResultKey: TAWS-IT2103-EBS1-14 ... bamboo.custom.aws.ec2.snapshot.resources.snap-8e464ffc.tags.basicDateTime: 20160412T231901Z ... Creating common variables for first resource affected by task: Creating resource variables for snapshot 'snap-8e464ffc': ... bamboo.custom.aws.ec2.snapshot.first.Description: Snapshot created by TAWS-IT2103-EBS1-14 from vol-577ba418 at 20160412T231901Z ... bamboo.custom.aws.ec2.snapshot.first.Encrypted: false ... bamboo.custom.aws.ec2.snapshot.first.OwnerAlias: null ... bamboo.custom.aws.ec2.snapshot.first.OwnerId: 309600995652 ... bamboo.custom.aws.ec2.snapshot.first.Progress: 100% ... bamboo.custom.aws.ec2.snapshot.first.SnapshotId: snap-8e464ffc ... bamboo.custom.aws.ec2.snapshot.first.State: completed ... bamboo.custom.aws.ec2.snapshot.first.StartTime: 20160412T231901Z ... bamboo.custom.aws.ec2.snapshot.first.StateMessage: null ... bamboo.custom.aws.ec2.snapshot.first.VolumeId: vol-577ba418 ... bamboo.custom.aws.ec2.snapshot.first.VolumeSize: 8 ... bamboo.custom.aws.ec2.snapshot.first.tags: basicTimeMilliseconds;basicDate;basicTime;basicDateTimeMilliseconds;volumeId;buildResultKey;basicDateTime ... bamboo.custom.aws.ec2.snapshot.first.tags.basicTimeMilliseconds: 231901.788Z ... bamboo.custom.aws.ec2.snapshot.first.tags.basicDate: 20160412 ... bamboo.custom.aws.ec2.snapshot.first.tags.basicTime: 231901Z ... bamboo.custom.aws.ec2.snapshot.first.tags.basicDateTimeMilliseconds: 20160412T231901.788Z ... bamboo.custom.aws.ec2.snapshot.first.tags.volumeId: vol-577ba418 ... bamboo.custom.aws.ec2.snapshot.first.tags.buildResultKey: TAWS-IT2103-EBS1-14 ... bamboo.custom.aws.ec2.snapshot.first.tags.basicDateTime: 20160412T231901Z

Delete Snapshot(s)

N/A

Grow Snapshot Backup Set

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 12-Apr-2016 23:38:06 Creating common variables for 5 resources affected by task: ... bamboo.custom.aws.ec2.snapshot.resources: snap-77e5910a;snap-faf1958d;snap-71b69f69;snap-46860f5a;snap-2a8e5e3c Creating resource variables for snapshot 'snap-77e5910a': ... bamboo.custom.aws.ec2.snapshot.resources.snap-77e5910a.Description: Created by Bamboo EBS Snapshot Task from vol-b87ca3f7 ... bamboo.custom.aws.ec2.snapshot.resources.snap-77e5910a.Encrypted: false ... bamboo.custom.aws.ec2.snapshot.resources.snap-77e5910a.OwnerAlias: null ... bamboo.custom.aws.ec2.snapshot.resources.snap-77e5910a.OwnerId: 309600995652 ... bamboo.custom.aws.ec2.snapshot.resources.snap-77e5910a.Progress: 100% ... bamboo.custom.aws.ec2.snapshot.resources.snap-77e5910a.SnapshotId: snap-77e5910a ... bamboo.custom.aws.ec2.snapshot.resources.snap-77e5910a.State: completed ... bamboo.custom.aws.ec2.snapshot.resources.snap-77e5910a.StartTime: 20160412T233519Z ... bamboo.custom.aws.ec2.snapshot.resources.snap-77e5910a.StateMessage: null ... bamboo.custom.aws.ec2.snapshot.resources.snap-77e5910a.VolumeId: vol-b87ca3f7 ... bamboo.custom.aws.ec2.snapshot.resources.snap-77e5910a.VolumeSize: 8 ... bamboo.custom.aws.ec2.snapshot.resources.snap-77e5910a.tags: Name;Backup Policy ... bamboo.custom.aws.ec2.snapshot.resources.snap-77e5910a.tags.Name: vol-b87ca3f7.20160412T233519Z ... bamboo.custom.aws.ec2.snapshot.resources.snap-77e5910a.tags.Backup Policy: taws-it-245 ... Creating common variables for first resource affected by task: Creating resource variables for snapshot 'snap-77e5910a': ... bamboo.custom.aws.ec2.snapshot.first.Description: Created by Bamboo EBS Snapshot Task from vol-b87ca3f7 ... bamboo.custom.aws.ec2.snapshot.first.Encrypted: false ... bamboo.custom.aws.ec2.snapshot.first.OwnerAlias: null ... bamboo.custom.aws.ec2.snapshot.first.OwnerId: 309600995652 ... bamboo.custom.aws.ec2.snapshot.first.Progress: 100% ... bamboo.custom.aws.ec2.snapshot.first.SnapshotId: snap-77e5910a ... bamboo.custom.aws.ec2.snapshot.first.State: completed ... bamboo.custom.aws.ec2.snapshot.first.StartTime: 20160412T233519Z ... bamboo.custom.aws.ec2.snapshot.first.StateMessage: null ... bamboo.custom.aws.ec2.snapshot.first.VolumeId: vol-b87ca3f7 ... bamboo.custom.aws.ec2.snapshot.first.VolumeSize: 8 ... bamboo.custom.aws.ec2.snapshot.first.tags: Name;Backup Policy ... bamboo.custom.aws.ec2.snapshot.first.tags.Name: vol-b87ca3f7.20160412T233519Z ... bamboo.custom.aws.ec2.snapshot.first.tags.Backup Policy: taws-it-245

Prune Snapshot Backup Set

N/A

Grow & Prune Snapshot Backup Set

See Grow above.

How-to Articles

Frequently Asked Questions (FAQ)