Snapshot 快照

    從 snapshot 復原系統

    方法一:使用 Image 方式

    EC2 Console > Snapshots > 指定要復原的 snapshot > Create Image > 

    • Name: <自訂名稱>
    • Description: <Image 內容描述>
    • Architecture: <依照原始系統>
    • Root Device Name: <預設>
    • Kernel ID: <依照原始系統> 註:不可使用 Use Default
    • Ramdisk ID: <依照原始系統>
    • Block Device Mapping: Root Volume

    EC2 Console > AMIs > 選擇剛剛新增的 AMI > Launch, 建立一個新的 Instance

    主機自動備份-snapshot

    以 EC2 API 方式對 Instance 定期作 snapshot,並只保持最新期間的備份檔。

    作者網站:http://tiger-fish.com/blog/automated...ing-amazon-ec2
    專案首頁:http://code.google.com/p/ec2-delete-old-snapshots/

    主要的 EC2 API Script 有兩個:
    PHP 版本建議是 5.2+

    1. 新增 snapshot:這個 API 有兩種,一個是由 Java 開發的 EC2 API Tools;另一個是由 PHP 開發的 AWS SDK for PHP - CreateSnapshotSample.php。
    2. 刪除舊的 snapshot (ec2-manage-snapshot.php)

     

    Cron Script:

    #!/bin/bash
    
    DATESTAMP=`date +%Y%m%d`
    TIMESTAMP=`date +%H%M`
    LOGFILE="/var/log/tigerfish_ebs_backup.log"
    
    VOLUMES=( vol-12345678 vol-23456789 vol-34567890 )
    
    echo "TIGERFISH EBS BACKUP $DATESTAMP $TIMESTAMP" 2>&1 | tee -a $LOGFILE
    echo " " 2>&1 | tee -a $LOGFILE
    
    # Create a snapshot of each volume.
    for volume in ${VOLUMES[@]}
    do
      php CreateSnapshot.php -v $volume 2>&1 | tee -a $LOGFILE
    done
    
    # Remove older snapshots we don't need to keep any more.
    for volume in ${VOLUMES[@]}
    do
      php ec2-manage-snapshots.php -v $volume 2>&1 | tee -a $LOGFILE
    done
    

    CreateSnapshot.php

    • 這個 PHP 放在 ec2-manage-snapshots.zip (專案名稱是 ec2-delete-old-snapshots ),目錄是 /Amazon/EC2/Samples。
    • 預設的 AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY 變數是包含在同樣目錄的隱藏檔 .config.inc.php。
    • 必須先安裝 AWS SDK for PHP
    • 如果 snapshot 儲存有指定區域(region),可以修改成:
    $ec2Config = array ('ServiceURL' => 'https://eu-west-1.ec2.amazonaws.com');
    $service = new Amazon_EC2_Client(AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, $ec2Config);
    

    ec2-manage-snapshots.php

    • 必須先安裝 AWS SDK for PHP
    • 預設的 AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY 變數是定義在 PHP 程式內,為了與 CreatSnapshot.php 作統一管理,可以自行修改成 .config.inc.php 方式來定義。
    標籤 (Edit tags)
    • No tags
    您必須 登入 才能發佈評論。
    Powered by MindTouch Core