これには2つの目的があります。
現在、Amazonはこれらの2つの使用例のいずれかをそのままサポートしているようには見えません。
Mysqldumpおよびxtrabackup( form postを参照)が言及されているのを見ました。
私はまた、より複雑なプロセスを見ました(文書化 here )
ヒントと提案は大歓迎です。
RDSをバックアップするための推奨される方法は、 自動バックアップ および DBスナップショット を使用することです。 DBスナップショットは基本的にEBSスナップショットと同じで、S3にバックグラウンドで保存されますが、同じリージョン内でのみ使用できます。
クロスリージョンフォールトトレランス(良い計画!)が必要な場合、mysqldumpから「難しい方法」を実行せずに 別のリージョン でデータを復元する方法はありません。代わりに、mysqldumpを使用してバックアップするか(妥当なサイズのデータセットでは遅くてひどい)、独自のEC2ベースのスレーブを別のリージョンに設定し、利用可能な方法(xtrabackup、EBSスナップショットなど)を使用してバックアップします。ただし、その後、独自のMySQLインスタンスの管理に戻るため、RDSを完全に破棄することもできます。
私のお金では、RDSはまったくまったくメリットがなく、パフォーマンス、柔軟性、および信頼性に多くの欠点があります。 RDSがどのような価値を提供するかを自問します。
同じ問題がありました。私の解決策は 単純なbashスクリプト を記述することでした。ただし、1つの地域に限定されます。
問題のスクリプトは次のとおりです。
#!/bin/bash
NOWDATE=`date +%Y-%m-%d`
BACKUPNAME="$NOWDATE.sql.gz"
echo "Creating backup of database finances to $BACKUPNAME"
mysqldump –user=user –password=password database_name | gzip -9 > $BACKUPNAME
echo "Succesfully created database backup"
echo "Uploading backup to Amazon S3 bucket…"
s3cmd put $BACKUPNAME s3://path/to/file/$BACKUPNAME
echo "Successfully uploaded backup to S3"
echo "Deleting backup file…"
rm $BACKUPNAME
echo "Done"
AWS RDSは、クロスリージョンとクロスアカウント スナップショットのコピー をサポートするようになり、RDSを使用するだけで目標を達成できるようになりました。
この時点でも、S3へのバックアップを取得するには、ダンプスクリプトメソッドを使用する必要があります。 S3-IAまたはGlacierを使用する機能は、RDSバックアップコストがS3標準以上(dbによって異なる)であるため、コスト削減の点で優れています。