我有一个ELB和ASG,在那里ASG需要做大约75分钟的热身,然后才能提供完整和正确的结果。 我指定了4500秒的健康检查宽限期。 在ELB模板中,我指定了一个HealthCheck目标来进行ping操作,只有当预热完成时,才返回200(OK)。 "HealthCheck" : { "HealthyThreshold" : "3", "Interval" : "60", "Target" : { "Ref" : "HealthCheckAPI" }, "Timeout" : "15", "UnhealthyThreshold" : "5" } 并且Healthcheck API的URL在属性中定义: "HealthCheckAPI" : { "Type" : "String", "Description" : "The API to check for service availability and being warmed up", "Default": "HTTP:8080/api/health" } 然而,我现在得到的是,即使Healthcheck API返回503(服务不可用),ELB仍然可以为处于正在被热身的ASG实例服务请求。 这是预期的吗? Healthcheck API返回非200(OK)时,如何使ELB不可用?
我目前有按需实例的ASG。 不过,我想利用现货实例的成本节省。 我的想法是有一个ASG严格的现场实例。 投标价格将低于目前的按需价格1美分。 然后我想设置它,以便当我的出价高于当前要价时,切换到按需扩展组。 有没有办法做到这一点? 似乎有一个终止通知,当一个实例将被closures发送。 我可以以某种方式使用这个来启动按需扩展组吗? 有关如何build立这样的系统的任何build议?
AWS ECS自动缩放,我们正在使用6个c4.2xlarge实例用于自动缩放组。 想知道降低实例types并将实例数量增加到15个是个好主意
在我工作的公司中有一个生产集群,它的成员实例不是ECS优化的 。 我想将这些实例更改为ECS优化的ami。 在做生产环境之前,我想在我创build的testing集群上testing过程。 我尝试了两种方法,但都没有奏效。 第一种方法 – 创build一个新的LaunchConfiguration并编辑Autoscaling组,指向新的LaunchConfiguration。 我创build了一个新的LaunchConfiguration,它使用了非优化的ami,然后创build了一个使用此LaunchConfiguration的新AutoScaling组。 除了LaunchConfiguration(使用非优化的ami)之外,我还有另外一个使用ECS优化的ami的LaunchConfiguration。 于是我在ECS中创build了一个新的集群,并指出它使用了包含未优化的ami的LaunchConfiguration。 然后,我等了几分钟创build实例,准备好之后,我将Autoscaling组中的LaunchConfiguration更改为使用ecs优化的ami的LaunchConfiguration。 我一直刷新页面,大约一分钟后,LaunchConfiguration又变回原来的LaunchConfiguration(使用非ecs优化的那个)–AutScaling Group开始的LaunchConfiguration。 第二种方法 – 创build一个新的空集群,以便用实例手动填充它。 如果我select使用实例通过新的集群创build向导填充集群,那么我将无法select非ecs优化的ami,因为如果设置为使用ecs优化的ami,并单独创build一个新的AutoScaling将使用非ecs优化的ami的LaunchConfiguration分组。 因此,在创buildAutoScaling组并编辑“用户数据”以包含应附加到的群集名称之后,出于某种原因,群集将不会“查看”实例。 我ssh'ed到一个实例,看到ecs代理没有安装在那里,我无法安装它。 我的问题是: 创造一个类似于我的生产环境的正确方法是什么? 将启动configuration更改为使用ecs优化的ami的步骤是什么?
每当我得到一个新的客户,我需要为他部署一个独立的系统(nodejs服务器,数据库等)。 我想简化整个过程,这就是为什么我正在考虑使用Docker(特别是Swarm)。 但是用Docker Swarm为每个客户部署一个Docker容器是否是一个好习惯? 那个容器将运行nodejs服务,而只有一个数据库服务,但是每个客户都有独立的数据库文件。 我有这个问题,因为由于我对docker的理解有限,放大复制副本似乎主要是为了负载平衡。 但我的用法是一个客户一个容器/服务。 此外,每个客户在我的主域名下都有自己的域名,比如说我的公司有域名“xyz dot com”,那么客户A的域名是dot xyz dot com,客户B将有域名名字b点xyz点com。 我的nginx服务如何将每个客户的HTTP请求路由到它自己的容器? 谢谢
我面对ASG的一个非常奇怪的行为。 我的目标是手动将多可用区ASG从12个缩减到7个实例。 我想手工closures实例。 这里我做了什么: 设置ASG的挂起操作启动,终止,使集群接pipe对ASG实例状态的完全控制,暂停调度 手动终止5个实例(此时ASG有7个健康节点) 将ASG更新为最小值:7,最大值:7,期望值:7,将暂停操作设置为空值 保存ASG设置 ASG没有使用7个健康的实例,而是终止了所有的实例,并推出了7个新的实例。 我需要明白为什么会发生。 Wy做ASG决定终止健康的事例吗?
我们正在使用EC2现场实例来抓取数据。 在任何时候,我们需要运行20个实例。 我们的目标是实现高可用性和成本优化。 我们要遵循的scheme如下:我们以非常高的出价(5美元)启动20个现货实例,以避免终止。 我们继续监测现货价格,当我们发现现货价格高于2美元并且在那里保持超过N小时时,我们启动20个按需实例,然后终止所有现货实例。 再次监测现货价格,当现货价格稳定下来时,启动20个现货实例并终止按需实例。 为了简单起见,我们正在寻找一种现成的工具来处理这个问题。 我可以使用自动缩放或其他工具来做到这一点吗?
今天,我创build了一个包含多个策略的AutoScaling组,每个策略都有一个与CloudWatch指标关联的警报。 AutoScaling组启动了两个实例,因为我要求该组的最小数量。 我打开了我的基准testing,打到了新组,平均CPU使用率超过了我为报警设置的阈值。 当状态从INSUFFICIENT_DATA变为OK时,我观察了每个报警的历史logging,最后到ALARM。 正如所料。 然后我等待政策的执行。 执行前指定的300秒来去。 然后我决定看看政策执行之前需要多长时间。 现在已经过了一个半小时了,那些政策还没有执行。 我感到沮丧,并删除了ASG和所有的政策和报警。 我决定也许我在创build策略和警报时犯了一个错误。 所以我重新创build了它们。 同样的问题。 警报处于ALARM状态,从不执行策略。 我可以手动执行这些策略而不会有任何问题,但是这样做是无能为力的。 如果它有什么不同,我在AWS控制台中创build了所有这些东西。 在过去,我使用API来创buildASG和策略,这些组执行策略就好了。 有什么我做错了吗? (或者也许AWS服务只是有问题。) 更新: 今天再试一次。 决定使用API而不是控制台来查看是否有任何区别。 我正在使用的闹钟刚刚从OK更新为20分钟前的闹铃。 CPUUtilization >= 35 for 5 minutes Actions: In ALARM: For group TEST use policy Scale Out API (Add 1 instance) Namespace: AWS/EC2 Metric Name: CPUUtilization Dimensions: AutoScalingGroupName = TEST Statistic: Average Period: […]
任何人都可以请告诉我如何运行一个shell脚本的所有ec2实例是一个自动缩放组的一部分。 该场景是,我有一个脚本,我想运行在自动缩放组的一部分自动打开的许多ec2实例。 原生方法是ssh到每个实例并运行脚本。 我正在寻找一种方式,它可以自动运行在所有的实例上,当我运行在一个EC2实例或任何更好的方式做到这一点? 提前致谢。
来自AWS Elastic Beanstalk,我熟悉scripts.config文件,它允许我指定要在部署之后运行的命令以及在创build新的缩放实例之后运行的命令。 Azure中是否有相当的设施? 是否有可能在部署后运行脚本,更重要的是,是否有办法区分Elastic Beanstalk这两种scheme?