用资源编排创建一组ECS并挂载到SLB-阿里云开发者社区

开发者社区> 云计算> 正文

用资源编排创建一组ECS并挂载到SLB

简介: 通过资源编排服务(ROS)搭建一套SLB+ECS的基础架构

利用负载均衡对服务器做流量转发是企业应用的常用模式。新开一个集群的时候,我们往往会创建一组ECS,然后分别挂载到SLB。本文针对这种场景,介绍如何通过资源编排服务(ROS)快速的搭建一套这样的基础架构。

screenshot

关于构建负载均衡的其他姿势可参考:

创建的资源包括:

步骤详解:

  • Step1: 创建一个负载均衡, 配置为公网类型按量付费. 模板片段如下:
"Resources": {
    "CreateLoadBalancer": {
      "Properties": {
        "AddressType": "internet",
        "InternetChargeType": "paybytraffic",
        "LoadBalancerName": "createByRos"
      },
      "Type": "ALIYUN::SLB::LoadBalancer"
    }
  }
  • Step2: 创建一组ECS(2台), 配置为2核4G(ecs.s2.large), 选择非IO优化的普通云盘,选择公共镜像,同时创建一个安全组,安全组配置详解。模板片段如下:
"ecsInstanceGroup": {
      "Properties": {
        "ImageId": "centos7u2_64_40G_cloudinit_20160520.raw",
        "InstanceType": "ecs.s2.large",
        "MaxAmount": 2,
        "MinAmount": 2,
        "SecurityGroupId": {
          "Fn::GetAtt": [
            "securityGroup",
            "SecurityGroupId"
          ]
        }
      },
      "Type": "ALIYUN::ECS::InstanceGroup"
    },
"securityGroup": {
      "Properties": {
        "SecurityGroupEgress": [
          {
            "DestCidrIp": "0.0.0.0/0",
            "IpProtocol": "all",
            "NicType": "internet",
            "PortRange": "-1/-1",
            "Priority": 1
          }
        ],
        "SecurityGroupIngress": [
          {
            "IpProtocol": "all",
            "NicType": "internet",
            "PortRange": "-1/-1",
            "Priority": 1,
            "SourceCidrIp": "0.0.0.0/0"
          }
        ],
        "SecurityGroupName": {
          "Ref": "SecurityGroupName"
        }
      },
      "Type": "ALIYUN::ECS::SecurityGroup"
    }
  • Step3: 创建SLB监听,添加端口映射80 -> 8080,同时开启健康检查,模板片段如下:
"CreateListener": {
      "Type": "ALIYUN::SLB::Listener",
      "Properties": {
          "LoadBalancerId": {"Ref": "LoadBalancer"},
          "ListenerPort": "80",
          "BackendServerPort": 8080,
          "Bandwidth": 1,
          "Protocol": "http",
          "HealthCheck": {
              "HealthyThreshold": 3,
              "UnhealthyThreshold": 3,
              "Interval": 2,
              "Timeout": 5,
              "HttpCode": "http_2xx,http_3xx,http_4xx,http_5xx"
          },
          "Scheduler": "wrr"
      }
    }
  • Step4: 挂载ECS组到SLB, 设置相同的权重100,模板片段如下:
"Attachment": {
      "Properties": {
        "BackendServers": [
          {
            "ServerId": {
              "Fn::Select": [
                "0",
                {
                  "Fn::GetAtt": [
                    "ecsInstanceGroup",
                    "InstanceIds"
                  ]
                }
              ]
            },
            "Weight": 100
          },
          {
            "ServerId": {
              "Fn::Select": [
                "1",
                {
                  "Fn::GetAtt": [
                    "ecsInstanceGroup",
                    "InstanceIds"
                  ]
                }
              ]
            },
            "Weight": 100
          }
        ],
        "LoadBalancerId": {
          "Ref": "LoadBalancer"
        }
      },
      "Type": "ALIYUN::SLB::BackendServerAttachment"
    }

到ROS控制台创建 >>

下载模板 >>

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
云计算
使用钉钉扫一扫加入圈子
+ 订阅

时时分享云计算技术内容,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。

其他文章