标签: autoscaling

AWS EC2 Auto Scaling Groups:我得到Min和Max,但是Desired实例的限制是什么?

在AWS EC2中设置Auto Scaling组时Min,Max界限似乎有意义:

  • 根据策略缩减到的最小实例数
  • 根据策略扩展到的最大实例数

但是,我从来没有能够绕过那些Desired意图影响的东西.

我总是设置Desired相同Min,因为一般来说,我想向亚马逊支付可能的最低价格,除非你需要一个实例来处理负载,它应该是Min实例数.

我知道你是否使用ElasticBeanstalk并设置Min为1和Max2它设置Desired为2(当然!) - 你不能选择一个值Desired.

不同Desired数量的实例的用例是什么?它有何不同?当您希望AWS的规模低于您Desired所希望的大于Min

amazon-ec2 amazon-web-services autoscaling amazon-elastic-beanstalk

58
推荐指数
5
解决办法
2万
查看次数

Amazon EC2通过正常关机自动缩小?

我们正在考虑使用EC2自动缩放来处理负载峰值.在我们的示例中,我们希望根据SQS队列大小扩展实例,然后缩小规模,并使队列大小恢复控制.每个SQS消息都定义了一个可能长时间运行的作业(有时每个消息最多20分钟),必须在终止实例之前完成.

我们的软件可以优雅地处理关机过程,因此sudo service ourapp stop在返回之前,发布将等待应用程序完成.

我的问题; 当自动缩放开始按比例缩小时,它会发出终止(显然就像敲击电源按钮),是否会等待我们的应用程序在实例"关机"之前完全退出?

https://forums.aws.amazon.com/message.jspa?messageID=180674 < - 我发现的那些东西似乎暗示它没有

amazon-ec2 terminate autoscaling

32
推荐指数
2
解决办法
2万
查看次数

如何在Cloudformation模板中创建可变数量的EC2实例资源?

如何根据模板参数在Cloudformation模板中创建可变数量的EC2实例资源?

EC2 API和管理工具允许启动同一AMI的多个实例,但我无法使用Cloudformation找到如何执行此操作.

amazon-ec2 amazon-web-services aws-cloudformation autoscaling

27
推荐指数
4
解决办法
2万
查看次数

我可以扩展nodejs应用程序的最佳方法是什么?

基础

现在我的一些朋友和我正在尝试开发一个在nodejs中制作的浏览器游戏.这是一个多人自上而下的射击游戏,客户端和服务器端代码中的大多数都是用javascript编写的.我们有一个很好的总体方向,我们想进去,我们在开发游戏方面有很多乐趣.制作这款游戏​​时我们的目标之一就是让它尽可能地作弊.做到这一点,我们所有的游戏逻辑都在服务器端处理.客户端仅通过Web套接字将其输入发送到服务器,并且服务器使用游戏中发生的事情更新客户端(也是Web套接字).这是我们问题的开始.

所有的服务器端数学都变得非常沉重,我们发现我们需要以某种方式扩展以处理超过10个玩家(我们希望能够容纳更多).起初我们认为我们可以根据需要垂直扩展,但由于nodejs是单线程的,因此只能利用一个核心.这意味着获得更强大的服务器无助于解决这个问题.我们唯一的解决方案是横向扩展.

我们为什么要问这里

我们还没有找到任何关于如何扩展nodejs游戏的好例子.我们的用例非常特别,虽然我们已经尽力做到了这一点,但我们真的可以从外部意见和建议中受益

细节

我们已经对如何解决这个问题投入了大量的思考.我们已经研究了一个多星期了.这是我们到目前为止所做的事情:

四种类型的服务器

我们将任务分成4种不同的"类型"服务器.每个人都将完成一项特定的任务.

代理服务器

代理服务器将位于整个堆栈的前端,并且是可从Internet直接访问的唯一服务器(可能有更多这些服务器).它会有haproxy,它会将所有连接路由到Web服务器.我们之所以选择haproxy,是因为它具有丰富的功能集,可靠性和几乎无与伦比的速度.

Web服务器

Web服务器将接收Web请求,并为所有Web页面提供服务.他们还将处理游说创建/管理和游戏创建/管理.要做到这一点,他们会告诉游戏服务器它有什么游说,用户在那个大厅,以及他们将要玩的游戏的信息.然后,Web服务器将更新游戏服务器关于用户输入,并且游戏服务器将更新游戏中发生的事件的Web服务器(谁将更新客户端).Web服务器将使用TCP套接字与游戏服务器就任何类型的管理进行通信,并且在与游戏更新进行通信时将使用UDP套接字.这将全部用nodejs完成.

游戏服务器

游戏服务器将处理有关游戏的所有游戏数学和变量更新.游戏服务器还与数据库服务器通信,以记录游戏中玩家的酷炫统计数据.这将通过nodejs完成.

数据库服务器

db服务器将托管数据库.事实证明这部分是最简单的,因为我们找到了rethinkdb,这是有史以来最酷的数据库.这很容易扩展,奇怪的是,它是扩展我们的应用程序最简单的部分.

其他一些细节

如果你无法解决整个问题,那么看看这个,这是我们认为我们将如何扩展的半准确图表.

如果你只是好奇,或者认为看看我们的游戏可能会有所帮助,那么它目前在这里处于未扩展状态.

我们不想要的一些事情

  • 我们不想使用nodejs的集群模块.它不稳定(这里说),它不能扩展到其他服务器,只能扩展到其他处理器.我们想要实现横向扩展.

我们的问题,总结一下

我们希望我们朝着正确的方向前进,我们已完成了我们的功课,但我们不确定.我们当然可以采取一些技巧,以正确的方式做到这一点.

谢谢

我意识到这是一个很长的问题,做出深思熟虑的答案并不容易,但我真的很感激.

谢谢!!

javascript sockets scalability node.js autoscaling

24
推荐指数
1
解决办法
7166
查看次数

aws 启动模板与启动配置有什么不同?

使用 Terraform 配置自动缩放组时,我感到很困惑。我应该为 EC2 属性使用启动配置还是启动模板,例如哪个 AMI、实例类型……?

我不知道它们之间有什么区别,我们应该使用哪个以及它们为什么存在?

amazon-web-services autoscaling terraform

20
推荐指数
3
解决办法
9426
查看次数

需要什么"理想的实例"?AWS Amazon Webservices AutoScaling组

我在亚马逊AWS上遇到了一个奇怪的情况.我不明白所需的实例编号用于什么?我有一个自动缩放组,其中包含已配置的向上扩展和向下扩展操作.

我有一个自定义PHP文件运行操作根据一些外部因素向上扩展缩小.我想知道我必须在所需的实例中编写哪个数字,以免影响我的自动缩放操作.

例如:

  1. 我把期望值设为2
  2. 我有2个实例在运行
  3. 我运行Scale Down动作
  4. 实例是1
  5. 自动调节组将自动启动另一个实例,因此我的缩小比例没有用,因为我结束了2运行

我能做什么?

非常感谢!

amazon-ec2 amazon-web-services autoscaling

19
推荐指数
3
解决办法
1万
查看次数

使用Auto Scaling管理Amazon EC2中应用程序的代码更改的最佳方法

我在AWS中使用Auto Scaling在Load balancer后面运行了多个实例.

现在,如果我必须将一些代码更改推送到这些实例以及由于自动扩展策略而可能启动的任何新实例,那么最好的方法是什么?

我所知道的是唯一的方法,来创建一个新的AMI与最新的代码,修改使用这个新的AMI,然后终止现有的情况下,自动缩放政策.但这可能涉及更长的停机时间,我不确定整个过程是否可以自动化.

任何指向这个方向的人都将受到高度赞赏.

scalability amazon-ec2 amazon-web-services autoscaling amazon-ami

18
推荐指数
1
解决办法
4403
查看次数

使用Ansible(+ Docker?)进行持续部署和AWS自动扩展

我的组织的网站是在前端Web服务器上运行的Django应用程序+ AWS中的一些后台处理服务器.

我们目前正在使用Ansible:

  • 系统配置(来自裸OS映像)
  • 经常手动触发的代码部署.

同样的Ansible playbook能够从头开始配置本地Vagrant dev VM或生产EC2实例.

我们现在想要在EC2中实现自动缩放,这需要对"将服务器视为牛,而不是宠物"的理念进行一些更改.

第一个先决条件是从静态管理的Ansible库存转移到动态的,基于EC2 API的库存,完成.

接下来的一个重要问题是如何在这个新世界中进行部署,在这个世界中,一夜之间会出现一次性事件.我能想到的选择是:

  1. 为每个部署烘焙新的完全部署的AMI,创建新的AS Launch配置并使用它更新AS组.听起来非常非常麻烦,但由于采用了清晰的平板方法,因此也非常可靠,并且将确保任何系统更改所需的代码都在这里.此外,实例启动时无需其他步骤,因此可以更快地启动和运行.
  2. 使用不经常更改的基本AMI,在启动时自动从git获取最新的应用程序代码,启动webserver.一旦完成,只需按需要进行手动部署,就像之前一样.但是如果新代码依赖于系统配置的更改(新包,权限等)呢?看起来你必须开始处理代码版本和系统/ AMI版本之间的依赖关系,而"只做一个完整的ansible运行"方法更集成,更可靠.这不仅仅是实践中的潜在头痛吗?
  3. 使用Docker?我有一个强烈的预感它可能有用,但我不确定它如何适合我们的图片.我们是一个相对独立的Django前端应用程序,只有RabbitMQ + memcache作为服务,我们永远不会在同一台主机上运行.那么使用包含系统包+最新代码的Ansible构建Docker镜像有什么好处,而不是让Ansible直接在EC2实例上进行?

你怎么做呢 ?任何见解/最佳实践?谢谢 !

amazon-ec2 continuous-deployment autoscaling ansible docker

18
推荐指数
1
解决办法
5465
查看次数

具有aws云形成和自动缩放的Mongodb集群

我一直在研究在AWS中创建自己的mongodb集群.Aws mongodb模板提供了一些很好的起点.但是,它不包括自动缩放或节点发生故障时.例如,如果我有1个主节点和2个辅助节点.并且主要关闭并且自动缩放开始.如何将新启动的mongodb实例添加到副本集?

如果查看模板,它将使用init.sh脚本检查正在启动的节点是否为主节点,并等待所有其他节点存在,并在主节点上创建具有其IP地址的副本集.在初始配置副本集时,所有节点都已存在.

不仅如此,我的节点应用程序使用mongoose.部分数据库连接允许您指定多个节点.我如何跟踪当前正在运行的内容(我想我可以使用DynamoDB但不确定).

如果实例出现故障,通常的流程是什么?如果发生这种情况,人们通常会手动重新配置群集吗?

有什么想法吗?谢谢.

cluster-computing mongodb amazon-web-services aws-cloudformation autoscaling

17
推荐指数
1
解决办法
8727
查看次数

我可以使用AWS代码部署在自动缩放时提取应用程序代码吗?

我想在负载变高时自动调整基础架构.我正在运行我的基础设施AWS.我有一个要求,我需要从Github何时发出应用程序代码autoscaling.由于代码经常更改,我们无法从中获取AMI并启动实例AMI.所以我想从中提取最新的代码repositories.AWS刚刚推出了一项名为的服务AWS CodeDeploy.如何在实例启动时使用此服务自动执行代码拉取过程?

PS我已经编写了一个init script自动附加EIP白名单的白名单,将IP放在不同的安全组上,并load-balancer在实例启动时将实例放在a 下,并在实例在autoscaling中终止时撤销所有内容.

github amazon-web-services autoscaling aws-code-deploy

16
推荐指数
1
解决办法
7557
查看次数