【产品功能】创建实例支持同时加入多个安全组

本文涉及的产品
轻量应用服务器 2vCPU 4GiB,适用于搭建容器环境
轻量应用服务器 2vCPU 4GiB,适用于搭建Web应用/小程序
轻量应用服务器 2vCPU 1GiB,适用于搭建电商独立站
简介: 背景: 长期以来,创建ECS实例只支持同时加入一个安全组,但是某些友商支持多个安全组,这会增加混合云用户上云成本,比如基于Terraform的国际站用户想迁移到阿里云就要修改大量代码。为此ECS提供了创建实例同时加入多个安全组的功能,此功能一方面可以让上述用户最小成本使用阿里云,另外一方面也降低实例加入多个安全组的复杂度,可以方便的随实例创建同时加入多个安全组。

背景:

长期以来,创建ECS实例只支持同时加入一个安全组,但是某些友商支持多个安全组,这会增加混合云用户上云成本,比如基于Terraform的国际站用户想迁移到阿里云就要修改大量代码。为此ECS提供了创建实例同时加入多个安全组的功能,此功能一方面可以让上述用户最小成本使用阿里云,另外一方面也降低实例加入多个安全组的复杂度,可以方便的随实例创建同时加入多个安全组。

如何使用

1. RunInstances新增参数

名称 类型 是否必填 描述
SecurityGroupIds.N List<String> 传入多个随实例创建加入的安全组

2. ECS控制台

开发中,敬请期待

限制

  1. 批量的安全组必须属于同一个VPC,并且与vSwitch属于一个VPC。
  2. 不能既有普通组又有企业安全组。
  3. 多安全组功能不支持CLASSIC类型实例。
  4. SecurityGroupIds.N N的大小受安全组挡位控制
  5. 安全组内IP不能超过2000。
  6. 创建实例下单完成,实例支付生产前删除一个安全组,会生产失败退款。
  7. SecurityGroupId和SecurityGroupIds.N不能同时使用。

代码示例

#  coding=utf-8

# if the python sdk is not install using 'sudo pip install aliyun-python-sdk-ecs'
# if the python sdk is install using 'sudo pip install --upgrade aliyun-python-sdk-ecs'
# make sure the sdk version is 4.16.11, you can use command 'pip show aliyun-python-sdk-ecs' to check

import json
import logging

from aliyunsdkcore import client
from aliyunsdkecs.request.v20140526.RunInstancesRequest import RunInstancesRequest

# configuration the log output formatter, if you want to save the output to file,
# append ",filename='ecs_invoke.log'" after datefmt.

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')


# send open api request
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)


def run_instances(vSwitchId, securityGroupIds, instanceType, imageId, amount, systemDiskCategory, systemDiskSize):
    request = RunInstancesRequest()
    request.set_VSwitchId(vSwitchId)
    request.set_SecurityGroupIdss(securityGroupIds)
    request.set_InstanceType(instanceType)
    request.set_ImageId(imageId)
    request.set_Amount(amount)
    request.set_SystemDiskCategory(systemDiskCategory)
    request.set_SystemDiskSize(systemDiskSize)
    _send_request(request)


if __name__ == '__main__':
    clt = client.AcsClient('Your Access Key Id', 'Your Access Key Secrect', 'cn-shanghai')
    vSwitchId = "vsw-xxx"
    securityGroupIds = ["sg-xxx", "sg-xxx"]
    instanceType = "ecs.g5.large"
    imageId = "xxx"
    amount = "1"
    systemDiskCategory = "cloud_ssd"
    systemDiskSize = "40"
    run_instances(vSwitchId, securityGroupIds, instanceType, imageId, amount, systemDiskCategory, systemDiskSize)
相关实践学习
2分钟自动化部署人生模拟器
本场景将带你借助云效流水线Flow实现人生模拟器小游戏的自动化部署
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情:&nbsp;https://www.aliyun.com/product/ecs
相关文章
|
Web App开发 Linux
【优化】创建安全组时支持同步创建规则
经常听到用户反馈:为什么我的实例SSH不通?为什么部署在ECS实例上的网站无法访问?这类问题多数是由于没有正确配置ECS实例所属安全组的规则。这种情况的场景一般是用户在创建安全组后,忘记了创建规则导致无法访问实例,进而实例无法提供服务。
1481 0
|
存储 弹性计算
ECS控制台云资源分组管理---全局标签
功能简述 对于云资源数量和种类保有很多的用户,如果全部的云资源都由一个人或一个账号来管理,不但效率低更容易出错。合理的对保有云资源从用途、权限、归属等维度上进行分组是解决这个问题的正确方式。ECS控制台近期推出新的功能--全局标签,期望能让您在做云资源分组时更加快速、便捷的找到期望的云资源。
5477 0
|
弹性计算 JSON 开发工具
ECS开放批量创建实例接口RunInstances
为了更方便的实现弹性的资源创建,方便您一次运行多台ECS按量实例来完成应用的开发和部署,我们开放了ECS的批量创建实例接口RunInstances。和目前的CreateInstance相比,RunInstances有下面的优点: 批量提交一定的ECS实例数目,如果库存不足,则直接失败,避免您创建的实例数目不能满足需求而额外产生费用。
7366 0
|
关系型数据库 数据库 对象存储
资源编排配合实例自定义数据,实现RDS自动创建与恢复
背景不少客户需要批量部署系统他们希望ROS不仅能帮助他们自动部署底层PAAS与IAAS资源还能够省去安装软件链接数据库导入数据库文件的动作。而ROS能完美结合ECS的自定义数据自定义镜像RDS Web API最大化减少人肉工作。
2211 0
|
弹性计算
阿里云ECS资源分组之创建资源支持资源分组
当账号里有100个镜像、多个不同业务的安全组、不同网段的VSwitch时,资源怎么高效管理是一个困扰账号owner的问题。为此,阿里云也推出了多种提速资源管理的工具,例如标签和资源组。 资源组是一种偏向解决方案的分组策略,有专门的控制台进行集合的资源操作(企业控制台)。在企业控制台可以对资源进行资源组间的转换,本文介绍的更偏向控制台操作(非OpenAPI操作),因此授权操作会直接在企业控制台
2044 0
|
弹性计算 安全 关系型数据库
实例连接管理 | 学习笔记
快速学习实例连接管理
实例连接管理 | 学习笔记