{"id":37080,"date":"2020-03-03T09:00:00","date_gmt":"2020-03-03T16:00:00","guid":{"rendered":"https:\/\/virtual-dba.com\/?p=37080"},"modified":"2021-02-10T18:17:51","modified_gmt":"2021-02-11T01:17:51","slug":"amazon-rds-serverless-automated-snapshots-tutorial","status":"publish","type":"post","link":"https:\/\/virtual-dba.com\/blog\/amazon-rds-serverless-automated-snapshots-tutorial\/","title":{"rendered":"Amazon RDS &#8211; Serverless Automated Snapshots Tutorial"},"content":{"rendered":"\n<p>Snapshots in Amazon when taken manually, are not available for scheduling. In order to accomplish this you could run Amazon CLI but for that you would need to execute from a server based on a cron job or something similar. This solution will allow you to run a serverless architecture which leverages existing Amazon services.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Lamba Files<\/h2>\n\n\n\n<p>Follow the link below to download the Lambda files you will need to run the automated scripts.<\/p>\n\n\n\n<p><a href=\"https:\/\/github.com\/aws-samples\/aws-rds-snapshot-management\" target=\"_blank\" rel=\"noreferrer noopener\" aria-label=\" (opens in a new tab)\">https:\/\/github.com\/aws-samples\/aws-rds-snapshot-management<\/a><\/p>\n\n\n\n<p>Click the &#8220;Clone or download&#8221; button on the right , right click \u201cDownload Zip\u201d and click &#8220;Save link as\u2026&#8221;, save this file where you can find it and unzip the file.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"585\" height=\"303\" src=\"https:\/\/virtual-dba.com\/wp-content\/uploads\/Amazon-RDS-Serverless-Automated-Snapshot-1.png\" alt=\"Amazon RDS - Serverless Automated Snapshot \" class=\"wp-image-37083\"\/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">S3 Bucket<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">User Permissions<\/h3>\n\n\n\n<p>Before you can create the bucket we&#8217;ll need to assign the AmazonS3FullAccess policy to your user.<\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"448\" height=\"181\" src=\"https:\/\/virtual-dba.com\/wp-content\/uploads\/Amazon-RDS-Serverless-Automated-Snapshot-2.png\" alt=\"Amazon RDS - Serverless Automated Snapshot - 2\" class=\"wp-image-37084\"\/><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<p>Select Service at the top and type IAM in the box, click IAM in the drop down.<\/p>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"219\" height=\"221\" src=\"https:\/\/virtual-dba.com\/wp-content\/uploads\/Amazon-RDS-Serverless-Automated-Snapshot-3.png\" alt=\"Amazon RDS - Serverless Automated Snapshot - 3\" class=\"wp-image-37085\"\/><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<p>Select Users on the left side of the screen.<\/p>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"332\" height=\"392\" src=\"https:\/\/virtual-dba.com\/wp-content\/uploads\/Amazon-RDS-Serverless-Automated-Snapshot-4.png\" alt=\"Amazon RDS - Serverless Automated Snapshot - 4\" class=\"wp-image-37086\"\/><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<p>Select your user on the right.<\/p>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"250\" height=\"175\" src=\"https:\/\/virtual-dba.com\/wp-content\/uploads\/Amazon-RDS-Serverless-Automated-Snapshot-5.png\" alt=\"Amazon RDS - Serverless Automated Snapshot - 5\" class=\"wp-image-37087\"\/><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<p>Click add Permissions.<\/p>\n<\/div>\n<\/div>\n\n\n\n<p>Click Attach existing policies directly. (alternatively you can add it to a role)<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"780\" height=\"158\" src=\"https:\/\/virtual-dba.com\/wp-content\/uploads\/Amazon-RDS-Serverless-Automated-Snapshot-6.png\" alt=\"Amazon RDS - Serverless Automated Snapshot - 6\" class=\"wp-image-37088\"\/><\/figure>\n\n\n\n<p>In the search box, type AmazonS3 and you&#8217;ll see the AmazonS3FullAccess Policy, click the check beside it to select.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"525\" height=\"161\" src=\"https:\/\/virtual-dba.com\/wp-content\/uploads\/Amazon-RDS-Serverless-Automated-Snapshot-7.png\" alt=\"Amazon RDS - Serverless Automated Snapshot - 7\" class=\"wp-image-37089\"\/><\/figure>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"262\" height=\"55\" src=\"https:\/\/virtual-dba.com\/wp-content\/uploads\/Amazon-RDS-Serverless-Automated-Snapshot-8.png\" alt=\"Amazon RDS - Serverless Automated Snapshot - 8\" class=\"wp-image-37090\"\/><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<p>Click Next: Review at the bottom.<\/p>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"368\" height=\"57\" src=\"https:\/\/virtual-dba.com\/wp-content\/uploads\/Amazon-RDS-Serverless-Automated-Snapshot-9.png\" alt=\"Amazon RDS - Serverless Automated Snapshot - 9\" class=\"wp-image-37091\"\/><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<p>Click Add Permissions<\/p>\n<\/div>\n<\/div>\n\n\n\n<h3 class=\"wp-block-heading\">Create Bucket<\/h3>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"194\" height=\"192\" src=\"https:\/\/virtual-dba.com\/wp-content\/uploads\/Amazon-RDS-Serverless-Automated-Snapshot-10.png\" alt=\"Amazon RDS - Serverless Automated Snapshot - 10\" class=\"wp-image-37092\"\/><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<p>Next we&#8217;ll create the bucket to store our Lambda Functions, click services at the top and select S3 under storage.<\/p>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"302\" height=\"326\" src=\"https:\/\/virtual-dba.com\/wp-content\/uploads\/Amazon-RDS-Serverless-Automated-Snapshot-11.png\" alt=\"Amazon RDS - Serverless Automated Snapshot - 11\" class=\"wp-image-37093\"\/><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<p>Click Create Bucket.<\/p>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"335\" height=\"145\" src=\"https:\/\/virtual-dba.com\/wp-content\/uploads\/Amazon-RDS-Serverless-Automated-Snapshot-12.png\" alt=\"Amazon RDS - Serverless Automated Snapshot - 12\" class=\"wp-image-37094\"\/><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<p>Name your bucket. Click Next.<\/p>\n<\/div>\n<\/div>\n\n\n\n<p>Click Next, Next and Create Bucket.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Upload Files<\/h3>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"396\" height=\"93\" src=\"https:\/\/virtual-dba.com\/wp-content\/uploads\/Amazon-RDS-Serverless-Automated-Snapshot-13.png\" alt=\"Amazon RDS - Serverless Automated Snapshot - 13\" class=\"wp-image-37095\"\/><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<p>Click on your bucket name.<\/p>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"234\" height=\"130\" src=\"https:\/\/virtual-dba.com\/wp-content\/uploads\/Amazon-RDS-Serverless-Automated-Snapshot-14.png\" alt=\"Amazon RDS - Serverless Automated Snapshot - 14\" class=\"wp-image-37096\"\/><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<p>Click Upload<\/p>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"276\" height=\"298\" src=\"https:\/\/virtual-dba.com\/wp-content\/uploads\/Amazon-RDS-Serverless-Automated-Snapshot-15.png\" alt=\"Amazon RDS - Serverless Automated Snapshot - 15\" class=\"wp-image-37097\"\/><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<p>Click Add files<\/p>\n<\/div>\n<\/div>\n\n\n\n<p>Go to the location where you <strong>unzipped <\/strong>the files , go to the <strong>lambda <\/strong>folder, select all 4 files and click Open.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"625\" height=\"159\" src=\"https:\/\/virtual-dba.com\/wp-content\/uploads\/Amazon-RDS-Serverless-Automated-Snapshot-16.png\" alt=\"Amazon RDS - Serverless Automated Snapshot - 16\" class=\"wp-image-37098\"\/><\/figure>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"317\" height=\"430\" src=\"https:\/\/virtual-dba.com\/wp-content\/uploads\/Amazon-RDS-Serverless-Automated-Snapshot-17.png\" alt=\"Amazon RDS - Serverless Automated Snapshot - 17\" class=\"wp-image-37099\"\/><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<p>Make sure all files are added to the view and click Upload.<\/p>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"393\" height=\"494\" src=\"https:\/\/virtual-dba.com\/wp-content\/uploads\/Amazon-RDS-Serverless-Automated-Snapshot-18.png\" alt=\"Amazon RDS - Serverless Automated Snapshot - 18\" class=\"wp-image-37100\"\/><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<p>The files should now show up in your bucket.<\/p>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"428\" height=\"169\" src=\"https:\/\/virtual-dba.com\/wp-content\/uploads\/Amazon-RDS-Serverless-Automated-Snapshot-19.png\" alt=\"Amazon RDS - Serverless Automated Snapshot - 19\" class=\"wp-image-37101\"\/><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<p>Click on Permissions, then click on Access Control List<\/p>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"320\" height=\"148\" src=\"https:\/\/virtual-dba.com\/wp-content\/uploads\/Amazon-RDS-Serverless-Automated-Snapshot-20.png\" alt=\"Amazon RDS - Serverless Automated Snapshot - 20\" class=\"wp-image-37102\"\/><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<p>Click on Everyone<\/p>\n<\/div>\n<\/div>\n\n\n\n<p>Click List Objects and Read bucket permissions<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"209\" height=\"204\" src=\"https:\/\/virtual-dba.com\/wp-content\/uploads\/Amazon-RDS-Serverless-Automated-Snapshot-21.png\" alt=\"Amazon RDS - Serverless Automated Snapshot - 21\" class=\"wp-image-37103\"\/><\/figure>\n\n\n\n<p><strong>Remove these public permissions after the stack is created. See section on S3 Permissions for assigning distinct permissions.<\/strong><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Cloud Formation Stack<\/h2>\n\n\n\n<p>In order to execute the Lambda files in your S3 bucket, you need to create a stack. The stack will enable the parameters of the scripts for customization.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Download Template<\/h3>\n\n\n\n<p>Go to the link below and save the <strong>rds_snapshot_management.yml<\/strong> file.<\/p>\n\n\n\n<p><a href=\"https:\/\/github.com\/aws-samples\/aws-rds-snapshot-management\/tree\/master\/cftemplate\" target=\"_blank\" rel=\"noreferrer noopener\" aria-label=\" (opens in a new tab)\">https:\/\/github.com\/aws-samples\/aws-rds-snapshot-management\/tree\/master\/cftemplate<\/a><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Create Stack<\/h3>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"401\" height=\"152\" src=\"https:\/\/virtual-dba.com\/wp-content\/uploads\/Amazon-RDS-Serverless-Automated-Snapshot-22.png\" alt=\"Amazon RDS - Serverless Automated Snapshot - 22\" class=\"wp-image-37104\"\/><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<p>Click Services at the top of the page, type in formation and then click CloudFormation.<\/p>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"274\" height=\"133\" src=\"https:\/\/virtual-dba.com\/wp-content\/uploads\/Amazon-RDS-Serverless-Automated-Snapshot-23.png\" alt=\"Amazon RDS - Serverless Automated Snapshot - 23\" class=\"wp-image-37105\"\/><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<p>Click Create Stack<\/p>\n<\/div>\n<\/div>\n\n\n\n<p>Make sure &#8220;Template is ready&#8221; and &#8220;Upload a template file&#8221; are selected, then click &#8220;Choose file&#8221;.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"751\" height=\"389\" src=\"https:\/\/virtual-dba.com\/wp-content\/uploads\/Amazon-RDS-Serverless-Automated-Snapshot-24.png\" alt=\"Amazon RDS - Serverless Automated Snapshot - 24\" class=\"wp-image-37106\"\/><\/figure>\n\n\n\n<p>Go to where you <strong>unzipped <\/strong>the files, open the <strong>cftemplate <\/strong>folder, Select <strong>rds_snapshot_management.yml<\/strong> in the prompt and click Open.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"570\" height=\"89\" src=\"https:\/\/virtual-dba.com\/wp-content\/uploads\/Amazon-RDS-Serverless-Automated-Snapshot-25.png\" alt=\"Amazon RDS - Serverless Automated Snapshot - 25\" class=\"wp-image-37107\"\/><\/figure>\n\n\n\n<p>You should now see the S3 generated url for your template, click Next.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"978\" height=\"223\" src=\"https:\/\/virtual-dba.com\/wp-content\/uploads\/Amazon-RDS-Serverless-Automated-Snapshot-26.png\" alt=\"Amazon RDS - Serverless Automated Snapshot - 26\" class=\"wp-image-37108\"\/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Configuration<\/h3>\n\n\n\n<p>On this screen you will see a list of parameters, these parameters will determine how your snapshots will be retained, when they will be taken and several others.<\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"420\" height=\"143\" src=\"https:\/\/virtual-dba.com\/wp-content\/uploads\/Amazon-RDS-Serverless-Automated-Snapshot-27.png\" alt=\"Amazon RDS - Serverless Automated Snapshot - 27\" class=\"wp-image-37109\"\/><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<p>Assign a unique name to the stack.<\/p>\n<\/div>\n<\/div>\n\n\n\n<p>For <strong>BackupSchedule <\/strong>I have chosen to run a snapshot every 30 days, which is 720 hours.&nbsp; I want my backup to run at 2am every month so I&#8217;ve input &#8220;0 2 1 * ? *&#8221;. <\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"510\" height=\"219\" src=\"https:\/\/virtual-dba.com\/wp-content\/uploads\/Amazon-RDS-Serverless-Automated-Snapshot-28.png\" alt=\"Amazon RDS - Serverless Automated Snapshot - 28\" class=\"wp-image-37110\"\/><\/figure>\n\n\n\n<p>Other format examples:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1266\" height=\"150\" src=\"https:\/\/virtual-dba.com\/wp-content\/uploads\/Amazon-RDS-Serverless-Automated-Snapshot-screenshot2.png\" alt=\"Amazon RDS - Serverless Automated Snapshot - screenshot2\" class=\"wp-image-37141\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1264\" height=\"354\" src=\"https:\/\/virtual-dba.com\/wp-content\/uploads\/Amazon-RDS-Serverless-Automated-Snapshot-screenshot1.png\" alt=\"Amazon RDS - Serverless Automated Snapshot - screenshot1\" class=\"wp-image-37140\"\/><\/figure>\n\n\n\n<p>Input the name of the bucket you created earlier in the <strong>CodeBucket <\/strong>box. You can set <strong>DeleteOldSnapshots <\/strong>to true if you don&#8217;t want to delete them manually.&nbsp;This is dependent on the number of retention days that you specify further down.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"501\" height=\"194\" src=\"https:\/\/virtual-dba.com\/wp-content\/uploads\/Amazon-RDS-Serverless-Automated-Snapshot-29-.png\" alt=\"Amazon RDS - Serverless Automated Snapshot - 29-\" class=\"wp-image-37111\"\/><\/figure>\n\n\n\n<p>Set the loglevel which is the notifications you&#8217;ll get if something goes wrong.&nbsp; This level is a threshold , so if you set it to DEBUG, you&#8217;ll get everything from DEBUG-CRITICAL. If you set it to ERROR, you&#8217;ll get ERROR-CRITICAL.<\/p>\n\n\n\n<p>Enter the email address that you want notified when a snapshot is taken.<br><strong>RetentionDays <\/strong>is the number of days that a snapshot will be retained. I am retaining my backups for an entire year, so I&#8217;ve chosen 366 days to account for a leap year. If you don&#8217;t want snapshots to be deleted go back and set <strong>DeleteOldSnapshots <\/strong>to false.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"500\" height=\"278\" src=\"https:\/\/virtual-dba.com\/wp-content\/uploads\/Amazon-RDS-Serverless-Automated-Snapshot-29.png\" alt=\"Amazon RDS - Serverless Automated Snapshot - 29\" class=\"wp-image-37112\"\/><\/figure>\n\n\n\n<p>Once you have your configuration setup and you&#8217;ve checked it, click Next.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Permissions<\/h3>\n\n\n\n<p>This is optional, you can add a role that will be responsible for managing resources on the stack.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"692\" height=\"187\" src=\"https:\/\/virtual-dba.com\/wp-content\/uploads\/Amazon-RDS-Serverless-Automated-Snapshot-30.png\" alt=\"Amazon RDS - Serverless Automated Snapshot - 30\" class=\"wp-image-37113\"\/><\/figure>\n\n\n\n<p>Whichever option you pick, you will need these permissions in order to successfully create the stack.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"414\" height=\"423\" src=\"https:\/\/virtual-dba.com\/wp-content\/uploads\/Amazon-RDS-Serverless-Automated-Snapshot-31.png\" alt=\"Amazon RDS - Serverless Automated Snapshot - 31\" class=\"wp-image-37114\"\/><\/figure>\n\n\n\n<p>Once you&#8217;re done, click next.<\/p>\n\n\n\n<p>At this point you&#8217;re done with setup, review your configuration.&nbsp; At the bottom of this page you&#8217;ll need to acknowledge that the stack will be creating IAM Access Roles that it uses to operate.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"714\" height=\"162\" src=\"https:\/\/virtual-dba.com\/wp-content\/uploads\/Amazon-RDS-Serverless-Automated-Snapshot-32.png\" alt=\"Amazon RDS - Serverless Automated Snapshot - 32\" class=\"wp-image-37115\"\/><\/figure>\n\n\n\n<p>Review your setup and click Create stack.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"518\" height=\"50\" src=\"https:\/\/virtual-dba.com\/wp-content\/uploads\/Amazon-RDS-Serverless-Automated-Snapshot-34.png\" alt=\"Amazon RDS - Serverless Automated Snapshot - 34\" class=\"wp-image-37116\"\/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Post Configuration<\/h3>\n\n\n\n<p>Now we can configure which RDS instances will have snapshots taken manually.<\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"317\" height=\"120\" src=\"https:\/\/virtual-dba.com\/wp-content\/uploads\/Amazon-RDS-Serverless-Automated-Snapshot-35.png\" alt=\"Amazon RDS - Serverless Automated Snapshot - 35\" class=\"wp-image-37117\"\/><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<p>Create a <strong>rds_backups_list.txt<\/strong> file and input each rds name you want to take snapshots of, on it&#8217;s own line in the file<\/p>\n<\/div>\n<\/div>\n\n\n\n<p>Now go to your S3 environment, there will be an S3 bucket which was created by the Cloud Stack for you to upload the text file. I named my Cloud Stack <strong>automated-snapshot-monthly<\/strong>, below you can see the bucket it created for me.<\/p>\n\n\n\n<p>Upload your file into the bucket.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"606\" height=\"182\" src=\"https:\/\/virtual-dba.com\/wp-content\/uploads\/Amazon-RDS-Serverless-Automated-Snapshot-36.png\" alt=\"Amazon RDS - Serverless Automated Snapshot - 36\" class=\"wp-image-37118\"\/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Testing<\/h2>\n\n\n\n<p>Now we can test our deployment and make sure snapshots are taken manually.<\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"332\" height=\"106\" src=\"https:\/\/virtual-dba.com\/wp-content\/uploads\/Amazon-RDS-Serverless-Automated-Snapshot-37.png\" alt=\"Amazon RDS - Serverless Automated Snapshot - 37\" class=\"wp-image-37119\"\/><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<p>Click services and type step into the search box, click on Step Functions.<\/p>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"275\" height=\"197\" src=\"https:\/\/virtual-dba.com\/wp-content\/uploads\/Amazon-RDS-Serverless-Automated-Snapshot-38.png\" alt=\"Amazon RDS - Serverless Automated Snapshot - 38\" class=\"wp-image-37120\"\/><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<p>If you don&#8217;t see state machines right away, click Get Started on the right side.<\/p>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"298\" height=\"96\" src=\"https:\/\/virtual-dba.com\/wp-content\/uploads\/Amazon-RDS-Serverless-Automated-Snapshot-39.png\" alt=\"Amazon RDS - Serverless Automated Snapshot - 39\" class=\"wp-image-37121\"\/><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<p>Now click State Machines in the breadcrumb at the top.<\/p>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"363\" height=\"198\" src=\"https:\/\/virtual-dba.com\/wp-content\/uploads\/Amazon-RDS-Serverless-Automated-Snapshot-40.png\" alt=\"Amazon RDS - Serverless Automated Snapshot - 40\" class=\"wp-image-37122\"\/><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<p>Click on your state machine with the text of RDSBackupTool<\/p>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"291\" height=\"92\" src=\"https:\/\/virtual-dba.com\/wp-content\/uploads\/Amazon-RDS-Serverless-Automated-Snapshot-41.png\" alt=\"Amazon RDS - Serverless Automated Snapshot - 41\" class=\"wp-image-37123\"\/><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<p>Click Start Execution<\/p>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"287\" height=\"93\" src=\"https:\/\/virtual-dba.com\/wp-content\/uploads\/Amazon-RDS-Serverless-Automated-Snapshot-42.png\" alt=\"Amazon RDS - Serverless Automated Snapshot - 42\" class=\"wp-image-37124\"\/><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<p>Enter a name for the execution task<\/p>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"286\" height=\"86\" src=\"https:\/\/virtual-dba.com\/wp-content\/uploads\/Amazon-RDS-Serverless-Automated-Snapshot-43.png\" alt=\"Amazon RDS - Serverless Automated Snapshot - 43\" class=\"wp-image-37125\"\/><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<p>Click Start Execution<\/p>\n<\/div>\n<\/div>\n\n\n\n<p>In the visual workflow you can see the steps and status of each step.&nbsp; For instance the Create Snapshots step has failed in this example below.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"749\" height=\"512\" src=\"https:\/\/virtual-dba.com\/wp-content\/uploads\/Amazon-RDS-Serverless-Automated-Snapshot-44.png\" alt=\"Amazon RDS - Serverless Automated Snapshot - 44\" class=\"wp-image-37126\"\/><\/figure>\n\n\n\n<p>If you click on the Create Snapshots box, on the right side you can see the details, the Exception field will give you more information on why a step failed.<\/p>\n\n\n\n<p>This error has to do with S3 bucket permissions. If you setup a role for CloudStack in previous steps, make sure it has access to your S3 bucket and contents.&nbsp; If you didn&#8217;t setup a role make sure your user has access to the S3 bucket. You can test this by setting your buckets to Public and testing again, if it succeeds then you need to modify permissions. I don&#8217;t recommend keeping your buckets public.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"660\" height=\"372\" src=\"https:\/\/virtual-dba.com\/wp-content\/uploads\/Amazon-RDS-Serverless-Automated-Snapshot-45.png\" alt=\"Amazon RDS - Serverless Automated Snapshot - 45\" class=\"wp-image-37127\"\/><\/figure>\n\n\n\n<p>The below error means most likely that your <strong>rds_backups_list.txt<\/strong> file is not named correctly, check the name of the file and make sure it is exact.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"701\" height=\"244\" src=\"https:\/\/virtual-dba.com\/wp-content\/uploads\/Amazon-RDS-Serverless-Automated-Snapshot-46.png\" alt=\"Amazon RDS - Serverless Automated Snapshot - 46\" class=\"wp-image-37128\"\/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">S3 Permissions<\/h2>\n\n\n\n<p>Handling bucket permissions can be a hassle if you&#8217;ve never done it before. Especially if you don&#8217;t want them to be public. Here is how I setup my S3 policy for the two buckets needed in this tutorial.<\/p>\n\n\n<pre><code>{\n    \"Version\": \"2012-10-17\",\n    \"Statement\": [\n        {\n            \"Sid\": \"VisualEditor0\",\n            \"Effect\": \"Allow\",\n            \"Action\": \"s3:GetObject\",\n            \"Resource\": \"arn:aws:s3:::automated-snapshot-monthly-s3sourcelistbucket-153ftue9h0bzj\/automated-snapshot-monthly-s3sourcelistbucket-153ftue9h0bzj\"\n        },\n        {\n            \"Sid\": \"VisualEditor1\",\n            \"Effect\": \"Allow\",\n            \"Action\": \"s3:GetObject\",\n            \"Resource\": \"arn:aws:s3:::automated-snapshot-lambda\/automated-snapshot-lambda\"\n        },\n        {\n            \"Sid\": \"VisualEditor2\",\n            \"Effect\": \"Allow\",\n            \"Action\": \"s3:GetObject\",\n            \"Resource\": \"arn:aws:s3:::automated-snapshot-lambda\/check_snapshots.zip\"\n        },\n        {\n            \"Sid\": \"VisualEditor3\",\n            \"Effect\": \"Allow\",\n            \"Action\": \"s3:GetObject\",\n            \"Resource\": \"arn:aws:s3:::automated-snapshot-lambda\/delete_old_snapshots_rds.zip\"\n        },\n        {\n            \"Sid\": \"VisualEditor4\",\n            \"Effect\": \"Allow\",\n            \"Action\": \"s3:GetObject\",\n            \"Resource\": \"arn:aws:s3:::automated-snapshot-lambda\/email_notification.zip.zip\"\n        },\n        {\n            \"Sid\": \"VisualEditor5\",\n            \"Effect\": \"Allow\",\n            \"Action\": \"s3:GetObject\",\n            \"Resource\": \"arn:aws:s3:::automated-snapshot-lambda\/take_snapshots_rds.zip.zip\"\n        },\n        {\n            \"Sid\": \"VisualEditor6\",\n            \"Effect\": \"Allow\",\n            \"Action\": \"s3:GetObject\",\n            \"Resource\": \"arn:aws:s3:::automated-snapshot-monthly-s3sourcelistbucket-153ftue9h0bzj\/automated-snapshot-monthly-s3sourcelistbucket-153ftue9h0bzj\/rds_backups_list.txt\"\n        }\n    ]\n}\n<\/code><\/pre>\n\n\n<p>Basically, you need to add a permission for GetObject (read permission) on each bucket and on each object in the bucket.&nbsp; Attach this policy to your user or to the role you assigned for your CloudFormation.<\/p>\n\n\n\n<p>That&#8217;s pretty much it, once you get those issues resolved you will see a workflow that looks like the one below. Check your RDS Snapshots and you&#8217;ll see the snapshot that was taken.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"737\" height=\"497\" src=\"https:\/\/virtual-dba.com\/wp-content\/uploads\/Amazon-RDS-Serverless-Automated-Snapshot-47.png\" alt=\"Amazon RDS - Serverless Automated Snapshot - 47\" class=\"wp-image-37129\"\/><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>Snapshots in Amazon when taken manually, are not available for scheduling. In order to accomplish this you could run Amazon CLI but for that you would need to execute from a server based on a cron job or something similar. This solution will allow you to run a serverless architecture which leverages existing Amazon services. [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":37144,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_et_pb_use_builder":"off","_et_pb_old_content":"","_et_gb_content_width":"","content-type":"","footnotes":""},"categories":[4166,2163],"tags":[4043,4045,4139,4044],"class_list":["post-37080","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blog","category-postgresql","tag-aws","tag-manual-snapshots","tag-postgresql-performance-tuning","tag-rds"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.1 (Yoast SEO v27.1.1) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Amazon RDS - Serverless Automated Snapshots Tutorial<\/title>\n<meta name=\"description\" content=\"This article is for Automating Manual Snapshots using Serverless Architecture, which leverages existing Amazon services.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/virtual-dba.com\/blog\/amazon-rds-serverless-automated-snapshots-tutorial\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Amazon RDS - Serverless Automated Snapshots Tutorial\" \/>\n<meta property=\"og:description\" content=\"This article is for Automating Manual Snapshots using Serverless Architecture, which leverages existing Amazon services.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/virtual-dba.com\/blog\/amazon-rds-serverless-automated-snapshots-tutorial\/\" \/>\n<meta property=\"og:site_name\" content=\"Virtual-DBA Remote DBA Services &amp; Support - Certified Database Experts\" \/>\n<meta property=\"article:published_time\" content=\"2020-03-03T16:00:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-02-11T01:17:51+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/virtual-dba.com\/media\/Amazon-RDS-Serverless-Automated-Snapshots-Tutorial.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"557\" \/>\n\t<meta property=\"og:image:height\" content=\"291\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"XTIVIA\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@virtual_dba\" \/>\n<meta name=\"twitter:site\" content=\"@virtual_dba\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"XTIVIA\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"16 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/virtual-dba.com\/blog\/amazon-rds-serverless-automated-snapshots-tutorial\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/virtual-dba.com\/blog\/amazon-rds-serverless-automated-snapshots-tutorial\/\"},\"author\":{\"name\":\"XTIVIA\",\"@id\":\"https:\/\/virtual-dba.com\/#\/schema\/person\/2d86f74bed0c3f1b49100f7fdf7d78d1\"},\"headline\":\"Amazon RDS &#8211; Serverless Automated Snapshots Tutorial\",\"datePublished\":\"2020-03-03T16:00:00+00:00\",\"dateModified\":\"2021-02-11T01:17:51+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/virtual-dba.com\/blog\/amazon-rds-serverless-automated-snapshots-tutorial\/\"},\"wordCount\":1223,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/virtual-dba.com\/#organization\"},\"image\":{\"@id\":\"https:\/\/virtual-dba.com\/blog\/amazon-rds-serverless-automated-snapshots-tutorial\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/virtual-dba.com\/wp-content\/uploads\/Amazon-RDS-Serverless-Automated-Snapshots-Tutorial.jpg\",\"keywords\":[\"AWS\",\"Manual Snapshots\",\"PostgreSQL Performance tuning\",\"RDS\"],\"articleSection\":[\"Blog\",\"PostgreSQL\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/virtual-dba.com\/blog\/amazon-rds-serverless-automated-snapshots-tutorial\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/virtual-dba.com\/blog\/amazon-rds-serverless-automated-snapshots-tutorial\/\",\"url\":\"https:\/\/virtual-dba.com\/blog\/amazon-rds-serverless-automated-snapshots-tutorial\/\",\"name\":\"Amazon RDS - Serverless Automated Snapshots Tutorial\",\"isPartOf\":{\"@id\":\"https:\/\/virtual-dba.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/virtual-dba.com\/blog\/amazon-rds-serverless-automated-snapshots-tutorial\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/virtual-dba.com\/blog\/amazon-rds-serverless-automated-snapshots-tutorial\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/virtual-dba.com\/wp-content\/uploads\/Amazon-RDS-Serverless-Automated-Snapshots-Tutorial.jpg\",\"datePublished\":\"2020-03-03T16:00:00+00:00\",\"dateModified\":\"2021-02-11T01:17:51+00:00\",\"description\":\"This article is for Automating Manual Snapshots using Serverless Architecture, which leverages existing Amazon services.\",\"breadcrumb\":{\"@id\":\"https:\/\/virtual-dba.com\/blog\/amazon-rds-serverless-automated-snapshots-tutorial\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/virtual-dba.com\/blog\/amazon-rds-serverless-automated-snapshots-tutorial\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/virtual-dba.com\/blog\/amazon-rds-serverless-automated-snapshots-tutorial\/#primaryimage\",\"url\":\"https:\/\/virtual-dba.com\/wp-content\/uploads\/Amazon-RDS-Serverless-Automated-Snapshots-Tutorial.jpg\",\"contentUrl\":\"https:\/\/virtual-dba.com\/wp-content\/uploads\/Amazon-RDS-Serverless-Automated-Snapshots-Tutorial.jpg\",\"width\":557,\"height\":291,\"caption\":\"Amazon RDS - Serverless Automated Snapshots Tutorial\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/virtual-dba.com\/blog\/amazon-rds-serverless-automated-snapshots-tutorial\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/virtual-dba.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Amazon RDS &#8211; Serverless Automated Snapshots Tutorial\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/virtual-dba.com\/#website\",\"url\":\"https:\/\/virtual-dba.com\/\",\"name\":\"Virtual-DBA Remote DBA Services &amp; Support - Certified Database Experts\",\"description\":\"Remote Database Administration\",\"publisher\":{\"@id\":\"https:\/\/virtual-dba.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/virtual-dba.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/virtual-dba.com\/#organization\",\"name\":\"Virtual-DBA: Remote DBA | Remote Database Administration\",\"alternateName\":\"Virtual-DBA powered by XTIVIA\",\"url\":\"https:\/\/virtual-dba.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/virtual-dba.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/virtual-dba.com\/wp-content\/uploads\/V-DBA-Database-Services-and-Support-Featured-Logo.jpg\",\"contentUrl\":\"https:\/\/virtual-dba.com\/wp-content\/uploads\/V-DBA-Database-Services-and-Support-Featured-Logo.jpg\",\"width\":557,\"height\":291,\"caption\":\"Virtual-DBA: Remote DBA | Remote Database Administration\"},\"image\":{\"@id\":\"https:\/\/virtual-dba.com\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/x.com\/virtual_dba\",\"https:\/\/www.linkedin.com\/showcase\/36220649\/\",\"https:\/\/www.youtube.com\/channel\/UCx3AIeUQ2ziTLKZSJDZ-SEg\"],\"description\":\"Eliminate database downtime and spiraling costs with XTIVIA\u2019s Virtual-DBA. In today\u2019s always-on business world, gaps in 24x7 on-call DBA support, neglected maintenance and security, or a stretched team struggling with overwhelming workloads can lead to costly disruptions and threaten business continuity. XTIVIA\u2019s Virtual-DBA provides the immediate, expert database administration you need, exactly when you need it, ensuring optimal performance, ironclad security, and significant cost savings without the burden of expanding your in-house team. The goal of Virtual-DBA is to provide a cost-effective solution for organizations seeking to optimize the security, management, maintenance, availability, and performance of their critical business systems, whether self-managed or cloud-managed (e.g., AWS RDS, Azure SQL Database). We accomplish this through a comprehensive remote DBA service offering designed specifically to meet the Oracle\u00ae, DB2\u00ae, Informix\u00ae, MySQL\u2122, PostgreSQL\u00ae, MongoDB\u00ae, MariaDB, and Microsoft SQL Server\u00ae, CockroachDB, Databricks, AWS, and Azure needs of our clients.\",\"email\":\"info@xtivia.com\",\"telephone\":\"8886853101\",\"legalName\":\"XTIVIA, Inc\",\"foundingDate\":\"1992-05-01\",\"numberOfEmployees\":{\"@type\":\"QuantitativeValue\",\"minValue\":\"201\",\"maxValue\":\"500\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/virtual-dba.com\/#\/schema\/person\/2d86f74bed0c3f1b49100f7fdf7d78d1\",\"name\":\"XTIVIA\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/virtual-dba.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/0d3648a00e319a37cf8d6d19f762acfbbb4fd0320fd8a6d6b1e64f44a2a6f259?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/0d3648a00e319a37cf8d6d19f762acfbbb4fd0320fd8a6d6b1e64f44a2a6f259?s=96&d=mm&r=g\",\"caption\":\"XTIVIA\"},\"url\":\"https:\/\/virtual-dba.com\/author\/xtivia\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Amazon RDS - Serverless Automated Snapshots Tutorial","description":"This article is for Automating Manual Snapshots using Serverless Architecture, which leverages existing Amazon services.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/virtual-dba.com\/blog\/amazon-rds-serverless-automated-snapshots-tutorial\/","og_locale":"en_US","og_type":"article","og_title":"Amazon RDS - Serverless Automated Snapshots Tutorial","og_description":"This article is for Automating Manual Snapshots using Serverless Architecture, which leverages existing Amazon services.","og_url":"https:\/\/virtual-dba.com\/blog\/amazon-rds-serverless-automated-snapshots-tutorial\/","og_site_name":"Virtual-DBA Remote DBA Services &amp; Support - Certified Database Experts","article_published_time":"2020-03-03T16:00:00+00:00","article_modified_time":"2021-02-11T01:17:51+00:00","og_image":[{"width":557,"height":291,"url":"https:\/\/virtual-dba.com\/media\/Amazon-RDS-Serverless-Automated-Snapshots-Tutorial.jpg","type":"image\/jpeg"}],"author":"XTIVIA","twitter_card":"summary_large_image","twitter_creator":"@virtual_dba","twitter_site":"@virtual_dba","twitter_misc":{"Written by":"XTIVIA","Est. reading time":"16 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/virtual-dba.com\/blog\/amazon-rds-serverless-automated-snapshots-tutorial\/#article","isPartOf":{"@id":"https:\/\/virtual-dba.com\/blog\/amazon-rds-serverless-automated-snapshots-tutorial\/"},"author":{"name":"XTIVIA","@id":"https:\/\/virtual-dba.com\/#\/schema\/person\/2d86f74bed0c3f1b49100f7fdf7d78d1"},"headline":"Amazon RDS &#8211; Serverless Automated Snapshots Tutorial","datePublished":"2020-03-03T16:00:00+00:00","dateModified":"2021-02-11T01:17:51+00:00","mainEntityOfPage":{"@id":"https:\/\/virtual-dba.com\/blog\/amazon-rds-serverless-automated-snapshots-tutorial\/"},"wordCount":1223,"commentCount":0,"publisher":{"@id":"https:\/\/virtual-dba.com\/#organization"},"image":{"@id":"https:\/\/virtual-dba.com\/blog\/amazon-rds-serverless-automated-snapshots-tutorial\/#primaryimage"},"thumbnailUrl":"https:\/\/virtual-dba.com\/wp-content\/uploads\/Amazon-RDS-Serverless-Automated-Snapshots-Tutorial.jpg","keywords":["AWS","Manual Snapshots","PostgreSQL Performance tuning","RDS"],"articleSection":["Blog","PostgreSQL"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/virtual-dba.com\/blog\/amazon-rds-serverless-automated-snapshots-tutorial\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/virtual-dba.com\/blog\/amazon-rds-serverless-automated-snapshots-tutorial\/","url":"https:\/\/virtual-dba.com\/blog\/amazon-rds-serverless-automated-snapshots-tutorial\/","name":"Amazon RDS - Serverless Automated Snapshots Tutorial","isPartOf":{"@id":"https:\/\/virtual-dba.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/virtual-dba.com\/blog\/amazon-rds-serverless-automated-snapshots-tutorial\/#primaryimage"},"image":{"@id":"https:\/\/virtual-dba.com\/blog\/amazon-rds-serverless-automated-snapshots-tutorial\/#primaryimage"},"thumbnailUrl":"https:\/\/virtual-dba.com\/wp-content\/uploads\/Amazon-RDS-Serverless-Automated-Snapshots-Tutorial.jpg","datePublished":"2020-03-03T16:00:00+00:00","dateModified":"2021-02-11T01:17:51+00:00","description":"This article is for Automating Manual Snapshots using Serverless Architecture, which leverages existing Amazon services.","breadcrumb":{"@id":"https:\/\/virtual-dba.com\/blog\/amazon-rds-serverless-automated-snapshots-tutorial\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/virtual-dba.com\/blog\/amazon-rds-serverless-automated-snapshots-tutorial\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/virtual-dba.com\/blog\/amazon-rds-serverless-automated-snapshots-tutorial\/#primaryimage","url":"https:\/\/virtual-dba.com\/wp-content\/uploads\/Amazon-RDS-Serverless-Automated-Snapshots-Tutorial.jpg","contentUrl":"https:\/\/virtual-dba.com\/wp-content\/uploads\/Amazon-RDS-Serverless-Automated-Snapshots-Tutorial.jpg","width":557,"height":291,"caption":"Amazon RDS - Serverless Automated Snapshots Tutorial"},{"@type":"BreadcrumbList","@id":"https:\/\/virtual-dba.com\/blog\/amazon-rds-serverless-automated-snapshots-tutorial\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/virtual-dba.com\/"},{"@type":"ListItem","position":2,"name":"Amazon RDS &#8211; Serverless Automated Snapshots Tutorial"}]},{"@type":"WebSite","@id":"https:\/\/virtual-dba.com\/#website","url":"https:\/\/virtual-dba.com\/","name":"Virtual-DBA Remote DBA Services &amp; Support - Certified Database Experts","description":"Remote Database Administration","publisher":{"@id":"https:\/\/virtual-dba.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/virtual-dba.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/virtual-dba.com\/#organization","name":"Virtual-DBA: Remote DBA | Remote Database Administration","alternateName":"Virtual-DBA powered by XTIVIA","url":"https:\/\/virtual-dba.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/virtual-dba.com\/#\/schema\/logo\/image\/","url":"https:\/\/virtual-dba.com\/wp-content\/uploads\/V-DBA-Database-Services-and-Support-Featured-Logo.jpg","contentUrl":"https:\/\/virtual-dba.com\/wp-content\/uploads\/V-DBA-Database-Services-and-Support-Featured-Logo.jpg","width":557,"height":291,"caption":"Virtual-DBA: Remote DBA | Remote Database Administration"},"image":{"@id":"https:\/\/virtual-dba.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/x.com\/virtual_dba","https:\/\/www.linkedin.com\/showcase\/36220649\/","https:\/\/www.youtube.com\/channel\/UCx3AIeUQ2ziTLKZSJDZ-SEg"],"description":"Eliminate database downtime and spiraling costs with XTIVIA\u2019s Virtual-DBA. In today\u2019s always-on business world, gaps in 24x7 on-call DBA support, neglected maintenance and security, or a stretched team struggling with overwhelming workloads can lead to costly disruptions and threaten business continuity. XTIVIA\u2019s Virtual-DBA provides the immediate, expert database administration you need, exactly when you need it, ensuring optimal performance, ironclad security, and significant cost savings without the burden of expanding your in-house team. The goal of Virtual-DBA is to provide a cost-effective solution for organizations seeking to optimize the security, management, maintenance, availability, and performance of their critical business systems, whether self-managed or cloud-managed (e.g., AWS RDS, Azure SQL Database). We accomplish this through a comprehensive remote DBA service offering designed specifically to meet the Oracle\u00ae, DB2\u00ae, Informix\u00ae, MySQL\u2122, PostgreSQL\u00ae, MongoDB\u00ae, MariaDB, and Microsoft SQL Server\u00ae, CockroachDB, Databricks, AWS, and Azure needs of our clients.","email":"info@xtivia.com","telephone":"8886853101","legalName":"XTIVIA, Inc","foundingDate":"1992-05-01","numberOfEmployees":{"@type":"QuantitativeValue","minValue":"201","maxValue":"500"}},{"@type":"Person","@id":"https:\/\/virtual-dba.com\/#\/schema\/person\/2d86f74bed0c3f1b49100f7fdf7d78d1","name":"XTIVIA","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/virtual-dba.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/0d3648a00e319a37cf8d6d19f762acfbbb4fd0320fd8a6d6b1e64f44a2a6f259?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/0d3648a00e319a37cf8d6d19f762acfbbb4fd0320fd8a6d6b1e64f44a2a6f259?s=96&d=mm&r=g","caption":"XTIVIA"},"url":"https:\/\/virtual-dba.com\/author\/xtivia\/"}]}},"_links":{"self":[{"href":"https:\/\/virtual-dba.com\/wp-json\/wp\/v2\/posts\/37080","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/virtual-dba.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/virtual-dba.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/virtual-dba.com\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/virtual-dba.com\/wp-json\/wp\/v2\/comments?post=37080"}],"version-history":[{"count":0,"href":"https:\/\/virtual-dba.com\/wp-json\/wp\/v2\/posts\/37080\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/virtual-dba.com\/wp-json\/wp\/v2\/media\/37144"}],"wp:attachment":[{"href":"https:\/\/virtual-dba.com\/wp-json\/wp\/v2\/media?parent=37080"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/virtual-dba.com\/wp-json\/wp\/v2\/categories?post=37080"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/virtual-dba.com\/wp-json\/wp\/v2\/tags?post=37080"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}