MySQL / Amazon RDSデータベースをS3にバックアップする推奨方法は何ですか?


31

これには2つの目的があります。

  1. Amazon Web Servicesで地域全体に問題が発生した場合にオフサイトのバックアップを作成します。
  2. 量産データを量産請求アカウントからベータ請求アカウントにコピーするには。

現在、Amazonはこれら2つのユースケースのいずれかをすぐにサポートしているようには見えません。

上記のmysqldumpおよびxtrabackup(フォームポストを参照)を見てきました。

私はまた、より複雑なプロセスを見ました(ここに文書化されています

  1. ソース請求アカウント(prod)の新しいRDSサーバーは、最近のバックアップから分離されます。
  2. 手順1でRDSサーバーにアクセスできる新しいEC2インスタンスがスピンアップされます。
  3. mysqldumpは、このデータベースのバックアップを作成するために使用されます。
  4. バックアップはオフサイトの場所にコピーされます(S3?)。
  5. 別のアカウントや地域で、新しいRDSサーバーがスピンアップされます。
  6. データベースダンプがインポートされます。

ヒントと提案を歓迎します。

回答:


22

RDSをバックアップする推奨方法は、自動バックアップDBスナップショットを使用することです。DBスナップショットは基本的にEBSスナップショットと同じであり、バックグラウンドでS3に保存されますが、同じリージョン内でのみ使用可能です。

クロスリージョンフォールトトレランスが必要な場合(良いプラン!)、mysqldumpから「難しい方法」を実行しない限り、別のリージョンでデータを復元する方法はありません。別の方法として、mysqldumpを使用してバックアップする(適切なサイズのデータ​​セットでは低速でひどい)か、別のリージョンで独自のEC2ベースのスレーブをセットアップし、利用可能な方法(xtrabackup、EBSスナップショットなど)を使用してバックアップします。ただし、独自のMySQLインスタンスの管理に戻っているため、RDSを完全に放棄することもできます。

私のお金では、RDSは実際にはまったく利点がなく、パフォーマンス、柔軟性、および信頼性において多くの欠点があります。RDSが提供する価値を自問します。


現在のニーズでは、mysqldumpは正常に機能する場合があります。大規模なデータセットは期待していません。通常、データをあまり速く移動する必要はありません。RDSが、別のアカウントのスナップショットから新しいサーバーを起動する機能をサポートすることを期待しています。もう1つの便利な機能は、S3またはそのインポート/エクスポートサーバーを使用して、スナップショットをAmazonからインポート/エクスポートすることです。とにかく、答えてくれてありがとう。
ピータースティーブンス

4
RDSスナップショットを他のリージョンにコピーできるようになりました。詳細については、この発表このドキュメントを参照してください。
シェリー

9

同じ問題がありました。私の解決策は、単純なbashスクリプトを書くことでした。ただし、単一の地域に限定されます。

問題のスクリプトは次のとおりです。

#!/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"

mysqldump
user1250を

7

AWS RDSは、スナップショットのリージョン間およびアカウント間のコピーをサポートするようになりました。これにより、RDSを使用するだけで目標を達成できます。

この時点で、ダンプスクリプトメソッドを使用してS3にバックアップを取得する必要があります。S3-IAまたはGlacierを使用する機能は、RDSバックアップコストがS3 Standard以上(dbによって異なる)であるため、コスト削減の観点から優れています。


1
アカウントごとに、リージョンごとに100の手動スナップショットのソフト制限があります。
ジュード
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.