Amazon ec2 EC2按时启动

Amazon ec2 EC2按时启动,amazon-ec2,Amazon Ec2,我需要每天早上6点启动一个EC2实例。限制是我不想让计算机整天运行来启动或使用像ylastic这样的付费解决方案 在阿莱斯特,这是迄今为止最接近的一次。此解决方案的缺点是启动时间很长,因为安装自定义软件和移动数据需要时间 是否有一种方法可以只启动一个实例,而不是每次创建一个新实例,如图所示?鉴于您的限制,很遗憾,目前可用的两种专用自动化机制并未涵盖所需的功能: -是一种web服务,设计用于根据用户定义的策略、计划和健康检查自动启动或终止Amazon Elastic Compute Cloud(

我需要每天早上6点启动一个EC2实例。限制是我不想让计算机整天运行来启动或使用像ylastic这样的付费解决方案

在阿莱斯特,这是迄今为止最接近的一次。此解决方案的缺点是启动时间很长,因为安装自定义软件和移动数据需要时间


是否有一种方法可以只启动一个实例,而不是每次创建一个新实例,如图所示?

鉴于您的限制,很遗憾,目前可用的两种专用自动化机制并未涵盖所需的功能:

  • -是一种web服务,设计用于根据用户定义的策略、计划和健康检查自动启动或终止Amazon Elastic Compute Cloud(Amazon EC2)实例
  • -为开发人员和系统管理员提供了一种简便的方法来创建和管理相关AWS资源的集合,以有序和可预测的方式调配和更新这些资源
虽然从概念上讲,启动/停止/重新启动实例属于后者的管理类别,但它不可用(顺便说一句,这就是为什么我们在不推荐使用的实例及其后续实例中专门为此功能提供单独任务的原因)

因此,我在对的答复中概述的方法仍然适用,尽管有额外的限制,您需要找到一个免费托管脚本或持续集成解决方案的提供商:

  • 例如,托管脚本已经有相当一段时间可以通过这些cron作业提供程序来实现

  • 鉴于目前解决方案的爆炸式增长,有相当多的提供商,这将允许您以某种方式执行主机脚本和/或连续集成解决方案


显然,您需要验证,根据相关提供商的不同,是否可以接受将免费层用于此类目的。

自动缩放似乎是解决您问题的最佳解决方案,AWS提供了此类功能。如果您正在寻找像ylastic这样的第三方解决方案,但又不想为此付费,那么我知道的唯一替代方案就是我工作的Scalr。Scalr是开源的,所以你只需要自己编写源代码就可以了


其他替代方案包括RightScale和enStratus。在我看来,RightScale免费帐户不包括自动缩放,而enStratus“免费”计划按每服务器小时0.20美元收取自动缩放费用。

还有另一个基于java的工具可以帮助您解决此问题。对我来说,我想让我的团队在办公时间使用服务器,即使它没有被任何人使用。这个应用程序帮助我实现了这个目标。希望这对你也有好处。

我刚刚遇到了同样的问题,并用这里提到的同样多的答案解决了它。您唯一需要的就是要运行的AMI映像和

下载工具后,按照自述文件中的说明设置环境变量并添加AWS凭据。然后将以下命令放入批处理文件(此示例适用于Windows):

用您选择的一些名称替换大写的名称,并为您的AMI映像设置正确的AMI-ID。基于AMI映像的新实例将在22:15开始,并在23:05结束。当然,您也可以更改实例类型和可用性区域。

您现在可以使用。设置完主要内容后,只需创建一个新实例,并将其缩放类型设置为“基于时间”(创建实例后,由于某种原因,无法更改此类型):

现在,只需单击“实例>基于时间”类别并设置时间表:


如前所述,向自动缩放组添加计划是最好的“云状”方法

但如果您无法终止实例并使用新实例,例如,如果您有与etc关联的弹性IP,则可以使用新实例

您可以创建一个Ruby脚本,根据日期时间范围启动和停止实例

#/usr/bin/env ruby
#基于https://github.com/phstc/amazon_start_stop
需要“雾”
需要“tzinfo”
开始时间=6#早上6点开始
停车时间=0#凌晨0点(午夜)停车
conn=Fog::Compute::AWS.new(AWS\u access\u key\u id:ENV['AWS\u access\u key\u id'],
aws_secret_access_key:ENV['aws_secret_access_key'])
server=conn.servers.get('instance-id')
tz=TZInfo::Timezone.get('美国/圣保罗')
现在=现在
停止时间范围=(now.hour>=停止时间&now.hour<开始时间)
运行范围=!停车场
如果停止\u范围&&server.state!='停止
服务器停止
结束
如果运行_range&&server.state!='跑步'
server.start
#如果你需要一个弹性IP
#(每次停止实例时,Amazon都会断开弹性IP)
#
#server.wait_等待{state=='running'}
#conn.associate_address server.id,127.0.0.0
结束

看看如何创建一个免费使用的调度程序。

亚马逊现在已经安排了保留实例

预定保留实例:这些实例可在您保留的时间窗口内启动。此选项允许您 将容量保留与可预测的定期计划相匹配 这只需要一天、一周或一个月的一小部分时间。对于 例如,如果您有一个可预测的工作负载,例如每月 财务风险分析,您可以安排它在前五个月运行 一个月中的几天。另一个例子是安排夜间账单 处理时间为每个工作日下午4点至上午12点

而且

术语: 计划的保留实例具有 1年的定期承诺

付款选项:预定保留实例 按小时计提费用,在期限内按月递增计费

雷亚
as-create-launch-config --key "MYLAUNCHCONFIGNAME" --instance-type t1.micro --image-id MYAMI-IMAGEID --launch-config "MYLAUNCHCONFIGNAME"
as-create-auto-scaling-group --auto-scaling-group "MYSCALINGGROUPNAME" --launch-configuration "MYLAUNCHCONFIGNAME" --availability-zones "us-east-1a,us-east-1b,us-east-1c,us-east-1d" --min-size 0 --max-size 0

rem Don't restart instance after shutdown
as-suspend-processes "MYSCALINGGROUPNAME" --processes ReplaceUnhealthy

rem Start instance at 22:15
as-put-scheduled-update-group-action --name "startMyInstance" --auto-scaling-group "MYSCALINGGROUPNAME" --min-size 1 --max-size 1   --recurrence "15 22 * * *"

rem Stop instance at 23:05
as-put-scheduled-update-group-action --name "stopMyInstance" --auto-scaling-group "MYSCALINGGROUPNAME" --min-size 0 --max-size 0 --recurrence "05 23 * * *"
var AWS = require('aws-sdk');
exports.handler = function(event, context) {
 var ec2 = new AWS.EC2({region: 'YOUR_REGION'});
 ec2.startInstances({InstanceIds : ['YOUR_INSTANCE_ID'] },function (err, data) {
 if (err) console.log(err, err.stack); // an error occurred
 else console.log(data); // successful response
 context.done(err,data);
 });
};