本文中含有需要您注意的重要提示信息,忽略该信息可能对您的业务造成影响,请务必仔细阅读。
为了有效排查和解决弹性伸缩服务相关问题,本文为您汇总了使用弹性伸缩服务时遇到的一些常见问题。
类别 | 相关问题 |
弹性伸缩计费 | |
伸缩组 | |
伸缩配置 | |
定时任务 | |
报警任务 | |
伸缩活动 | |
伸缩组内实例管理 | |
关联负载均衡实例 | |
关联RDS实例 |
弹性伸缩收费吗?
弹性伸缩本身不收取任何费用,例如开通弹性伸缩服务、创建伸缩组时,均不需要付费。但您在使用ECS实例、ECI实例、负载均衡实例、RDS实例等其他产品的资源时,需要为这些资源付费。更多计费信息,请参见关联计费项。
为什么刚欠费的ECS实例或ECI实例就被全部释放了?
弹性伸缩提供了健康检查功能,如果发现ECS实例或ECI实例未处于运行中状态,则判定该ECS实例或ECI实例不健康。弹性伸缩会自动移出甚至释放伸缩组内不健康的ECS实例或ECI实例,更多信息,请参见伸缩组内实例的生命周期。
如果您的账号欠费,伸缩组内所有后付费的ECS实例或ECI实例(包括按量付费实例和抢占式实例)都会停机,弹性伸缩判定停机的ECS实例或ECI实例不健康,然后移出并释放这些ECS实例或ECI实例。
请您确保账号可用额度充足。欠费后伸缩组内ECS实例或ECI实例状态变化,请参见到期或欠费说明。
停用伸缩组后,ECS实例或ECI实例还收费吗?
伸缩组本身不收费,但是您需要为伸缩组内的ECS实例或ECI实例付费。停用伸缩组后,如果伸缩组内的ECS实例或ECI实例还存在,则需要继续为ECS实例或ECI实例付费。
账户余额不足100元,弹性伸缩还能正常扩容按量付费实例吗?
不可以。
如果您的阿里云账户余额(即现金余额)和代金券的总值小于100.00元人民币,则将无法购买按量付费实例(ECS实例或ECI实例),从而导致弹性伸缩的扩容活动失败。
弹性伸缩支持自动伸缩数据盘吗?
不支持。
弹性伸缩只支持自动增加或减少伸缩组内ECS实例或ECI实例的数量,不支持自动提升或降低单台ECS实例或ECI实例的数据盘数量、大小等配置。
弹性伸缩服务一定要搭配负载均衡、云监控、RDS才能使用吗?
不是。
弹性伸缩是开放灵活的平台,您可以不搭配负载均衡、RDS、云监控,但是搭配这些产品可以增强弹性伸缩的服务能力。例如:
搭配负载均衡一起部署,更多信息,请参见什么是传统型负载均衡CLB。
搭配云数据库RDS一起部署,更多信息,请参见云数据库RDS简介。
通过云监控触发弹性扩张和收缩活动,更多信息,请参见报警任务概述。
一个伸缩组最多可以添加多少台实例?
弹性伸缩相关的数量限制,更多信息,请参见使用限制。
我能添加已经创建的实例吗?
可以。
但待添加的ECS实例或ECI实例需要满足以下条件:
ECS实例或ECI实例必须与伸缩组在同一个地域。更多信息,请参见地域和可用区。
ECS实例或ECI实例必须处于运行中状态,更多信息,请参见实例的生命周期或ECI实例生命周期介绍。
ECS实例或ECI实例不能已添加到其他伸缩组中。
我能添加已经创建的包年包月ECS实例吗?
可以。
弹性伸缩支持自动创建按量付费或者抢占式实例,同时支持添加已经创建的包年包月和按量付费实例。
ECS实例或ECI实例是否可以加入到多个伸缩组中?
不可以。
同一个ECS实例或ECI实例只能属于一个伸缩组。如果需要将某一个实例从一个伸缩组移动到另一个伸缩组,您需要先将该实例从原来的伸缩组中移出,然后再将其添加到新的伸缩组中。具体操作,请参见手动移出实例和手动添加ECS实例或ECI实例。
我能控制如何移出实例吗?
可以。
您可以为伸缩组配置移出策略,移出策略支持两级筛选,可以自动筛选最早伸缩配置对应的实例、最早创建的实例或最新创建的实例,更多信息,请参见创建伸缩组。
停用伸缩组后,会释放已经自动添加到伸缩组的实例吗?
不会。
在控制台或者调用接口停用伸缩组后,不会自动释放伸缩组内的ECS实例或ECI数量。关于如何停用伸缩组,请参见停用伸缩组。
影响ECI类型伸缩组的扩容时延因素包括哪些?
ECI类型伸缩组的扩容时延的主要影响因素包括容器初始化时延、应用启动时延、配置生命周期挂钩时延、扩容容器注册外部资源时延等。
ECI类型的伸缩组扩容时,扩容时间指伸缩组中ECI实例扩容时的整个生命周期过程所耗费的时间,关于ECI实例生命周期挂钩的更多信息,请参见生命周期挂钩概述。
一个伸缩组可以添加多种规格的ECS实例吗?
可以。
一个伸缩配置支持选择多规格的ECS实例,使得弹性扩张的成功率更高,但存在添加数量上的限制。更多信息,请参见使用限制。
在伸缩组内可以配置8核或者16核的ECS实例吗?
可以。
如果当前可选实例规格不能满足需求,您可以提交工单申请使用更多ECS实例规格。
使用弹性伸缩自动创建ECS实例时,如何指定数据盘的容量?
创建伸缩配置时,在存储中指定数据盘的容量即可。具体操作,请参见创建伸缩配置(ECS实例)。
如果弹性伸缩动态调整ECS实例的数量,如何保证使用镜像市场镜像时能正常弹出ECS实例?
如果您需要弹出N台同类型的镜像,您需要提前购买N个镜像市场的镜像。
镜像市场镜像是否支持批量购买?
暂不支持批量购买。
如果镜像市场已不存在之前使用的镜像,如何保证使用该镜像正常弹出ECS实例?
建议您选择镜像市场中的其他可用镜像。
伸缩组创建ECS实例时出现云市场镜像不可用报错怎么办?
问题现象:伸缩组创建ECS实例时出现云市场镜像不可用,报错信息如下所示。
Fail to create Instance into scaling group("The specified image is from the image market. You have not bought it or your quota has been exceeded.").
问题原因:上述现象的可能原因是伸缩配置中虽选用了镜像市场中的第三方镜像,但您却没有购买该镜像或者您的购买配额已经超过了限制。
解决方案:弹性伸缩服务不能自动创建镜像市场中第三方镜像的ECS实例,您需要先到云市场购买第三方镜像,购买成功后再回到弹性伸缩服务中创建该镜像的ECS实例。
1个product code能否支持不同地域的镜像?
支持,前提是该地域已经支持该商品镜像。
购买了100个product code同样值的镜像,是否支持在所有的地域可用?
目前镜像市场的镜像已经具备地域属性,请您购买需要使用的地域镜像。
我能设置周期性定时任务吗?
可以。更多信息,请参见创建定时任务。
报警任务和定时任务之间有执行优先级吗?
报警任务和定时任务不会同时触发,而且两种任务间相互独立,没有相对优先级。
如果报警任务失败,但仍然满足报警任务触发条件,待当前伸缩活动结束后报警任务仍会被执行。
您可以为定时任务设置重试时间,避免被拒绝执行后无法再次触发,具体操作,请参见创建定时任务。
弹性伸缩中的报警任务触发条件有哪些?
报警任务可以关联CPU使用率、内存使用率、系统平均负载、内网出入流量等监控项统计信息,自动增加或减少ECS实例或ECI实例。更多信息,请参见系统监控报警任务。
如何设置报警任务触发条件?
在使用报警任务之前,您需要确认ECS实例中已安装新版本的云监控Agent。如未安装云监控Agent,具体操作,请参见云监控Java版本插件安装。
创建报警任务时,您需要根据实际业务情况选择使用的触发条件。具体操作,请参见创建报警任务。
如何使用报警任务删除通过弹性伸缩创建的实例?
弹性伸缩是否可以根据云监控中的自定义报警项进行动态伸缩?
可以。更多信息,请参见自定义监控报警任务。
提交工单时,我需要提供哪些弹性伸缩信息?
提交工单时,您可以提供伸缩组的活动ID(ScalingActivityId)或者相关日志,便于快速排查。
查看伸缩活动的操作,请参见查看伸缩活动详情。
为什么伸缩组创建ECS实例时出现资源报错?
如果弹出以下报错,可能是因为ECS资源不足,建议您更换可用区再试。
Fail to create Instance into scaling group("The resource is out of usage.").
Fail to create Instance into scaling group("The specified region is in resource control, please try later.").
如何避免单实例规格库存不足导致扩容失败?
建议您在创建伸缩组时设置多可用区(选择不同可用区下的虚拟交换机即可),并在创建伸缩配置时选择多实例规格,当某个ECS实例规格在某个可用区没有库存时,弹性伸缩服务会自动切换到有库存的实例规格及可用区进行扩容。具体操作,请参见创建伸缩组和创建伸缩配置(ECS实例)。
伸缩组内ECS实例开启了释放保护,为什么仍然被自动释放了?
在弹性伸缩自动创建一台ECS实例后,如果您在ECS管理控制台的实例列表页面或者调用API ModifyInstanceAttribute为ECS实例开启了释放保护,并不能阻止弹性伸缩自动释放实例。
您可以将伸缩组内的ECS实例转为保护状态,避免被自动释放,具体操作,请参见手动将实例转为保护状态。
如何保证手动添加的实例不会被移出伸缩组?
您可以将伸缩组内的ECS实例或ECI实例转为保护状态,避免被自动释放,具体操作,请参见手动将实例转为保护状态。
伸缩组自动增加或者减少ECS实例后,弹性伸缩会自动从RDS实例或者Memcache实例的IP白名单中添加或者移除ECS实例吗?
会从RDS实例的IP白名单中添加或者移除ECS实例,不会从Memcache实例的IP白名单中添加或者移除ECS实例。
怎样阻止伸缩组内手动添加的实例被自动移除?
假设您需要保证100台手动添加的ECS实例或ECI实例不会被自动移出伸缩组,请做如下配置:
将最小实例数设置为大于等于100。
将一级移出策略设置为最早伸缩配置对应的实例。
由于您手动添加的ECS实例或ECI实例不是通过伸缩配置创建的,所以这些ECS实例或ECI实例不会遵循任何伸缩配置。伸缩组会优先挑选、移出并释放自动创建的ECS实例或ECI实例,当伸缩组内自动创建的ECS实例或ECI实例被全部移除后,才会挑选、移除并保留您手动添加的ECS实例或ECI实例。
如果您想阻止伸缩组自动移除您手动添加的ECS实例或ECI实例,请不要停止ECS实例或ECI实例,否则弹性伸缩会认定该ECS实例或ECI实例不健康,并将不健康的ECS实例或ECI实例自动移出伸缩组。
从伸缩组内移出并释放ECS实例后,ECS实例的数据会保留吗?
不会。
弹性伸缩会自动释放ECS实例,您需要确保伸缩组内的ECS实例没有保存应用的状态信息或者重要数据,例如,会话记录(session)、数据库和日志等。如果您的应用需要保存状态信息,建议将状态信息保存到独立的状态服务器(例如ECS)、数据库(例如RDS)或者日志服务中。
如何删除通过弹性伸缩创建的实例?
您可以在伸缩组的ECS实例或ECI实例列表中删除自动创建的ECS实例或ECI实例,具体操作,请参见手动移出或删除实例。
弹性伸缩自动创建多台ECS实例时,部分创建失败时如何处理?
弹性伸缩会保持ECS实例级事务的完整性,而非伸缩活动级事务的完整性。您可以在控制台查看伸缩活动的完成情况,具体操作,请参见查看伸缩活动详情。
例如,需要自动创建20台ECS实例,19台创建成功,1台创建失败,则创建成功的19台ECS实例加入伸缩组,不会重新尝试创建剩余的1台ECS实例,伸缩活动完成,但是状态显示为警告。
弹性伸缩自动创建的实例如何查看密码并进行登录?
由于伸缩配置不支持设置统一的自定义密码,如果使用Linux操作系统,推荐您为伸缩配置指定SSH密钥对。
如果您不使用SSH密钥对登录实例,则需要在控制台重置密码后(重启后生效)才能登录。
弹性伸缩自动创建的ECS实例的密码为什么和我自定义镜像中的密码不一致?
创建ECS实例时,实例登录密码不使用自定义镜像中的密码。为了保证安全性,推荐您为伸缩配置指定SSH密钥对。
如果您不使用SSH密钥对登录实例,则需要在控制台重置密码后(重启后生效)才能登录。
怎么将数据同步到伸缩组内的ECS实例?
创建伸缩配置时,您可以通过ECS自定义镜像模板来创建实例。在ECS实例运行过程中,如果需要做系统内部数据同步,建议您自定义安装rsync进行同步。
为什么弹出的实例中/etc/hosts新增的127.0.0.1被重置清除了?
如果您在修改/etc/hosts后创建自定义镜像,通过该自定义镜像自动创建ECS实例时,会还原到系统默认设置,所以会被清除。如果需要保留/etc/hosts设置,您可以尝试在rc.local中添加相关脚本代码,检测/etc/hosts中是否存在相关信息,若不存在则自动添加。
伸缩组关联负载均衡实例有什么作用?
负载均衡实例可以根据转发策略将访问流量分发至ECS实例,为伸缩组关联负载均衡实例有利于扩展应用的服务能力和增强应用的可用性。更多负载均衡介绍,请参见什么是传统型负载均衡CLB。
伸缩组如何使用负载均衡实例?
如果创建伸缩组时关联了负载均衡实例,伸缩组会自动将加入伸缩组的云服务器ECS实例添加到该负载均衡实例中。一台负载均衡实例可以关联至多个伸缩组,加入负载均衡实例的ECS实例权重默认是50。更多负载均衡后端服务器介绍,请参见在默认服务器组添加和管理云服务器。
弹性伸缩创建ECS实例后,新实例会自动加入到负载均衡实例吗?
会,但是您需要预先为伸缩组关联负载均衡实例。
弹性伸缩新创建的实例是否可以添加至多台负载均衡实例?
可以。
伸缩组支持关联多台负载均衡实例,但存在上限,更多信息,请参见使用限制。
我可以修改伸缩组内实例在负载均衡实例中的权重吗?
可以。具体操作,请参见在默认服务器组添加和管理云服务器。
负载均衡实例中后端服务器的权重分配按比例计算,而非数字。假设您有两台ECS实例,50和50的权重效果100和100是一致的,比例均为1:1。一般情况下,弹性伸缩组后端ECS实例所承载的业务和ECS实例的规格应该都是一样的。弹性伸缩服务中配置的负载均衡默认设置ECS实例权重均为50。
我的负载均衡实例为公网类型,创建伸缩配置时ECS实例是否需要配置公网带宽?
ECS实例可以不配置公网带宽。但为了方便管理ECS实例,建议您在创建伸缩配置时选择至少1 Mbit/s公网带宽。
为什么创建伸缩组时出现负载均衡实例健康检查报错?
如果弹出以下报错,说明该负载均衡实例未开启健康检查。
The current health check type of load balancer "xxxx" does not support this action.
关联至伸缩组的负载均衡实例必须已经开启健康检查,具体操作,请参见配置和管理健康检查。
如何判断新创建的ECS实例可用于处理访问流量?
如果弹性伸缩在伸缩组里配置了负载均衡,负载均衡检查您后端的ECS端口正常之后,才会将请求转发给新的实例。
为什么负载均衡的7层HTTP监听超时超过60秒?
问题现象:负载均衡响应HTTP转发请求时,单次HTTP监听的超时时间大约为60秒。然而,当负载均衡实例上配置了多台ECS实例时,ECS实例配置的超时时间都大于60秒,或者直接返回504错误。
问题原因:负载均衡的HTTP监听超时时间是保证请求在允许的时间内能返回的最后一条防线,总超时时间与配置的ECS实例数量有关。
例如,在负载均衡实例上配置了多台ECS实例时,如果第一台ECS实例访问超时,会自动轮询第二台ECS实例,如果第二台ECS实例仍然超时,则轮询第三台ECS实例,直至所有ECS实例轮询完毕。假设一台负载均衡实例上配置了3台ECS实例,则实际发生的HTTP请求超时时间会变成大约180秒。另外,不排除其他服务会限制负载均衡超时时间设置。
解决方案:建议您避免依赖负载均衡监听超时设置,而是直接在ECS实例部署的应用上设置监听超时时间。
伸缩组关联RDS实例有什么作用?
RDS是一种稳定可靠、可弹性伸缩的在线数据库服务,为伸缩组关联RDS实例可以增强数据的安全性和可靠性,根据自定义的备份策略防止数据丢失和误删除。关于RDS的更多信息,请参见云数据库RDS简介。
伸缩组如何使用RDS实例?
如果创建伸缩组时添加了RDS实例,ECS实例加入伸缩组后,伸缩组会自动将该ECS实例的内网IP添加到RDS实例的访问白名单中,允许ECS实例内网通信。伸缩组支持关联多台RDS实例。更多RDS实例白名单信息,请参见通过客户端、命令行连接RDS MySQL实例。