摘要:您可以選擇使用來(lái)管理您項(xiàng)目的依賴庫(kù),在您的項(xiàng)目對(duì)應(yīng)的文件中加入下面的依賴項(xiàng)即可使用創(chuàng)建多實(shí)例規(guī)格伸縮配置導(dǎo)入到您的工程以后,您就可以創(chuàng)建多實(shí)例規(guī)格伸縮配置了。
摘要: ESS 伸縮配置定義了用于彈性伸縮的 ECS 實(shí)例的配置信息,包含了實(shí)例規(guī)格、網(wǎng)絡(luò)、安全組、帶寬等配置信息,您可靈活地搭配這些配置信息來(lái)為您的伸縮組創(chuàng)建伸縮配置。
本文將詳細(xì)介紹 ESS 多實(shí)例規(guī)格的伸縮配置,并給出多實(shí)例規(guī)格伸縮配置相比單實(shí)例規(guī)格伸縮配置的優(yōu)勢(shì)所在,最后,本文將給出使用 ESS SDK 快速創(chuàng)建多實(shí)例規(guī)格伸縮配置的最佳實(shí)踐。
ESS 伸縮配置多實(shí)例規(guī)格參數(shù)
原 ESS 彈性伸縮服務(wù)限定,一個(gè)伸縮組內(nèi)只能有一個(gè)生效的伸縮配置,一個(gè)伸縮配置只能配置一種實(shí)例規(guī)格。由于上述的限制,導(dǎo)致伸縮組內(nèi)有效的實(shí)例規(guī)格只有一個(gè),如果當(dāng)前的實(shí)例規(guī)格由于庫(kù)存不足等變得不可用,那么伸縮組將無(wú)法創(chuàng)建出 ECS 實(shí)例。您需要重新選擇當(dāng)前伸縮組內(nèi)其它伸縮配置或創(chuàng)建新的伸縮配置來(lái)恢復(fù)伸縮組,使伸縮組能夠正常工作。為了優(yōu)化上述問(wèn)題,提高伸縮組內(nèi)伸縮配置的可用性,ESS 彈性伸縮服務(wù)為伸縮配置新增了多實(shí)例規(guī)格參數(shù)(InstanceTypes.N)。您在創(chuàng)建伸縮配置的時(shí)候可以使用該參數(shù)為您的伸縮配置設(shè)置多個(gè)實(shí)例規(guī)格,當(dāng)某個(gè)實(shí)例規(guī)格由于庫(kù)存等原因變得不可用時(shí),ESS 彈性伸縮服務(wù)會(huì)為您自動(dòng)切換到其它有效的實(shí)例規(guī)格來(lái)創(chuàng)建實(shí)例。當(dāng)您創(chuàng)建的伸縮配置使用了多實(shí)例規(guī)格參數(shù)時(shí),您需要注意以下幾點(diǎn):
如果使用了 InstanceTypes.N 多實(shí)例規(guī)格參數(shù),InstanceType 參數(shù)將被忽略。
InstanceTypes.N 參數(shù)中,N 的取值范圍為 [1, 10],即一個(gè)伸縮配置內(nèi)最多可以設(shè)置 10 種實(shí)例規(guī)格。
當(dāng)您的伸縮組是經(jīng)典網(wǎng)絡(luò)伸縮組時(shí),伸縮組所屬 Region 必須支持您所配置的所有實(shí)例規(guī)格的經(jīng)典網(wǎng)絡(luò)實(shí)例的售賣,如果當(dāng)前 Region 不支持您所配置的實(shí)例規(guī)格,伸縮組將無(wú)法為您創(chuàng)建出 ECS 實(shí)例。您可以通過(guò) 查詢可用區(qū)列表 接口查詢當(dāng)前 Region 支持的實(shí)例規(guī)格,以及每種規(guī)格支持的網(wǎng)絡(luò)類型。
當(dāng)您的伸縮組是專有網(wǎng)絡(luò)(VPC)伸縮組時(shí),伸縮組配置的虛擬交換機(jī)對(duì)應(yīng)的可用區(qū)內(nèi)必須支持您所配置的所有實(shí)例規(guī)格的專有網(wǎng)絡(luò)實(shí)例的售賣,每個(gè)伸縮組可以配置多個(gè)虛擬交換機(jī),您可以通過(guò) 使用 ESS SDK 快速創(chuàng)建多可用區(qū)伸縮組 了解更多。
InstanceTypes.N 參數(shù)中 N 代表當(dāng)前伸縮配置中實(shí)例規(guī)格的優(yōu)先級(jí),編號(hào)為 1 的實(shí)例規(guī)格優(yōu)先級(jí)最高,實(shí)例規(guī)格優(yōu)先級(jí)隨著編號(hào)的增大依次降低。
如果當(dāng)前伸縮配置中優(yōu)先級(jí)較高的實(shí)例規(guī)格由于庫(kù)存等原因無(wú)法創(chuàng)建出 ECS 實(shí)例時(shí),ESS 會(huì)自動(dòng)選擇下一優(yōu)先級(jí)的實(shí)例規(guī)格來(lái)為您創(chuàng)建實(shí)例。
當(dāng)您在使用多實(shí)例規(guī)格參數(shù)來(lái)創(chuàng)建伸縮配置時(shí),實(shí)例規(guī)格不可重復(fù),否則伸縮配置將無(wú)法創(chuàng)建。
使用 SDK 創(chuàng)建多可用區(qū)伸縮組
本章將介紹如何使用 SDK 創(chuàng)建多實(shí)例規(guī)格的伸縮配置,這里以 Java 語(yǔ)言和 Python 語(yǔ)言為例進(jìn)行介紹。
Java
導(dǎo)入 ESS Java SDK
首先,您需要下載 aliyun-java-sdk-core、aliyun-java-sdk-ess 兩個(gè)依賴,您可以查看 maven-central 界面,搜索并下載相應(yīng)的 jar 包,aliyun-java-sdk-ess 對(duì)應(yīng)的 jar 包的版本號(hào)需要是 2.1.3 及以上版本才能使用多實(shí)例規(guī)格參數(shù),aliyun-java-sdk-core 推薦使用最新的版本。
您可以選擇使用 maven 來(lái)管理您 Java 項(xiàng)目的依賴庫(kù),在您的項(xiàng)目對(duì)應(yīng)的 pom.xml 文件中加入下面的依賴項(xiàng)即可:
com.aliyun aliyun-java-sdk-ess 2.1.3 com.aliyun aliyun-java-sdk-core 3.5.0
使用 Java SDK 創(chuàng)建多實(shí)例規(guī)格伸縮配置
導(dǎo)入 ESS Java SDK 到您的 Java 工程以后,您就可以創(chuàng)建多實(shí)例規(guī)格伸縮配置了。使用 Java SDK 創(chuàng)建多實(shí)例規(guī)格伸縮配置的代碼如下:
public class EssSdkDemo { public static final String REGION_ID = "cn-hangzhou"; public static final String AK = "xxxxxxxxxxxxxx"; public static final String AKS = "xxxxxxxxxxxxxx"; /** * 排在最前面的實(shí)例規(guī)格優(yōu)先級(jí)最高,實(shí)例規(guī)格優(yōu)先級(jí)隨著在數(shù)組中出現(xiàn)的次序依次遞減 */ 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)); } /** * 創(chuàng)建多實(shí)例規(guī)格伸縮配置 * * @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 等參數(shù)需要您根據(jù)個(gè)人情況進(jìn)行設(shè)置。
Python
安裝 ESS Python SDK
同 Java 語(yǔ)言一樣,在使用 ESS Python SDK 前,您需要先下載 aliyun-python-sdk-ess、aliyun-python-sdk-core 兩個(gè)依賴。本文推薦使用 pip 的方式來(lái)安裝 Python 依賴包,關(guān)于 pip 的安裝您可以參數(shù) Installation-Pip。 安裝好 pip 以后,您可以使用命令 pip install aliyun-java-sdk-ess==2.1.3 pip install aliyun-java-sdk-core==3.5.0 安裝兩個(gè)所需的依賴。
使用 Python SDK 創(chuàng)建多實(shí)例規(guī)格伸縮配置
導(dǎo)入 ESS Python SDK 依賴庫(kù)以后,您就可以創(chuàng)建多實(shí)例規(guī)格伸縮配置了。使用 Python SDK 創(chuàng)建多實(shí)例規(guī)格伸縮配置的代碼如下:
#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") # 請(qǐng)?zhí)鎿Q自己的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 "創(chuàng)建伸縮配置成功,伸縮組ID:" + str(scaling_group_id)
注意:ak,scaling_group_id,security_group_id 等參數(shù)需要您根據(jù)個(gè)人情況進(jìn)行設(shè)置。
在使用 SDK 創(chuàng)建伸縮配置的時(shí)候,您可以參考 創(chuàng)建伸縮配置接口 來(lái)了解每個(gè)參數(shù)的意義。建議多實(shí)例規(guī)格伸縮配置和多可用區(qū)伸縮組結(jié)合使用,這樣可以在最大程度上提高您的伸縮組的可用性。關(guān)于多可用區(qū)伸縮組的創(chuàng)建方法,您可以參考 使用 ESS SDK 快速創(chuàng)建多可用區(qū)伸縮組 。
寫(xiě)在最后
ESS 伸縮配置多實(shí)例規(guī)格參數(shù)目前可通過(guò) OpenApi 的方式來(lái)使用,彈性伸縮服務(wù)控制臺(tái)近期也會(huì)支持多實(shí)例規(guī)格伸縮配置功能。
點(diǎn)擊查看原文
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/41099.html
摘要:摘要年月阿里云彈性伸縮服務(wù)伸縮配置新增了實(shí)例自定義數(shù)據(jù)秘鑰對(duì)實(shí)例角色標(biāo)簽新特性近日,阿里云又發(fā)布了多可用區(qū)新特性。服務(wù)特性阿里云彈性伸縮服務(wù)在業(yè)務(wù)需求高峰增長(zhǎng)時(shí)可以無(wú)縫增加實(shí)例,在業(yè)務(wù)需求下降時(shí)自動(dòng)減少實(shí)例。 摘要: 2017年9月阿里云彈性伸縮服務(wù)伸縮配置新增了實(shí)例自定義數(shù)據(jù)、秘鑰對(duì)、實(shí)例RAM角色、標(biāo)簽新特性;近日,阿里云又發(fā)布了VSWitchIds.N多可用區(qū)新特性。 點(diǎn)此查看原...
摘要:同城雙中心服務(wù)災(zāi)備阿里云同地域下不同可用區(qū)的網(wǎng)絡(luò)電力設(shè)備等都是物理隔離的,但是通過(guò)內(nèi)網(wǎng)連接。二創(chuàng)建伸縮配置,也就是自動(dòng)添加的云服務(wù)器的配置,這個(gè)過(guò)程和購(gòu)買的流程一致。 前言:云服務(wù)器的特性主要就是體現(xiàn)在橫向、縱向的彈性擴(kuò)容上,縱向的話其實(shí)很好理解就是我們單臺(tái) ECS 配置不夠用了馬上升級(jí)一下配置,不過(guò)這種場(chǎng)景比較適合于一個(gè)網(wǎng)站穩(wěn)健的發(fā)展?fàn)顟B(tài),而且波動(dòng)不大?;蛘哒f(shuō)服務(wù)器有較長(zhǎng)時(shí)間的資源占...
摘要:同城雙中心服務(wù)災(zāi)備阿里云同地域下不同可用區(qū)的網(wǎng)絡(luò)電力設(shè)備等都是物理隔離的,但是通過(guò)內(nèi)網(wǎng)連接。二創(chuàng)建伸縮配置,也就是自動(dòng)添加的云服務(wù)器的配置,這個(gè)過(guò)程和購(gòu)買的流程一致。 前言:云服務(wù)器的特性主要就是體現(xiàn)在橫向、縱向的彈性擴(kuò)容上,縱向的話其實(shí)很好理解就是我們單臺(tái) ECS 配置不夠用了馬上升級(jí)一下配置,不過(guò)這種場(chǎng)景比較適合于一個(gè)網(wǎng)站穩(wěn)健的發(fā)展?fàn)顟B(tài),而且波動(dòng)不大。或者說(shuō)服務(wù)器有較長(zhǎng)時(shí)間的資源占...
閱讀 714·2021-11-25 09:43
閱讀 2984·2021-11-24 10:20
閱讀 1049·2021-10-27 14:18
閱讀 1106·2021-09-08 09:36
閱讀 3422·2021-07-29 14:49
閱讀 1813·2019-08-30 14:07
閱讀 2965·2019-08-29 16:52
閱讀 3074·2019-08-29 13:12