[AWS]RDSのmysqldumpをS3に保存する

RDSのバックアップとして、スナップショットがありますが、いざという時のmysqldumpのバックアップがほしいなと思い、作ってみました
利用するサービスは、「Lambda」です。
言語は、「node.js 4.3」です。
AWSのLambda標準で入っていないものも利用するので、Lambdaで直接コードを触るのではなく、zipファイルなどでアップロードする方式です。

node.jsの環境準備

まず、ローカルでnode.jsの環境を構築します。
※すでにある人は除外

nodejs、npmをインストール

必要なモジュールを追加

AWSのLambdaのnode.jsの環境には、「mysqldump」が標準では入っていないのでインストール
また、「date-utils」も追加
※日時のフォーマットなので、利用しない人はいれなくていいです

ファイルの構成は以下のような状態です。

作業ディレクトリ
 ∟ index.js
 ∟ node_modules

LambdaでRDSのmysqldumpを行い、結果をS3にアップロード

まずは、サンプルコードです

設定する値は、AWSのRDS環境に合わせて設定してください。
実行すると、指定したS3バケット上に、mysqldumpのファイルがアップロードされています。

必要なIAMロール

AmazonS3FullAccessとAmazonRDSReadOnlyAccessです。
※もしかしたら、FullAccessじゃなくてもいいのかも?

以上が、RDSのmysqldumpをS3に保存する方法です。
後は、CloudWatchなどを利用して定期的に行えばいいかと思います。

あわせて読みたい

コメントを残す

Translate »
%d人のブロガーが「いいね」をつけました。