云服务器内容精选

  • 请求示例 创建一个伸缩组,伸缩组名称为GroupNameTest,伸缩配置ID为47683a91-93ee-462a-a7d7-484c006f4440,虚拟私有云ID为a8327883-6b07-4497-9c61-68d03ee193a,网卡ID为3cd35bca-5a10-416f-8994-f79169559870,最大实例数为10,期望实例数为0,最小实例数为0,健康检查方式为云服务器健康检查,设置具体企业项目,伸缩组扩缩容时目标AZ选择的优先级策略为PICK_FIRST(选择优先)。
  • 返回值 正常 200 异常 返回值 说明 400 Bad Request 服务器未能处理请求。 401 Unauthorized 被请求的页面需要用户名和密码。 403 Forbidden 对被请求的页面访问禁止。 404 Not Found 服务器无法找到被请求的页面。 405 Method Not Allowed 请求中指定的方法不被允许。 406 Not Acceptable 服务器生成的响应无法被客户端所接受。 407 Proxy Authentication Required 用户必须首先使用代理服务器进行验证,这样请求才会被处理。 408 Request Timeout 请求超出了服务器的等待时间。 409 Conflict 由于冲突,请求无法被完成。 500 Internal Server Error 请求未完成。服务异常。 501 Not Implemented 请求未完成。服务器不支持所请求的功能。 502 Bad Gateway 请求未完成。服务器从上游服务器收到一个无效的响应。 503 Service Unavailable 请求未完成。系统暂时异常。 504 Gateway Timeout 网关超时。
  • 请求参数 表2 请求参数 参数 是否必选 参数类型 描述 scaling_group_name 是 String 伸缩组名称(1-64个字符),只能包含中文、字母、数字、下划线或中划线。 scaling_configuration_id 是 String 伸缩配置ID,通过查询弹性伸缩配置列表接口获取,请参考查询弹性伸缩配置列表。 desire_instance_number 否 Integer 期望实例数量,默认值为最小实例数。 最小实例数≤期望实例数≤最大实例数。 min_instance_number 否 Integer 最小实例数量,默认值为0。 max_instance_number 否 Integer 最大实例数量,默认值为1。取值范围为0-300的整数。 cool_down_time 否 Integer 冷却时间,取值范围0-86400,默认为300,单位是秒。 在每次伸缩活动完成之后,系统开始计算冷却时间。伸缩组在冷却时间内,会拒绝告警策略的触发,其他类型的伸缩策略(如定时策略和周期策略)及手动触发不受限制。 说明: 伸缩组在进行扩容活动过程中,允许缩容策略的触发,扩容活动结束后执行缩容活动,不受冷却时间影响。 伸缩组在进行缩容活动过程中,允许扩容策略的触发,缩容活动结束后执行扩容活动,不受冷却时间影响。 lb_listener_id 否 String 弹性负载均衡监听器ID,最多支持绑定6个负载均衡监听器,多个负载均衡监听器ID以逗号分隔。获取监听器ID的方法请参考查询负载均衡器列表。 该字段与lbaas_listeners互斥。 lbaas_listeners 否 Array of lbaas_listeners objects 弹性负载均衡器信息,最多支持绑定6个负载均衡。列表数据结构请参考表3。获取负载均衡器的信息请参考查询后端云服务器组。 该字段与lb_listener_id互斥。 available_zones 否 Array of strings 可用区信息。弹性伸缩活动中自动添加的云服务器会被创建在指定的可用区中。如果没有指定可用区,会由系统自动指定可用区。详情请参考地区和终端节点。 networks 是 Array of networks objects 网络信息,最多支持选择5个子网,传入的第一个子网默认作为云服务器的主网卡。获取子网信息请参考查询子网列表。数据结构信息请参考表4。 security_groups 否 Array of security_groups objects 安全组信息,仅支持选择1个安全组。获取安全组信息请参考查询安全组列表。数据结构信息请参考表7。 当伸缩配置和伸缩组同时指定安全组时,将以伸缩配置中的安全组为准;当伸缩配置和伸缩组都没有指定安全组时,增加的弹性云服务器将使用默认安全组。为了使用灵活性更高,推荐在伸缩配置中指定安全组。 vpc_id 是 String 虚拟私有云(VPC)信息,获取VPC信息具体操作请参考查询VPC列表。 health_periodic_audit_method 否 String 伸缩组实例健康检查方式:ELB_AUDIT和NOVA_AUDIT。当伸缩组设置负载均衡时,默认为ELB_AUDIT;否则默认为NOVA_AUDIT。 ELB_AUDIT:负载均衡健康检查方式,在有监听器的伸缩组中有效。 NOVA_AUDIT:云服务器健康检查方式,是弹性伸缩自带的健康检查方式。 health_periodic_audit_time 否 Integer 伸缩组实例的健康检查周期,可设置为1、5、15、60、180(分钟),若不设置该参数,默认为5。 若设置为0,可以实现10秒级健康检查。 health_periodic_audit_grace_period 否 Integer 伸缩组实例健康状况检查宽限期,取值范围0-86400,单位是秒,默认为600。 当实例加入伸缩组并且进入已启用状态后,健康状况检查宽限期才会启动,伸缩组会等健康状况检查宽限期结束后才检查实例的运行状况。 当伸缩组实例健康检查方式为ELB_AUDIT时,该参数生效。 instance_terminate_policy 否 String 伸缩组实例移除策略: OLD_CONFIG_OLD_INSTANCE(默认):从“较早创建的配置”创建的实例中选择较早创建的实例进行优先移除。 OLD_CONFIG_NEW_INSTANCE:从“较早创建的配置”创建的实例中选择较晚创建的实例进行优先移除。 OLD_INSTANCE:较早创建的实例被优先移除。 NEW_INSTANCE:较晚创建的实例将被优先移除。 notifications 否 Array of strings 通知方式: EMAIL为发送邮件通知。 该通知方式已经被废除,建议给弹性伸缩组配置通知功能。请参考通知。 delete_publicip 否 Boolean 配置删除云服务器时(即进行实例缩容时,将云服务器从伸缩组中移出)是否删除云服务器绑定的弹性IP。取值为true或false,默认为false。 true:删除云服务器时,会同时删除绑定在云服务器上的弹性IP。当弹性IP的计费方式为包年包月时,不会被删除。 false:删除云服务器时,仅解绑定在云服务器上的弹性IP,不删除弹性IP。 delete_volume 否 Boolean 配置删除云服务器时(即进行实例缩容时,将云服务器从伸缩组中移出)是否删除云服务器绑定的数据盘。取值为true或false,默认为false。 true:删除云服务器时,会同时删除绑定在云服务器上的数据盘。当数据盘的计费方式为包年包月时,不会被删除。 false:删除云服务器时,仅解绑定在云服务器上的数据盘,不删除数据盘。 enterprise_project_id 否 String 企业项目ID,用于指定伸缩组归属的企业项目。 取值为0或无该值,表示属于default企业项目。 取值为UUID,表示属于该UUID对应的企业项目,如何获取企业项目ID,请参考查询企业项目列表。 当伸缩组配置企业项目时,由该伸缩组创建的弹性云服务器将归属于该企业项目。否则将使用默认企业项目。 说明: 关于企业项目特性的详细信息,请参见企业项目管理。 multi_az_priority_policy 否 String 伸缩组扩缩容时目标AZ选择的优先级策略: EQUILIBRIUM_DISTRIBUTE(默认):均衡分布,云服务器扩缩容时优先保证available_zones列表中各AZ下虚拟机数量均衡,当无法在目标AZ下完成虚拟机扩容时,按照PICK_FIRST原则选择其他可用AZ。 PICK_FIRST:选择优先,虚拟机扩缩容时目标AZ的选择按照available_zones列表的顺序进行优先级排序。 description 否 String 伸缩组描述(1-256个字符)。 iam_agency_name 否 String 委托(1-64个字符)。 iam_agency_name为空或者无值则不传递该字段。 iam_agency_name不为空则向下传递。 tags 否 Array of tags objects 创建特定标签并将其添加到伸缩组。每个伸缩组最多添加10个标签。 详情请参考表8。 表3 lbaas_listeners字段数据结构说明 参数 是否必选 参数类型 描述 pool_id 是 String 后端云服务器组ID protocol_port 是 Integer 后端协议号,指后端云服务器监听的端口,取值范围[1, 65535]。 weight 是 Integer 权重,指后端云服务器经分发得到的请求数量的比例,取值范围[0, 100]。 protocol_version 否 String 绑定到负载均衡云服务器组的IP地址版本,枚举值支持ipv4和ipv6。 说明: 伸缩组实例不支持多网卡双栈,仅支持首网卡双栈,其他网卡地址会被忽略。首网卡是指从弹性云服务器查询到的第一张支持所选IP地址版本的网卡,可能是主网卡,也可能是扩展网卡。 只有选择支持IPv6的弹性云服务器,才可以使用IPv4/IPv6双栈网络,请务必选择支持的区域和规格。 当pool_id、protocol_port、protocol_version均一致时,会进行去重。 表4 networks字段数据结构说明 参数 是否必选 参数类型 描述 id 是 String 子网的网络ID。 ipv6_enable 否 Boolean 是否启用IPv6。 true:标识此网卡已启用ipv6。 false:标识此网卡未启用ipv6。默认取值为false。 ipv6_bandwidth 否 ipv6_bandwidth object 绑定的IPv6共享带宽。默认为空,表示未绑定IPv6的共享带宽。 allowed_address_pairs 否 Array of allowed_address_pairs objects 是否开启源/目的检查开关。 表5 ipv6_bandwidth字段数据结构说明 参数 是否必选 参数类型 描述 id 是 String IPv6共享带宽的ID 表6 allowed_address_pairs字段数据结构说明 参数 是否必选 参数类型 描述 ip_address 否 String 是否开启源/目的检查开关。 默认是开启,不允许置空。 关闭:1.1.1.1/0 开启:除“1.1.1.1/0”以外的其余值均按开启处理 表7 security_groups字段数据结构说明 参数 是否必选 参数类型 描述 id 是 String 安全组ID 表8 tags字段数据结构说明 参数 是否必选 参数类型 描述 key 是 String 键。 最大长度36个unicode字符。key不能为空。 同一资源的key值不能重复。 只能包含大写字母(A~Z)、小写字母(a~z)、数字(0-9)、下划线(_)、中划线(-)以及中文字符。 value 否 String 值。 每个值最大长度43个unicode字符,可以为空字符串。 value值只能包含大写字母(A~Z)、小写字母(a~z)、数字(0-9)、下划线(_)、中划线(-)、小数点(.)以及中文字符。
  • 功能介绍 伸缩组是具有相同应用场景的实例的集合,是启停伸缩策略和进行伸缩活动的基本单位。伸缩组内定义了最大实例数、期望实例数、最小实例数、虚拟私有云、子网、负载均衡等信息。 默认最多可以创建10个伸缩组。 如果伸缩组配置了负载均衡,在添加或移除实例时,会自动为实例绑定或解绑负载均衡监听器。 如果伸缩组使用负载均衡健康检查方式,伸缩组中的实例需要启用负载均衡器的监听端口才能通过健康检查。端口启用可在安全组中进行配置,可参考添加安全组规则进行操作。 如果您将多个负载均衡器添加到伸缩组,则只有在所有负载均衡器均检测到云服务器状态为正常的情况下,才会认为该弹性云服务器正常。否则只要有一个负载均衡器检测到云服务器状态异常,伸缩组会将该弹性云服务器移出伸缩组。 如果您将负载均衡器的多个端口绑定到伸缩组,则只有在所有端口均检测到云服务器状态为正常的情况下,才会认为该弹性云服务器正常。否则只要有一个端口检测到云服务器状态异常,伸缩组会将该弹性云服务器移出伸缩组。 当实例绑定负载均衡器的多个端口时,推荐伸缩策略与云服务器实例告警指标关联,避免伸缩策略与单一业务或网络指标关联,否则当不同告警指标分别指向扩容和缩容时,会导致扩缩容同时触发。 弹性伸缩活动中,若实例与负载均衡器的多个端口依次绑定或解绑,未全部成功时,则认为实例伸缩失败。扩容触发实例释放并创建新实例,缩容失败不释放实例。
  • 响应示例 { "scaling_group": { "networks": [ { "id": " a8327883-6b07-4497-9c61-68d03ee193a ", "ipv6_enable": true, "ipv6_bandwidth": { "id": "076ee2ff-f23e-4338-b8ac-1bc7278532d5" } } ], "available_zones": [ "XXXa", "XXXb" ], "detail": null, "scaling_group_name": "api_gateway_modify", "scaling_group_id": "d4e50321-3777-4135-97f8-9f5e9714a4b0", "scaling_group_status": "INSERVICE", "scaling_configuration_id": "53579851-3841-418d-a97b-9cecdb663a90", "scaling_configuration_name": "press", "current_instance_number": 7, "desire_instance_number": 8, "min_instance_number": 0, "max_instance_number": 100, "cool_down_time": 900, "lb_listener_id": null, "security_groups": [ { "id": "23b7b999-0a30-4b48-ae8f-ee201a88a6ab" } ], "create_time": "2015-09-01T08:36:10Z", "vpc_id": "3e22f934-800d-4bb4-a588-0b9a76108190", "health_periodic_audit_method": "NOVA_AUDIT", "health_periodic_audit_time": 5, "health_periodic_audit_grace_period": 600, "instance_terminate_policy": "OLD_CONFIG_OLD_INSTANCE", "is_scaling": true, "delete_publicip": false, "notifications": null, "enterprise_project_id":"c92b1a5d-6f20-43f2-b1b7-7ce35e58e413", "activity_type":"MODIFY_ELB", "multi_az_priority_policy":"PICK_FIRST", "iam_agency_name":"test", "tags":[{"key":"1"}] } }
  • 返回值 正常 200 异常 返回值 说明 400 Bad Request 服务器未能处理请求。 401 Unauthorized 被请求的页面需要用户名和密码。 403 Forbidden 对被请求的页面访问禁止。 404 Not Found 服务器无法找到被请求的页面。 405 Method Not Allowed 请求中指定的方法不被允许。 406 Not Acceptable 服务器生成的响应无法被客户端所接受。 407 Proxy Authentication Required 用户必须首先使用代理服务器进行验证,这样请求才会被处理。 408 Request Timeout 请求超出了服务器的等待时间。 409 Conflict 由于冲突,请求无法被完成。 500 Internal Server Error 请求未完成。服务异常。 501 Not Implemented 请求未完成。服务器不支持所请求的功能。 502 Bad Gateway 请求未完成。服务器从上游服务器收到一个无效的响应。 503 Service Unavailable 请求未完成。系统暂时异常。 504 Gateway Timeout 网关超时。
  • 响应参数 表2 响应参数 参数 参数类型 描述 scaling_group scaling_groups object 伸缩组详情。 表3 scaling_groups字段数据结构说明 参数 参数类型 描述 scaling_group_name String 伸缩组名称。 scaling_group_id String 伸缩组ID。 scaling_group_status String 伸缩组状态。 scaling_configuration_id String 伸缩配置ID。 scaling_configuration_name String 伸缩配置名称。 current_instance_number Integer 伸缩组中当前实例数。 desire_instance_number Integer 伸缩组中期望实例数。 min_instance_number Integer 伸缩组中最小实例数。 max_instance_number Integer 伸缩组中最大实例数。 cool_down_time Integer 冷却时间,单位是秒。 lb_listener_id String 经典型负载均衡监听器ID,多个负载均衡监听器ID以逗号分隔。 lbaas_listeners Array of lbaas_listeners objects 增强型负载均衡器信息,详情请见表 lbaas_listeners字段数据结构说明。 available_zones Array of strings 可用区信息。 networks Array of networks objects 网络信息,详情请见表5 security_groups Array of security_groups objects 安全组信息,详情请见表8 create_time String 创建伸缩组时间,遵循UTC时间。 vpc_id String 伸缩组所在的VPC ID。 detail String 伸缩组详情。当伸缩活动失败时,在此处记录错误信息。 is_scaling Boolean 伸缩组伸缩标志。 health_periodic_audit_method String 健康检查方式。 health_periodic_audit_time Integer 健康检查的间隔时间。 health_periodic_audit_grace_period Integer 健康状况检查宽限期。 instance_terminate_policy String 移除策略。 notifications Array of strings 通知方式: EMAIL为发送邮件通知。 该通知方式已经被废除,建议给弹性伸缩组配置通知功能。请参考通知。 delete_publicip Boolean 删除云服务器是否删除云服务器绑定的弹性IP。 delete_volume Boolean 删除云服务器是否删除云服务器绑定的数据盘。 cloud_location_id String 该参数为预留字段。 enterprise_project_id String 企业项目ID activity_type String 伸缩组活动类型。 multi_az_priority_policy String 伸缩组扩缩容时目标AZ选择的优先级策略。 description String 伸缩组描述。 iam_agency_name String 委托。 tags Array of tags objects 添加到伸缩组的标签。详情请见表9 表4 networks字段数据结构说明 参数 参数类型 描述 id String 子网的网络ID。 ipv6_enable Boolean 是否启用IPv6。取值为true时,标识此网卡已启用ipv6。默认取值为false。 ipv6_bandwidth ipv6_bandwidth object 绑定的IPv6共享带宽,默认为空,表示不绑定IPv6的共享带宽。 allowed_address_pairs Array of allowed_address_pairs objects 是否开启源/目的检查开关。 表5 ipv6_bandwidth字段数据结构说明 参数 参数类型 描述 id String IPv6共享带宽的ID。 表6 allowed_address_pairs字段数据结构说明 参数 参数类型 描述 ip_address String 是否开启源/目的检查开关。 默认是开启,不允许置空。 关闭:1.1.1.1/0 开启:除“1.1.1.1/0”以外的其余值均按开启处理
  • 响应示例 { "limit": 20, "total_number": 2, "start_number": 0, "scaling_configurations": [ { "tenant": "ce061903a53545dcaddb300093b477d2", "scaling_configuration_id": "6afe46f9-7d3d-4046-8748-3b2a1085ad86", "scaling_configuration_name": " config_name_1", "instance_config": { "disk": [ { "size": 40, "volume_type": "SATA", "disk_type": "SYS" }, { "size": 100, "volume_type": "SATA", "disk_type": "DATA" } ], "personality": null, "instance_name": null, "instance_id": null, "flavorRef": "103", "imageRef": "37ca2b35-6fc7-47ab-93c7-900324809c5c", "key_name": "keypair01", "key_fingerprint" : "SHA256:qlvdUkYgSjKUxcr2uJgJJRMCKMLkJO5BPLooBcgsF8k", "public_ip": null, "user_data": null, "metadata": {}, "security_groups": [{ "id": "6c22a6c0-b5d2-4a84-ac56-51090dcc33be" }], }, "create_time": "2015-07-23T01:04:07Z" }, { "tenant": "ce061903a53545dcaddb300093b477d2", "scaling_configuration_id": "24a8c5f3-c713-4aba-ac29-c17101009e5d", "scaling_configuration_name": "config_name_2", "instance_config": { "disk": [ { "size": 40, "volume_type": "SATA", "disk_type": "SYS" } ], "personality": null, "instance_name": null, "instance_id": null, "flavorRef": "103", "imageRef": "37ca2b35-6fc7-47ab-93c7-900324809c5c", "key_name": "keypair01", "key_fingerprint" : "SHA256:qlvdUkYgSjKUxcr2uJgJJRMCKMLkJO5BPLooBcgsF8k", "public_ip": null, "user_data": null, "metadata": {}, "security_groups": [{ "id": "6c22a6c0-b5d2-4a84-ac56-51090dcc33be" }], "multi_flavor_priority_policy": "PICK_FIRST" }, "create_time": "2015-07-22T01:08:41Z" } ] }
  • 返回值 正常 200 异常 返回值 说明 400 Bad Request 服务器未能处理请求。 401 Unauthorized 被请求的页面需要用户名和密码。 403 Forbidden 对被请求的页面访问禁止。 404 Not Found 服务器无法找到被请求的页面。 405 Method Not Allowed 请求中指定的方法不被允许。 406 Not Acceptable 服务器生成的响应无法被客户端所接受。 407 Proxy Authentication Required 用户必须首先使用代理服务器进行验证,这样请求才会被处理。 408 Request Timeout 请求超出了服务器的等待时间。 409 Conflict 由于冲突,请求无法被完成。 500 Internal Server Error 请求未完成。服务异常。 501 Not Implemented 请求未完成。服务器不支持所请求的功能。 502 Bad Gateway 请求未完成。服务器从上游服务器收到一个无效的响应。 503 Service Unavailable 请求未完成。系统暂时异常。 504 Gateway Timeout 网关超时。
  • 响应参数 表2 响应参数 参数 参数类型 描述 total_number Integer 总记录数。 start_number Integer 查询的起始行号。 limit Integer 查询记录数。 scaling_configurations Array of scaling_configurations objects 伸缩配置列表。 表3 scaling_configurations字段数据结构说明 参数 参数类型 描述 scaling_configuration_id String 伸缩配置ID,全局唯一。 tenant String 租户ID。 scaling_configuration_name String 伸缩配置名称。 支持模糊匹配。 instance_config instance_config object 实例配置信息。 create_time String 创建伸缩配置时间,遵循UTC时间。 scaling_group_id String 绑定该伸缩配置的伸缩组ID。 表4 instance_config字段数据结构说明 参数 参数类型 描述 flavorRef String 云服务器的规格ID。 imageRef String 镜像ID,同image_id。 disk Array of disk objects 磁盘组信息。 key_name String 登录云服务器的SSH密钥名称。 key_fingerprint String 登录云服务器的SSH密钥指纹。 instance_name String 该参数为预留字段。 说明: 使用已有云服务器规格为模板创建的伸缩配置,查询伸缩配置和列表接口时instance_name为空 instance_id String 该参数为预留字段。 adminPass String 该参数为预留字段。 personality Array of personality objects 注入文件信息。 public_ip public_ip object 云服务器的弹性IP信息。 user_data String cloud-init用户数据,base64格式编码。 metadata metadata object 创建云服务器元数据,详情见表11。 security_groups Array of security_groups objects 安全组信息。 server_group_id String 云服务器组ID。 tenancy String 在专属主机上创建弹性云服务器。 dedicated_host_id String 专属主机的ID。 market_type String 云服务器的计费模式,可以选择竞价计费或按需计费。 multi_flavor_priority_policy String 使用伸缩配置创建云主机的时候,多规格使用的优先级策略。 。 表5 disk字段数据结构说明 参数 参数类型 描述 size Integer 磁盘大小,容量单位为GB。 volume_type String 磁盘类型。 disk_type String 系统盘还是数据盘,DATA表示为数据盘,SYS表示为系统盘。 dedicated_storage_id String 磁盘所属的专属存储ID。 data_disk_image_id String 导入数据盘的数据盘镜像ID。 snapshot_id String 磁盘备份的快照ID。 metadata metadata object 创建磁盘的元数据,详情见表6。 iops Integer 云硬盘的iops。当“volume_type”设置为GPSSD2、ESSD2类型的云硬盘时,该参数可以设置。 说明: 了解GPSSD2、ESSD2类型云硬盘的iops,请参见磁盘类型及性能介绍。 仅支持按需计费。 throughput Integer 云硬盘的吞吐量,单位是MiB/s。当“volume_type”设置为GPSSD2类型的云硬盘时,该参数可以设置。 说明: 了解GPSSD2类型云硬盘的吞吐量大小范围,请参见磁盘类型及性能介绍。 仅支持按需计费。 表6 创建磁盘的metadata字段数据结构说明 参数 参数类型 描述 __system__encrypted String metadata中的表示加密功能的字段,0代表不加密,1代表加密。 该字段不存在时,云硬盘默认为不加密。 __system__cmkid String 用户主密钥ID,是metadata中的表示加密功能的字段,与__system__encrypted配合使用。 说明: 请参考查询密钥列表,通过HTTPS请求获取密钥ID。 表7 personality字段数据结构说明 参数 参数类型 描述 path String 注入文件路径信息。 content String 注入文件内容,base64格式编码。 表8 public_ip字段数据结构说明 参数 参数类型 描述 eip eip object 云服务器自动分配弹性IP时,创建弹性IP的配置参数。 表9 eip字段数据结构说明 参数 参数类型 描述 ip_type String IP地址类型。 bandwidth bandwidth object IP地址带宽参数。 表10 bandwidth字段数据结构说明 参数 参数类型 描述 size Integer 带宽(Mbit/s)。 share_type String 带宽的共享类型。 共享类型枚举: PER:独享型。 WHOLE:共享型。 charging_mode String 带宽的计费类型。 bandwidth:按带宽计费。 traffic:按流量计费。 id String 带宽ID,创建WHOLE类型带宽的弹性IP时指定的共享带宽。 表11 metadata字段数据结构说明 参数 参数类型 描述 admin_pass String Windows弹性云服务器Administrator用户的密码。 表12 security_groups字段数据结构说明 参数 参数类型 描述 id String 安全组ID
  • URI GET /autoscaling-api/v1/{project_id}/scaling_configuration 可以在URI后面用‘?’和‘&’添加不同的查询条件组合。支持参数说明中所有非必选参数过滤,请参考请求示例。 表1 参数说明 参数 是否必选 参数类型 描述 project_id 是 String 项目ID。 scaling_configuration_name 否 String 伸缩配置名称。 支持模糊匹配。 image_id 否 String 镜像ID,同imageRef。 start_number 否 Integer 查询的起始行号,默认为0。最小值为0。 limit 否 Integer 查询的记录条数,默认为20。取值范围为:0~100。
  • 结果验证 若论坛可以正常使用,当伸缩组中的云服务器CPU使用率持续高于70%(在伸缩组的“监控”页签可对监控指标进行观察),伸缩组会自动增加一台云服务器(在伸缩组的“活动历史”页签可对伸缩活动历史进行查看)。当伸缩组中的云服务器CPU使用率持续低于30%,且伸缩组中至少存在两台云服务器时,伸缩组会自动减少一台云服务器,则本次实践是成功的。若不然,请联系技术支持定位伸缩组不能正常进行伸缩活动的原因。
  • 应用场景 Discuz!论坛是全球成熟度最高、覆盖率最大的论坛软件系统之一。用户对论坛的访问可分为高峰期和平峰期,若论坛采用多服务器部署模式且满足高峰时期的负载需求,平峰期必有部分服务器处于闲置状态,增加了不必要的成本,也造成了资源浪费。 弹性伸缩可帮助您解决以上问题。当您在论坛的服务器系统中应用弹性伸缩后,弹性伸缩可以根据您设定的策略,自动地增加或减少服务器的数量,在保证您的网站正常运转的同时节约成本。本实践以搭建可自动伸缩的Discuz!论坛为例,介绍了如何使用弹性伸缩服务搭建一个可自动增加或减少弹性云服务器数量的Web服务。
  • 方案介绍 为了实现创建可自动伸缩的Discuz!论坛,您需要按照表1中的步骤进行网站的搭建,本文重点介绍创建弹性伸缩实现云服务器自动伸缩的过程。当网站的负载增加时云服务器的CPU使用率会增大,负载降低时CPU使用率会降低。配置两条监控CPU使用率的告警策略,分别在CPU使用率高于70%时增加一台云服务器,在CPU使用率低于30%时减少一台云服务器,保证Discuz!论坛始终有合适数量的云服务器,实现自动伸缩云服务器的功能。 表1 搭建Discuz!论坛步骤 任务 分类 子任务描述 说明 搭建网站 申请服务 申请虚拟私有云 申请为云服务器提供网络服务的虚拟私有云vpc-DISCUZ。 购买弹性公网IP 需申请使云服务器和互联网互通的弹性公网IP。 创建安全组并添加规则 为了保证论坛的网络安全,需要设置安全组对网络访问进行控制。创建的安全组sg-DISCUZ。 购买弹性云服务器 需要购买两台弹性云服务器,云服务器discuz01用于部署论坛数据库,discuz02用于部署论坛业务。 购买云服务器 discuz01时绑定之前购买的弹性公网IP,discuz02暂不绑定弹性公网IP。 配置服务器 在discuz01上搭建数据库 在discuz01上安装云数据库 RDS for MySQL,启动RDS for MySQL,设置开机自启动。 在discuz02上部署网站代码 先将discuz01上的弹性公网IP解绑,再绑定至discuz02,在discuz02上部署Web环境和网站代码。 配置特性 释放弹性公网IP 为了节省弹性公网IP资源,使用负载均衡服务前请先释放discuz02绑定的弹性公网IP。 创建弹性负载均衡 为了在伸缩组中均衡访问网站的流量,需要购买增强型负载均衡监听器elb-DISCUZ。 制作镜像 为了后续增加的云服务器可以自动搭建Web环境和部署网站代码,需要制作discuz02的镜像discuz_centos6.5(40GB),该镜像在创建伸缩配置时作为私有镜像使用。 创建弹性伸缩 - 创建伸缩配置 伸缩配置是伸缩组内实例(弹性云服务器)的模板,定义了伸缩组内待添加的实例的规格数据。创建伸缩配置as-config-discuz。 创建伸缩组 伸缩组是云服务器进行伸缩的基本单位,伸缩活动将会以伸缩组为单位进行。创建弹性伸缩组as-group-discuz。 创建伸缩策略 伸缩策略能够触发伸缩活动,配置两条监控CPU使用率的告警策略,在业务负载增加时增加云服务器数量,在业务负载减少时减少云服务器数量。 手动移入实例 为保证discuz02可以和后续移入伸缩组中的服务器共同承载论坛业务,需要将discuz02手动移入伸缩组。 修改最小实例数 最小实例数定义了伸缩组中云服务的最少数量,修改最小实例数为1后,伸缩组至少会保证有一台云服务器。discuz02是手动移入,在实例移除策略中被移出的优先级最低,故修改最小实例数可以保证discuz02在伸缩组中不被移出。 访问网站 验证配置结果 验证网站是否可以正常访问 获取负载均衡服务的弹性公网IP地址,在浏览器中输入http://弹性公网IP地址/forum.php进行验证。若可以访问则说明各项配置已生效。
  • 创建伸缩组 单击“创建弹性伸缩组”。 参考表3进行关键参数配置,未列出的参数选择默认值即可。 图2 设置伸缩组参数 表3 伸缩组关键参数 参数 解释 取值样例 最大实例数 伸缩组中弹性云服务器数量的最大值。 50 期望实例数 伸缩组中期望的云服务器数量,本实践中要将搭建Discuz!论坛的云服务器手动移入,为避免移入前发生伸缩活动,将期望实例数设置为0。 0 最小实例数 伸缩组中弹性云服务器数量的最小值。 0 虚拟私有云 为伸缩组中的实例提供所使用的网络。必须和云服务器discuz02属于同一VPC。 VPC-DISCUZ 子网 子网可以方便您管理vpc中的网络。选择中申请虚拟私有云时创建的子网。 vpc-test 负载均衡 为伸缩组中的实例均分流量,选择增强型负载均衡器elb-DISCUZ。后端端口配置为需要监听的业务端口,示例中配置为80,权重为1。 使用增强型 健康检查方式 健康检查方式选择“负载均衡健康检查”,负载均衡健康检查是通过系统向后端云服务器发起心跳检查的方式来实现的,推荐使用该方式。 负载均衡健康检查 参数配置完后,单击“立即创建”。 返回弹性伸缩组列表,若伸缩组为“已启用”状态,说明伸缩组创建成功。