自动创建 Amazon EBS 快照?

自动创建 Amazon EBS 快照?

偶尔我会去http://aws.amazon.com/console并手动右键单击我的 EBS 卷并创建快照。

这有点繁琐,有时我会忘记。是否可以自动执行此操作,例如制作每日或每周快照?

我正在使用 Windows Server 实例。

答案1

使用 AMI 工具:

答案2

作为命令行工具的替代方案,您可以使用我开发的 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. 编辑backup.phpphp 文件并设置行中的所有设置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:00 运行它。因为我使用间隔24 hours。如果您设置的间隔较短,请考虑更频繁地触发 cronjob。您甚至可以每 5 分钟设置一次。无论如何,它只会在给定的间隔内创建新快照。

    * 23 * * * /usr/local/ec2/backup.php
    

相关内容