web-dev-qa-db-ja.com

ec2インスタンスを毎日バックアップする方法は?

コミュニティAMIベースのLinuxがあります EC2[〜#〜] aws [〜#〜] のインスタンス。次に、毎日インスタンスをバックアップし、そのイメージを S ​​にアップロードします。

それは私のEC2インスタンスのバックアップを行う正しい方法ですか? EC2インスタンスをバックアップするための正しい方法を指摘するのを手伝ってくれる人はいますか?

51
hacker

インスタンスが EBS backed であることが望ましい。

その場合、EBSスナップショットを作成してインスタンスをバックアップできます。これは、aws.Amazon.com(手動)、AWSコマンドラインツール(必要に応じてcronまたはWindowsタスクスケジューラで自動化およびスケジュール設定可能)またはAWS APIを使用して実行できます。

スナップショットプロセス中にデータベースバックアップファイルの状態が変更されないようにする必要があります。 Ubuntuで実行されているMySQLにこの戦略を使用したとき、スクリプトを使用して consistent snapshot を確保しました。このスクリプトは、XFSファイルシステムの機能を使用して、スナップショット中にファイルシステムをフリーズします。この展開では、スナップショットは2〜3秒しかかからず、非常にオフピーク時に実行されました。 Webサイトの訪問者は、2〜3秒の遅れを経験します。 Windowsの場合、デバイスをスナップショット用に再起動できない場合(夜間にメンテナンスウィンドウがない場合)、代わりに別のEBSデバイス(スナップショット用の「S:\」デバイスなど)を作成し、SQL Serverバックアップツールを使用してその他のデバイスで.bakファイルを作成してから、その個別のEBSデバイスのEBSスナップショットを作成します。

バックアップのスクリプトの詳細については、次の関連質問を参照してください。

Linuxでこれに適したスクリプトまたはソリューションを持っている人は誰でもAmazon EBSスナップショットを自動化する

別のストレージがマウントされている場合データベースについては、必ずそれもバックアップしてください!

[〜#〜] update [〜#〜]

スナップショットを手動で作成するには、

  • https://console.aws.Amazon.com/ec2/home?#s=Volumes を参照します
  • バックアップするボリュームを右クリックします(ボリュームが接続されているインスタンスは、「接続情報」という名前の列にあります)
  • _Create Snapshot_を選択します

インスタンスからAMIイメージを作成し、それと同じように他のインスタンスを大量に作成するには(より多くのリソースを持つインスタンスや、負荷を分散するなど):

46
Eric J.