AMIでEC2インスタンスをバックアップするスクリプト

みなさんこんにちは。



$ subjのスクリプトを共有したい。 おそらく誰かが便利だと思うでしょう。



問題声明:AWSには多数のEC2サーバーがさまざまな地域に散在しています。 リカバリを簡単かつ迅速に行うために、バックアップを自動化する必要があります。



実際、スクリプト自体: ec2-automate-backup2ami.sh

説明: README.md

クラウンで実行するスクリプトラッパー: ec2-backup-wrapper.sh



スクリプトを機能させるには、まず次のことを行う必要があります。



crontabは次のようになります。

 [ec2-user@backup ~]$ crontab -l PATH=$PATH:/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin EC2_HOME=/usr/local SHELL=/bin/bash 00 2 * * * ./ec2-backup-wrapper.sh stage "alerts1@mydomain.cc alerts2@mydomain.cc"
      
      







スクリプトの結果は、ec2-automate-backup2ami.stage.logの形式のログファイルに書き込まれます。 実行エラーが発生した場合、指定されたメールアドレスに送信されます。



パラメータを含むファイルが呼び出されることに注意してください ステージ、およびスクリプトはドットなしの名前で呼び出されます。



正常に実行されると、ec2ab_server.domain.cc_YYYY-MM-DDという名前のイメージがAWS AMIに次のタグとともに表示されます。





PSスクリプトは、 colinbjohnsonからのec2-automate-backup (地域による反復なしのEBSドライブのバックアップ)に基づいて作成されました。



PPS Mac OS / Xではおそらくスクリプトは正しく動作しません(get_purge_after_date()関数の4行目を参照)が、確認する方法はありません。



PPPSスナップショットを作成する前に、スクリプトはファイルシステムバッファーをフラッシュしないため、バックアップに一貫性がない場合があります。 一貫性のあるスナップショットを作成するには、 ec2-consistent-snapshotを使用することをお勧めします



UPDバックアップ中に作成されたAMIイメージを他のリージョンに自動的にコピーする機能が追加されました。 このオプションを有効にするには、スクリプト起動のコマンドラインで-yスイッチを指定し、対応するタグをインスタンス設定に追加します。 リージョンは、可能なすべてのバックアップから、または-oスイッチ(区切り文字-スペース)を使用してコマンドラインで指定されたリストからランダムにバックアップを作成する前に選択されます。 つまり、1回のスクリプト実行ですべてのコピーが1つの領域に分類されます。

例:

 /usr/local/bin/ec2-automate-backup2ami.sh -s tag -t "Backup=true" -k 14d -p -h -u -n -y "CopyRegion=true" -o "us-west-1 eu-west-1"
      
      





上記の例では、スクリプトは次のことを行います。



リージョン名のリストは、 ec2-describe-regionsコマンドを使用して取得できます。



コピー後、コピーされたリージョンに対応する値を持つCopyRegionタグが元のAMIに追加されます。 そして、コピーされたAMIに対して、 SourceRegionタグはソース領域を識別します。



All Articles