【AWS】RDSのバックアップをS3に保存・復元する手順を初心者向けに徹底解説
生徒
「先生、AWSのRDSってバックアップをS3に保存できるんですか?」
先生
「はい、できますよ。RDSのデータベースを自動バックアップだけでなく、手動でエクスポートしてS3バケットに保存することも可能です。」
生徒
「なるほど!でも、どうやって設定すればいいんですか?」
先生
「それでは、RDSのバックアップをS3に保存して、復元する具体的な手順を初心者向けに解説していきましょう。」
1. RDSのバックアップをS3に保存するメリット
AWSのRDSは、標準で自動バックアップ機能を提供しています。しかし、それだけでは保存期間が限られたり、リージョン外で利用できなかったりします。そこでS3にバックアップを保存することで、以下のようなメリットがあります。
- 長期間のデータ保存が可能
- 別リージョンや別アカウントでの利用が簡単
- データ分析基盤(AthenaやRedshift)への連携が容易
- コスト効率の良いストレージに保存できる
つまり、RDSのバックアップをS3にエクスポートすることは、データ保護や業務継続の観点から非常に重要です。
2. 事前準備:IAMロールとS3バケットの設定
RDSからS3にバックアップを保存するには、IAMロールとS3バケットの準備が必要です。
- S3バケットの作成 バックアップを保存するためのS3バケットを作成します。バケット名は一意である必要があります。
- IAMロールの作成
RDSがS3へアクセスできるように、
AmazonS3FullAccessまたはAmazonS3ReadWriteAccessを付与したIAMロールを用意します。 - ポリシーのアタッチ 作成したロールに必要なポリシーをアタッチして、RDSインスタンスに関連付けます。
これらの準備を整えることで、RDSからS3へ安全にデータを転送できるようになります。
3. RDSスナップショットをS3にエクスポートする手順
具体的に、RDSスナップショットをS3にエクスポートする手順を説明します。
- AWSマネジメントコンソールにログインし、RDSサービスを開きます。
- 対象のデータベースを選び、スナップショットを作成します。
- 作成されたスナップショットを選択し、S3へのエクスポートを実行します。
- エクスポート先のS3バケットとIAMロールを指定します。
- ジョブが完了すると、指定したS3バケットにバックアップデータ(Parquet形式)が保存されます。
この方法でS3に保存したデータは、Big Data処理やログ解析にも活用できます。
4. S3からRDSへデータを復元する方法
S3に保存したデータをそのままRDSに復元することはできません。復元には以下の流れを踏みます。
- S3からデータを取り出す S3に保存されているデータはParquet形式になっているため、AthenaやGlueを使って読み出します。
- CSVやSQL形式に変換 復元対象のテーブルデータを抽出し、CSVやSQLファイルに変換します。
- AWS DMSやpsqlコマンドでインポート AWS Database Migration Service(DMS)やクライアントツールを使い、変換したデータをRDSにロードします。
完全自動ではありませんが、データ形式を整えることでS3のバックアップからRDSへの復元が可能になります。
5. AWS CLIを使ったエクスポートの例
初心者の方でもコマンドラインから操作できるよう、AWS CLIを使ったエクスポート方法を紹介します。
aws rds start-export-task \
--export-task-identifier my-rds-export \
--source-arn arn:aws:rds:ap-northeast-1:123456789012:snapshot:rds-snapshot-20230830 \
--s3-bucket-name my-rds-backup-bucket \
--iam-role-arn arn:aws:iam::123456789012:role/myRdsExportRole \
--kms-key-id arn:aws:kms:ap-northeast-1:123456789012:key/abcd-efgh-1234
このコマンドで、指定したスナップショットをS3にエクスポートできます。復元時には、保存されたデータを整形してRDSに戻す流れになります。
6. 初心者がつまずきやすいポイントと注意点
- S3バケットの権限設定が不足していると、エクスポートが失敗する
- IAMロールに適切なポリシーを付与していないとアクセスエラーが発生する
- S3から直接RDSに復元はできないため、データ変換が必要
- KMSキーを指定しないと暗号化が有効化されない
これらを事前に理解しておくことで、スムーズにRDSのバックアップと復元を実施できます。