|
| 1 | +{ |
| 2 | + "title": "Replicate FSx-OpenZFS volumes across file systems", |
| 3 | + "description": "Periodic Amazon FSx for OpenZFS volume replication across AWS Regions and accounts using Amazon EventBridge Scheduler and AWS Lambda", |
| 4 | + "language": "Python", |
| 5 | + "level": "200", |
| 6 | + "framework": "SAM", |
| 7 | + "introBox": { |
| 8 | + "headline": "How it works", |
| 9 | + "text": [ |
| 10 | + "The AWS SAM template deploys an Amazon EventBridge Scheduler to trigger an AWS Lambda function based on a user-defined schedule. This function copies snapshots of the volume and replicates them to the target FSx system available in a different AWS account and/or region. The template contains a sample Lambda function that creates a snapshot of the source FSx VolumeID. Once the snapshot becomes available, it invokes another Lambda function in the destination AWS account or region, which initiates the replication by calling the copy_snapshot_and_update_volume API. This solution also notifies users using an SNS topic for any errors and snapshot creation details.", |
| 11 | + "This pattern sets up the following resources:", |
| 12 | + "An Amazon EventBridge Scheduler that triggers a Lambda function based on the schedule defined by the customer to take snapshots of the provided FSx Source VolumeID.", |
| 13 | + "An SNS topic that sends notifications for any failures while creating snapshots.", |
| 14 | + "The function also deletes older snapshots.", |
| 15 | + "Sample Lambda functions that create snapshots of the source FSx VolumeID and replicate them by invoking another Lambda function, which calls the copy_snapshot_and_update_volume API for the target VolumeID in the destination AWS account or region." |
| 16 | + ] |
| 17 | + }, |
| 18 | + "gitHub": { |
| 19 | + "template": { |
| 20 | + "repoURL": "https://github.com/aws-samples/serverless-patterns/tree/main/eventbridge-lambda-fsx-openzfs-cross-account-region-periodic-replication", |
| 21 | + "templateURL": "serverless-patterns/eventbridge-lambda-fsx-openzfs-cross-account-region-periodic-replication", |
| 22 | + "projectFolder": "eventbridge-lambda-fsx-openzfs-cross-account-region-periodic-replication", |
| 23 | + "templateFile": "source-template.yaml" |
| 24 | + } |
| 25 | + }, |
| 26 | + "deploy": { |
| 27 | + "text": [ |
| 28 | + "sam deploy --guided --capabilities CAPABILITY_AUTO_EXPAND CAPABILITY_IAM CAPABILITY_NAMED_IAM -t source-template.yaml" |
| 29 | + ] |
| 30 | + }, |
| 31 | + "testing": { |
| 32 | + "text": [ |
| 33 | + "See the GitHub repo for detailed testing instructions." |
| 34 | + ] |
| 35 | + }, |
| 36 | + "cleanup": { |
| 37 | + "text": [ |
| 38 | + "Delete the stack: <code>sam delete --stack-name <stackname></code>." |
| 39 | + ] |
| 40 | + }, |
| 41 | + "authors": [ |
| 42 | + { |
| 43 | + "name": "Anup Rajpara", |
| 44 | + "image": "https://drive.google.com/file/d/1MqpPNLCqbU4kvvtTspNXZBqD99aVIJI9/view?usp=sharing", |
| 45 | + "bio": "Anup is passionate about serverless & event-driven architectures.", |
| 46 | + "linkedin": "anup-rajpara-developer/" |
| 47 | + } |
| 48 | + ], |
| 49 | + "patternArch": { |
| 50 | + "icon1": { |
| 51 | + "x": 20, |
| 52 | + "y": 50, |
| 53 | + "service": "eventbridge-scheduler", |
| 54 | + "label": "EventBridge Scheduler" |
| 55 | + }, |
| 56 | + "icon2": { |
| 57 | + "x": 50, |
| 58 | + "y": 50, |
| 59 | + "service": "lambda", |
| 60 | + "label": "AWS Lambda" |
| 61 | + }, |
| 62 | + "icon3": { |
| 63 | + "x": 80, |
| 64 | + "y": 50, |
| 65 | + "service": "fsx", |
| 66 | + "label": "FSx for OpenZFS" |
| 67 | + }, |
| 68 | + "line1": { |
| 69 | + "from": "icon1", |
| 70 | + "to": "icon2", |
| 71 | + "label": "" |
| 72 | + }, |
| 73 | + "line2": { |
| 74 | + "from": "icon2", |
| 75 | + "to": "icon3", |
| 76 | + "label": "" |
| 77 | + } |
| 78 | + } |
| 79 | +} |
0 commit comments