弹性伸缩(Auto Scaling)在业务需求增长时无缝地增加ECS实例数量,并在业务需求下降时自动减少ECS实例数量节约成本。为了提供更加弹性、灵活的伸缩服务,伸缩配置支持标签、密钥对、实例RAM角色和实例自定义数据。本文介绍4个特性的作用并演示了使用方式。
前提条件
使用本教程进行操作前,请确保您已经注册了阿里云账号。如还未注册,请先完成账号注册。
背景信息
弹性伸缩不仅提供了在业务需求高峰或低谷时自动调节ECS实例数量的能力,而且提供了在ECS实例上自动部署应用的能力。弹性伸缩的伸缩配置支持多种特性,帮助您高效、灵活地自定义ECS实例配置,满足业务需求。
- 标签
标签的介绍请参见标签概述。标签可以识别资源和用户组,允许企业或个人将相同作用的云服务器ECS资源归类,便于搜索和资源聚合。伸缩配置支持绑定标签,在创建伸缩配置时选择标签即可。
通过API创建伸缩配置时,您可以使用Tags选择标签,更多信息请参见CreateScalingConfiguration。
- SSH密钥对
SSH密钥对的介绍请参见SSH密钥对概述。阿里云只支持RSA 2048位的密钥对,仅Linux实例支持SSH密钥对登录。在创建SSH密钥对时,阿里云会保存密钥的公钥,并向您返回密钥部分。
相比密码方式,使用SSH密钥对登录Linux实例更加快速、安全,您只需要在创建伸缩配置时选择SSH密钥对。在弹性伸缩自动创建出实例后,实例会存储该SSH密钥对的公钥,您在本机使用SSH密钥对的私钥即可登录自动创建的实例。但需要注意以下几点:
通过API创建伸缩配置时,您可以使用KeyPairName选择SSH密钥对,更多信息请参见CreateScalingConfiguration。
- 实例RAM角色
访问控制(Resource Access Management,RAM)是阿里云提供的一项管理用户身份与资源访问权限的服务。RAM支持创建不同的角色,不同的角色对不同的云产品具有不同的操作权限。
实例RAM角色的介绍请参见概述。实例RAM角色让ECS实例扮演具有某些权限的角色,从而赋予实例一定的访问权限。在伸缩配置中选择实例RAM角色时,请确保实例RAM角色的权限策略允许您的实例扮演该实例RAM角色,否则伸缩配置无法弹出实例。
通过API创建伸缩配置时,您可以使用RamRoleName选择实例RAM角色,更多信息请参见CreateScalingConfiguration。
- 实例自定义数据
实例自定义数据的介绍请参见 ECS实例自定义数据概述。Windows实例及Linux实例均支持实例自定义数据,主要有以下用途:
- 作为实例自定义脚本在启动实例时执行,您可以自定义实例的启动行为。
- 作为普通数据向实例传入信息,您可以在实例中引用这些数据。
相比Terraform等开源IT基础架构管理工具,使用弹性伸缩原生的实例自定义数据更加快速、安全。您只需要准备好实例自定义脚本,然后以Base64编码的方式传入伸缩配置即可,自动创建的ECS实例会在启动时自动执行实例自定义脚本,实现应用级别的扩容和缩容。但需要注意以下几点:- 伸缩组的网络类型需要为专有网络(VPC)。
- 实例自定义数据需要为Base64编码方式。
- 实例自定义数据将以不加密的方式传入实例,请不要以明文方式传入机密的信息(例如密码、私钥数据等)。如果必须传入,建议先加密原始数据,以Base64方式编码加密后的数据并传入实例,然后在实例内部以同样的方式反解密。
通过API创建伸缩配置时,您可以使用UserData参数传入实例自定义数据,更多信息请参见CreateScalingConfiguration。
合理地使用弹性伸缩服务,不仅能够有效地降低您的服务器成本,而且能够有效地降低您的服务管理和运维成本。为了帮助您准确地理解和使用弹性伸缩服务,本文将结合上述特性,演示伸缩组自动伸缩和自动部署的效果,包括为实例自动添加实例RAM角色、标签属性,设置实例支持密钥对登录,并在实例启动后自动执行自定义脚本。
操作步骤
步骤一:创建配置项
按照以下步骤创建所需的RAM角色、标签、密钥对和实例自定义数据。
步骤二:应用配置项
按照以下步骤创建伸缩组和伸缩配置,并在伸缩配置中应用步骤一中创建的配置项。
步骤三:验证自定义配置效果
由于步骤二中最小实例数设为1,在启用伸缩组后即会自动创建一台实例,保证伸缩组满足最小实例数的限制。