3

EBS ボリューム (2) の (毎日の) スナップショットを自動化し、それらを管理する最良の方法は何ですか?

「管理」とは、毎日のバックアップを作成するだけでなく (cron ジョブが関与すると推測しています)、過度のデータ使用を避けるために x 日より古いスナップショットも削除するスクリプトを探していることを意味します。 .

そのようなスクリプトはどこかに存在すると思いますが、特定することはできません。

タイ

4

4 に答える 4

3

http://awsmissingtools.comで同様のオープンソース ツールを使用しました。「ec2-automate-backup」ツールを次のように実行すると、「ec2-automate-backup -s tag -t Backup-true -k 14 - p" は、タグ Backup=true を使用してすべての EBS ボリュームをバックアップし、これらのスナップショットが -k 日後に削除されるように設定します。 .

于 2012-10-08T00:41:03.097 に答える
1

この種のスクリプトの他の実装があると確信していますが、ここに私のものがあります:

http://www.capsunlock.net/2009/10/deleting-old-ebs-snapshots.html

于 2010-12-15T14:56:26.237 に答える
0

私は同じ問題に遭遇していました。その結果、特別なスクリプトを作成します。サーバーにPHPがインストールされている場合は、次のことができます。

このスクリプトは、設定した間隔でバックアップを作成するだけでなく、指定されたより古いスナップショットを削除します。

  1. サーバーへの SSH 接続を開きます。
  2. フォルダに移動

    $ cd /usr/local/
    
  3. この要点をec2フォルダーに複製します

    $ git clone https://gist.github.com/9738785.git ec2
    
  4. そのフォルダに移動します

    $ cd ec2
    
  5. 実行backup.php可能にする

    $ chmod +x backup.php
    
  6. AWS PHP SDK github プロジェクトのリリースを開き、aws.zipボタンの URL をコピーします。今すぐあなたのサーバーにダウンロードしてください。

    $ wget https://github.com/aws/aws-sdk-php/releases/download/2.6.0/aws.zip
    
  7. このファイルをディレクトリに解凍しますaws

    $ unzip aws.zip -d aws 
    
  8. phpファイルを編集backup.phpし、すべての設定を一行で設定します5-12

    $dryrun     = FALSE;
    $interval   = '24 hours';
    $keep_for   = '10 Days';
    $volumes    = array('vol-********');
    $api_key    = '*********************';
    $api_secret = '****************************************';
    $ec2_region = 'us-east-1';
    $snap_descr = "Daily backup";
    
  9. 試して。このスクリプトを実行します

    $ ./backup.php
    

    テストはスナップショットが作成されました。

  10. すべて問題なければ、cronjob を追加します。

    * 23 * * * /usr/local/ec2/backup.php
    
于 2014-03-26T16:01:19.137 に答える
0

EBS スナップショットを管理するためのツールを探している多くの人に出会いました。インターネットでいくつかのツールを見つけましたが、それらは単なるスクリプトであり、不完全なソリューションでした。最後に、より柔軟で一元化され、管理しやすいプログラムを作成することにしました。

アイデアは、すべての EBS スナップショット (インスタンスまたはリモートに対してローカル) を制御するための集中型プログラムを持つことです。

小さな Perl プログラムを作成しましたhttps://github.com/sciclo/EBS_Snapshots

いくつかの機能: * プログラムはデーモン モードまたはスクリプト モード (crontab) で実行されます。

  • ローカルに接続されたボリュームまたはリモートのみを選択することもできます

  • ログファイルを定義できます

  • ボリュームごとにスナップショットの数量を定義できます

  • ボリュームごとに頻度を定義できます

  • 頻度と数量は、制限に達すると「ラウンド ロビン」のように機能し、最も古いスナップショットが削除されます。

  • つまり、6 つのスナップショットがあり、3 つの段階で数量を変更すると、プロセスによって自動的に再調整されます。

  • 「プレスクリプト」実行を定義できます。スナップショットを実行する前に実行するコードを追加できます。たとえば、ボリュームをアンマウントしたり、一部のサービスを停止したり、インスタンスの負荷を確認したりできます。親プロセスは終了コードを待ちます。「0」は成功を意味し、終了コードに応じて続行するかどうかを定義できます。

    • スナップショットを取得した後に任意のスクリプトを実行する「ポストスクリプト」実行を定義できます (たとえば、それについて通知する電子メール)。

    • 「保護されたスナップショット」を追加して、定義したスナップショットをスキップできます。つまり、スナップショットは「読み取り専用」になり、消去されることはありません。

    スクリプトがデーモンモードで実行されている場合、スクリプトを「オンザフライ」で再構成できます。スクリプトはシグナルと IPC を受け入れます。

    API を何度も要求することを避けるために、「ローカル キャッシュ」があります。構成ファイルの構成を追加または変更し、プロセスを強制終了せずにリロードできます。

于 2014-04-22T13:42:53.857 に答える