You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: IDEAS.md
+5-5Lines changed: 5 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -6,17 +6,17 @@
6
6
- DONE: Copying a snapshot to an additional region should be possible within the creator (hardcoded in creator)
7
7
- DONE: Enabling snapshot copying out-of-region should be easily configurable in the creator script (albeit still requiring a variable parameter change)
8
8
- DONE: Only copy snapshot out of region if a copy_region is defined in the creator script
9
-
- The out-of-region/copy snapshot functionality should be in its own dedicated job
9
+
-DONE: The out-of-region/copy snapshot functionality should be in its own dedicated job
10
10
- because snapshots can't be copied until they're in a completed state (and this enables getting closer to that)
11
11
- Job/function is easy to understand (logical point of separation)
12
-
- Copies of snapshots in the additional region should be tagged in the same manner as in-region snapshots (Automated: Yes, expiration info, etc.)
13
-
- Enabling the copying (duplication) of a snapshot out-of-region should be configurable on a per instance basis
14
-
- Out-of-region snapshots should be managed (for expiration/retention) just like in-region snapshots
12
+
-DONE: Copies of snapshots in the additional region should be tagged in the same manner as in-region snapshots (Automated: Yes, expiration info, etc.)
13
+
-DONE: Enabling the copying (duplication) of a snapshot out-of-region should be configurable on a per instance basis
14
+
-DONE: Out-of-region snapshots should be managed (for expiration/retention) just like in-region snapshots
15
15
16
16
### P2
17
17
- It should be possible to get automatically notified when the job (a Lambda function) emits an error
18
18
- e.g. http://docs.aws.amazon.com/lambda/latest/dg/with-scheduledevents-example.html
19
-
- The required minimum IAM role policy should be provided
19
+
-DONE: The required minimum IAM role policy should be provided
20
20
21
21
### P3
22
22
- It should be possible to configure multiple regions to copy (duplicate) snapshots into
Copy file name to clipboardExpand all lines: README.md
+41Lines changed: 41 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -9,6 +9,18 @@ This is for managing AWS EC2 EBS volume snapshots. It consists of a snapshot cre
9
9
- Ability to configure retention period on a per EC2 instance basis (applying to all volumes attached to said instance)
10
10
- Ability to manually tag individual snapshots to be kept indefinitely (regardless of instance retention configuration)
11
11
- Does not require a job/management instance; no resources to provision to run snapshot jobs (leverages AWS Lambda)
12
+
- Ability to snapshot all Volumes attached to a given Instance (Default), and exclude on a per-Volume basis any indivdual Volume (Through the addition of `Backup = No` Tag to Volume)
13
+
- Ability to replicate snapshot to a second AWS Region (As specified by Tag) and remove snapshot from source Region upon successful copy. Tags are replicated from source to destination snapshots
14
+
15
+
## Tags Configuration
16
+
17
+
- Instance Level
18
+
- `Backup` { Yes | No }
19
+
- `DestinationRegion` { us-west-1 | eu-west-1 | etc. }
20
+
- `RetentionDays` { 1..x }
21
+
22
+
- Volume Level
23
+
- `Backup` { Yes | No } (Default if absent = 'Yes') : Overrides default to exclude a given Volume from snapshot
12
24
13
25
## Implementation Details
14
26
@@ -24,11 +36,40 @@ For the moment, read these links for documentation on how to setup/use. I've ext
24
36
25
37
Ideas and To Do items are currently tracked in [IDEAS](IDEAS.md).
26
38
39
+
## IAM Role
40
+
41
+
The minimal IAM Role for these Lambda Functions is:
42
+
43
+
```
44
+
{
45
+
"Version": "2012-10-17",
46
+
"Statement": [
47
+
{
48
+
"Effect": "Allow",
49
+
"Action": [
50
+
"logs:CreateLogGroup",
51
+
"logs:CreateLogStream",
52
+
"logs:PutLogEvents",
53
+
"ec2:DescribeInstances",
54
+
"ec2:DescribeVolumes",
55
+
"ec2:CreateSnapshot",
56
+
"ec2:CreateTags",
57
+
"ec2:CopySnapshot",
58
+
"ec2:DescribeSnapshots",
59
+
"ec2:DeleteSnapshot"
60
+
],
61
+
"Resource": "*"
62
+
}
63
+
]
64
+
}
65
+
```
66
+
27
67
## Files:
28
68
29
69
Each file implements a single AWS Lambda function.
0 commit comments