RDSのスナップショットはデフォルトで1日に1回取れるのですが、1時間に1回スナップショットを取りたいと思ったのでその方法をまとめます
Lambda用のロールの作成 AmazonRDSFullAccessのポリシーを付与してロールを作成、この辺は適宜調整お願いします
Lambdaの作成 この設定でLambda関数を作成します、ロールは先ほど作成したロールを入れてください
コードソースを以下のように変更します
import boto3 from datetime import datetime # RDSスナップショットを作成 def lambda_handler(event, context): rds = boto3.client('rds') clusterIdentifier = 'sample-db-cluster' snapshotIdentifier = 'sample-db-snapshot-{}'.format(datetime.now().strftime('%Y-%m-%d-%H-%M-%S')) response = rds.create_db_cluster_snapshot( DBClusterIdentifier=clusterIdentifier, DBClusterSnapshotIdentifier=snapshotIdentifier, Tags=[ { 'Key': 'Name', 'Value': snapshotIdentifier }, ] )
テストを実行してRDSからスナップショットが登録されていることを確認してください
- EventBridgeの設定 トリガーを追加
以上で1時間に1回スナップショットをとるようになりました