摘要:您可以選擇使用來管理您項目的依賴庫,在您的項目對應的文件中加入下面的依賴項即可使用創建多實例規格伸縮配置導入到您的工程以后,您就可以創建多實例規格伸縮配置了。
摘要: ESS 伸縮配置定義了用于彈性伸縮的 ECS 實例的配置信息,包含了實例規格、網絡、安全組、帶寬等配置信息,您可靈活地搭配這些配置信息來為您的伸縮組創建伸縮配置。
本文將詳細介紹 ESS 多實例規格的伸縮配置,并給出多實例規格伸縮配置相比單實例規格伸縮配置的優勢所在,最后,本文將給出使用 ESS SDK 快速創建多實例規格伸縮配置的最佳實踐。
ESS 伸縮配置多實例規格參數
原 ESS 彈性伸縮服務限定,一個伸縮組內只能有一個生效的伸縮配置,一個伸縮配置只能配置一種實例規格。由于上述的限制,導致伸縮組內有效的實例規格只有一個,如果當前的實例規格由于庫存不足等變得不可用,那么伸縮組將無法創建出 ECS 實例。您需要重新選擇當前伸縮組內其它伸縮配置或創建新的伸縮配置來恢復伸縮組,使伸縮組能夠正常工作。為了優化上述問題,提高伸縮組內伸縮配置的可用性,ESS 彈性伸縮服務為伸縮配置新增了多實例規格參數(InstanceTypes.N)。您在創建伸縮配置的時候可以使用該參數為您的伸縮配置設置多個實例規格,當某個實例規格由于庫存等原因變得不可用時,ESS 彈性伸縮服務會為您自動切換到其它有效的實例規格來創建實例。當您創建的伸縮配置使用了多實例規格參數時,您需要注意以下幾點:
如果使用了 InstanceTypes.N 多實例規格參數,InstanceType 參數將被忽略。
InstanceTypes.N 參數中,N 的取值范圍為 [1, 10],即一個伸縮配置內最多可以設置 10 種實例規格。
當您的伸縮組是經典網絡伸縮組時,伸縮組所屬 Region 必須支持您所配置的所有實例規格的經典網絡實例的售賣,如果當前 Region 不支持您所配置的實例規格,伸縮組將無法為您創建出 ECS 實例。您可以通過 查詢可用區列表 接口查詢當前 Region 支持的實例規格,以及每種規格支持的網絡類型。
當您的伸縮組是專有網絡(VPC)伸縮組時,伸縮組配置的虛擬交換機對應的可用區內必須支持您所配置的所有實例規格的專有網絡實例的售賣,每個伸縮組可以配置多個虛擬交換機,您可以通過 使用 ESS SDK 快速創建多可用區伸縮組 了解更多。
InstanceTypes.N 參數中 N 代表當前伸縮配置中實例規格的優先級,編號為 1 的實例規格優先級最高,實例規格優先級隨著編號的增大依次降低。
如果當前伸縮配置中優先級較高的實例規格由于庫存等原因無法創建出 ECS 實例時,ESS 會自動選擇下一優先級的實例規格來為您創建實例。
當您在使用多實例規格參數來創建伸縮配置時,實例規格不可重復,否則伸縮配置將無法創建。
使用 SDK 創建多可用區伸縮組
本章將介紹如何使用 SDK 創建多實例規格的伸縮配置,這里以 Java 語言和 Python 語言為例進行介紹。
Java
導入 ESS Java SDK
首先,您需要下載 aliyun-java-sdk-core、aliyun-java-sdk-ess 兩個依賴,您可以查看 maven-central 界面,搜索并下載相應的 jar 包,aliyun-java-sdk-ess 對應的 jar 包的版本號需要是 2.1.3 及以上版本才能使用多實例規格參數,aliyun-java-sdk-core 推薦使用最新的版本。
您可以選擇使用 maven 來管理您 Java 項目的依賴庫,在您的項目對應的 pom.xml 文件中加入下面的依賴項即可:
com.aliyun aliyun-java-sdk-ess 2.1.3 com.aliyun aliyun-java-sdk-core 3.5.0
使用 Java SDK 創建多實例規格伸縮配置
導入 ESS Java SDK 到您的 Java 工程以后,您就可以創建多實例規格伸縮配置了。使用 Java SDK 創建多實例規格伸縮配置的代碼如下:
public class EssSdkDemo { public static final String REGION_ID = "cn-hangzhou"; public static final String AK = "xxxxxxxxxxxxxx"; public static final String AKS = "xxxxxxxxxxxxxx"; /** * 排在最前面的實例規格優先級最高,實例規格優先級隨著在數組中出現的次序依次遞減 */ public static final String[] TYPE_ARRAY = { "instancetype1", "instancetype2" }; public static final ListINSTANCE_TYPES = Arrays.asList(TYPE_ARRAY); public static final String SCALING_GROUP_ID = "xxxxxxxxxxxxxx"; //ubuntu_16_0402_64_20G_alibase_20170818.vhd public static final String IMAGE_ID = "xxxxxxxxxxxxxx"; public static final String SECURITY_GROUP_ID = "xxxxxxxxxxxxxx"; public static void main(String[] args) throws Exception { IClientProfile clientProfile = DefaultProfile.getProfile(REGION_ID, AK, AKS); IAcsClient client = new DefaultAcsClient(clientProfile); System.out.println(createScalingConf(client)); } /** * 創建多實例規格伸縮配置 * * @param client * @return * @throws Exception */ public static String createScalingConf(IAcsClient client) throws Exception { CreateScalingConfigurationRequest request = new CreateScalingConfigurationRequest(); request.setScalingGroupId(SCALING_GROUP_ID); request.setImageId(IMAGE_ID); request.setInstanceTypes(INSTANCE_TYPES); request.setSecurityGroupId(SECURITY_GROUP_ID); CreateScalingConfigurationResponse response = client.getAcsResponse(request); return response.getScalingConfigurationId(); } }
注意:AK,SCALING_GROUP_ID,SECURITY_GROUP_ID 等參數需要您根據個人情況進行設置。
Python
安裝 ESS Python SDK
同 Java 語言一樣,在使用 ESS Python SDK 前,您需要先下載 aliyun-python-sdk-ess、aliyun-python-sdk-core 兩個依賴。本文推薦使用 pip 的方式來安裝 Python 依賴包,關于 pip 的安裝您可以參數 Installation-Pip。 安裝好 pip 以后,您可以使用命令 pip install aliyun-java-sdk-ess==2.1.3 pip install aliyun-java-sdk-core==3.5.0 安裝兩個所需的依賴。
使用 Python SDK 創建多實例規格伸縮配置
導入 ESS Python SDK 依賴庫以后,您就可以創建多實例規格伸縮配置了。使用 Python SDK 創建多實例規格伸縮配置的代碼如下:
#coding=utf-8 import json import logging from aliyunsdkcore import client from aliyunsdkess.request.v20140828.CreateScalingConfigurationRequest import CreateScalingConfigurationRequest logging.basicConfig(level=logging.INFO, format="%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s", datefmt="%a, %d %b %Y %H:%M:%S") # 請替換自己的ak信息 ak = "ak" aks = "aks" scaling_group_id = "xxxxxxxxxxxxxxx" image_id = "xxxxxxxxxxxxxxx" security_group_id = "xxxxxxxxxxxxxxx" instance_types = ["instancetype1", "instancetype2"] region_id = "cn-beijing" clt = client.AcsClient(ak, aks, region_id) def _create_scaling_conf(): request = CreateScalingConfigurationRequest() request.set_ScalingGroupId(scaling_group_id) request.set_ImageId(image_id) request.set_SecurityGroupId(security_group_id) request.set_InstanceTypes(instance_types) response = _send_request(request) return response.get("ScalingConfigurationId") def _send_request(request): request.set_accept_format("json") try: response_str = clt.do_action(request) logging.info(response_str) response_detail = json.loads(response_str) return response_detail except Exception as e: logging.error(e) if __name__ == "__main__": scaling_group_id = _create_scaling_conf() print "創建伸縮配置成功,伸縮組ID:" + str(scaling_group_id)
注意:ak,scaling_group_id,security_group_id 等參數需要您根據個人情況進行設置。
在使用 SDK 創建伸縮配置的時候,您可以參考 創建伸縮配置接口 來了解每個參數的意義。建議多實例規格伸縮配置和多可用區伸縮組結合使用,這樣可以在最大程度上提高您的伸縮組的可用性。關于多可用區伸縮組的創建方法,您可以參考 使用 ESS SDK 快速創建多可用區伸縮組 。
寫在最后
ESS 伸縮配置多實例規格參數目前可通過 OpenApi 的方式來使用,彈性伸縮服務控制臺近期也會支持多實例規格伸縮配置功能。
點擊查看原文
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/41099.html
摘要:摘要年月阿里云彈性伸縮服務伸縮配置新增了實例自定義數據秘鑰對實例角色標簽新特性近日,阿里云又發布了多可用區新特性。服務特性阿里云彈性伸縮服務在業務需求高峰增長時可以無縫增加實例,在業務需求下降時自動減少實例。 摘要: 2017年9月阿里云彈性伸縮服務伸縮配置新增了實例自定義數據、秘鑰對、實例RAM角色、標簽新特性;近日,阿里云又發布了VSWitchIds.N多可用區新特性。 點此查看原...
摘要:同城雙中心服務災備阿里云同地域下不同可用區的網絡電力設備等都是物理隔離的,但是通過內網連接。二創建伸縮配置,也就是自動添加的云服務器的配置,這個過程和購買的流程一致。 前言:云服務器的特性主要就是體現在橫向、縱向的彈性擴容上,縱向的話其實很好理解就是我們單臺 ECS 配置不夠用了馬上升級一下配置,不過這種場景比較適合于一個網站穩健的發展狀態,而且波動不大?;蛘哒f服務器有較長時間的資源占...
摘要:同城雙中心服務災備阿里云同地域下不同可用區的網絡電力設備等都是物理隔離的,但是通過內網連接。二創建伸縮配置,也就是自動添加的云服務器的配置,這個過程和購買的流程一致。 前言:云服務器的特性主要就是體現在橫向、縱向的彈性擴容上,縱向的話其實很好理解就是我們單臺 ECS 配置不夠用了馬上升級一下配置,不過這種場景比較適合于一個網站穩健的發展狀態,而且波動不大?;蛘哒f服務器有較長時間的資源占...
閱讀 684·2021-11-25 09:43
閱讀 2953·2021-11-24 10:20
閱讀 1002·2021-10-27 14:18
閱讀 1076·2021-09-08 09:36
閱讀 3382·2021-07-29 14:49
閱讀 1783·2019-08-30 14:07
閱讀 2937·2019-08-29 16:52
閱讀 3049·2019-08-29 13:12