通过资源编排快速的构建负载均衡(SLB)

负载均衡(Load Balancer)是对多台云服务器进行流量分发的负载均衡服务。负载均衡可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。同样在实际的项目开发中,通过多个负载均衡,我们可以方便的实现灰度发布。

资源编排的负载均衡功能介绍

配置和管理一个负载均衡实例,主要涉及3部分的功能操作,包括:

  • 负载均衡实例属性配置:通过实例属性配置来定义一个负载均衡实例的类型
  • 负载均衡服务监听配置:通过服务监听配置来定义一个负载均衡实例的各项策略和转发规则
  • 负载均衡后端服务器配置:通过后端服务器配置来定义一个负载均衡实例后端用来处理用户请求的多个ECS实例

资源编排将上述的服务抽象为下面的资源类型:

  • ALIYUN::SLB::LoadBalancer

    • 创建一个负载均衡的基本配置
  • ALIYUN::SLB::Listener
    • 添加监听到负载均衡并启动监听
  • ALIYUN::SLB::BackendServerAttachment
    • 挂载ECS到负载均衡
  • ALIYUN::SLB::LoadBalancerClone
    • 深度复制一个SLB,包括监听规则和状态,这个在另外的文章专门介绍。

负载均衡的实践

首先我们创建一个空的负载均衡,和其它的资源类型一样,我们首先创建一个JSON的模板。

创建一个负载均衡

根据模板定义我们可以选择付费类型为按流量和固定带宽。对于VPC类型的负载均衡需要提供相应的VpcIdVSwitchId即可。

{
  "ROSTemplateFormatVersion": "2015-09-01",
  "Resources": {
    "CreateLoadBalancer": {
      "Properties": {
        "AddressType": "internet",
        "InternetChargeType": "paybytraffic",
        "LoadBalancerName": "createByRos"
      },
      "Type": "ALIYUN::SLB::LoadBalancer"
    }
  },
  "Outputs": {
    "LoadBalanceDetails": {
      "Value": {
        "Fn::GetAtt": [
          "CreateLoadBalancer",
          "LoadBalancerId"
        ]
      }
    }
  }
}

在负载均衡上创建监听

只创建一个负载均衡是不工作的,接着我们需要创建像对应的监听。在下面的例子中我们创建一个HTTP的监听,将前端的80端口映射到后端的8080端口上。

在这里我们添加了一个新的资源ALIYUN::SLB::Listener, 基本配置和SLB的控制台类似。相比控制台的输入参数,这里抽象为了键值对,可以更加快捷方便的实现。创建的监听在生产之后将会自动启动。

{
  "ROSTemplateFormatVersion": "2015-09-01",
  "Resources": {
    "LoadBalancer": {
      "Properties": {
        "AddressType": "internet",
        "InternetChargeType": "paybytraffic",
        "LoadBalancerName": "createByRos"
      },
      "Type": "ALIYUN::SLB::LoadBalancer"
    },
    "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"
      }
    },
  },
  "Outputs": {
    "LoadBalanceDetails": {
      "Value": {
        "Fn::GetAtt": [
          "LoadBalancer",
          "LoadBalancerId"
        ]
      }
    }
  }
}

在负载均衡上挂载ECS资源

最后我们挂载相对应的ECS,并设置权重。权重的范围为0-100。权重0代表着优雅的下线,将不再输入流量。

{
  "ROSTemplateFormatVersion": "2015-09-01",
  "Parameters": {
    "InstanceOne": {
      "Description": "需要挂载的ECS的实例Id",
      "Type": "String"
    },
     "InstanceTwo": {
      "Description": "需要挂载的ECS的实例Id",
      "Type": "String"
    },
  },
  "Resources": {
    "LoadBalancer": {
      "Properties": {
        "AddressType": "internet",
        "InternetChargeType": "paybytraffic",
        "LoadBalancerName": "createByRos"
      },
      "Type": "ALIYUN::SLB::LoadBalancer"
    },
    "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"
      }
    },
    "AttachEcs": {
      "Type": "ALIYUN::SLB::BackendServerAttachment",
      "Properties": {
        "LoadBalancerId": {"Ref": "LoadBalancer"},
        "BackendServers": [
            {
                "ServerId": {"Ref": "InstanceOne"},
                "Weight": 100
            },
             {
                "ServerId": {"Ref": "InstanceTwo"},
                "Weight": 100
            }
        ]
      }
    }
  },
  "Outputs": {
    "LoadBalanceDetails": {
      "Value": {
        "Fn::GetAtt": [
          "LoadBalancer",
          "LoadBalancerId"
        ]
      }
    }
  }
}

当开发和测试完成之后,您可以通过删除资源栈,这样创建的负载均衡,监听将会被快速的删除。

通过抽象化的模板。可以把日常的挂载SLB和卸载SLB通过资源编排的模板来快速的实现,降低重复劳动,提升发布效率。

为了更加方便的简化您的操作,我们将在下篇讲解SLB的Clone。

时间: 2024-12-06 16:21:13

通过资源编排快速的构建负载均衡(SLB)的相关文章

一分钟了解阿里云产品:资源编排快速深度克隆负载均衡

关于资源编排的应用有很多,下面来给大家介绍一个.   在日常的开发过程中,我们可能需要经常的将负载均衡后面挂载的实例挂载到不同的负载均衡上进行开发测试或者ABTest.这个时候我们需要快速的克隆一个负载均衡,包括相应的监听设置,可能还会包含后端挂载的ECS实例.在通过开发或者测试之后释放.   通过资源编排的ALIYUN::SLB::LoadBalancerClone 我们可以快速的克隆一个已有的负载均衡. 基本属性       SourceLoadBalancerId 源负载均衡的Id Loa

通过资源编排快速深度克隆负载均衡(SLB)

在日常的开发过程中,我们可能需要经常的将负载均衡后面挂载的实例挂载到不同的负载均衡上进行开发测试或者ABTest.这个时候我们需要快速的克隆一个负载均衡,包括相应的监听设置,可能还会包含后端挂载的ECS实例.在通过开发或者测试之后释放. 通过资源编排的ALIYUN::SLB::LoadBalancerClone 我们可以快速的克隆一个已有的负载均衡. 基本属性 SourceLoadBalancerId 源负载均衡的Id LoadBalancerName 新生成的负载均衡名称 BackendSer

产品经理教你玩转阿里云负载均衡SLB系列(一):快速入门--什么是负载均衡

负载均衡是一种技术,从字面意义上理解,就是让负载(变得)均衡,负载是什么呢?可以理解为工作量.工作强度.用日常生活中的例子来打比方,一群建筑工人,盖一幢楼房,有搬砖的,有和水泥的,有砌墙的,有刷油漆的,同时每个工人的劳动能力还各有差别,如果让这些工作自组织的干起活来,可能有的人忙到累死,而有的人闲的无聊 ,因此不论大小工地上,都会存在监工.项目经理.包工头等这样的角色,他们会统观全局,识别每个工人的工作强度,合理分配任务,保证建筑活动的正常开展,很大程度上起到了的负载均衡的作用, 这就是负载均衡

上云培训课程:深入云服务器ECS和负载均衡SLB

课程名称:深入云服务器ECS和负载均衡SLB   课程代码:ACA21101   课程介绍:负载均衡SLB和云服务器ECS是弹性计算的核心服务.如何通过ECS简单高效,处理能力可弹性伸缩的计算服务助您快速构建更稳定.安全的应用?如何提升运维效率,降低IT成本,使您更专注于核心业务创新?如何通过SLB流量分发扩展应用系统对外的服务能力?通过消除单点故障提升应用系统的可用性?阿里云培训专家将通过深入浅出,理论和实践相结合的课程帮助学员深入掌握SLB和ECS.   课程特色:本培训课程为阿里云原厂上云

再聊负载均衡SLB的主备可用区和高可用部署最佳实践

1.概述 阿里云负载均衡SLB的主备可用区提供了多个层级的高可用,可阅读<负载均衡SLB高可用的四个层次>.但很多用户常常在下单选购时,对可用区的选择感到困惑.到底如何选择SLB的主备可用区,如何搭配不同可用区的ECS,来构建高可靠应用系统呢?客官请听下文分解. 首先,我们要搞清楚一个事实,负载均衡SLB的可用区设计的初衷,是用来抵御可用区(机房)级别的重大灾情的,比如机房整体掉电,机房出口光缆中断等,即当某个可用区整体不可用时,备可用区才派上用场,也就是说只在上述情况下,SLB的主备可用区才

负载均衡SLB高可用的四个层次

负载均衡支持对多台ECS进行流量分发,以提升应用系统的服务能力,长期以来都是关键业务系统的入口.淘宝,天猫,阿里云等无不依赖负载均衡产品,双11的流量洪峰也依赖负载均衡的调度和处理能力. 负载均衡SLB简单介绍 下图是负载均衡的简单示意图,用户的访问请求经过SLB实例的一个监听(端口),再被转发到后端的ECS上.SLB实例对应一个IP地址,监听就是实例上IP地址的一个端口,流量调度是基于监听(端口)进行的,ECS是真正处理服务请求的.   负载均衡SLB架构 下图是从流量转发路径来看的负载均衡S

聊一聊负载均衡SLB的DDoS防护

1.概述 众所周知,DDoS(分布式拒绝服务攻击)攻击是当前互联网上最常见,却最难以防范的一种攻击,其基本原理是黑客通过发动成千上万的肉鸡,在短时间内对被攻击目标发起海量访问,大量占用被攻击目标的服务资源,使得正常的业务访问无法进行,具有危害大.成本低.防范难等特点.阿里云公网产品的一大特点就是有默认DDoS安全防护,包括弹性IP.负载均衡SLB.NAT网关等均有覆盖,今天就以SLB产品为例聊一聊阿里云提供的DDoS防护功能. 如上图所示所有来自Internet的流量都要先经过云盾再到达负载均衡

一张图看懂阿里云网络产品[五]负载均衡SLB

负载均衡SLB是对多台云服务器进行流量分发的服务.它可以通过流量分发扩展应用系统的服务能力,通过消除单点故障提升应用系统的可用性.通过设置虚拟IP,将位于同一地域的多台云服务器虚拟成一个高性能.高可用的应用服务池.根据指定的方式,将来自客户端的网络请求分发到云服务器池中. 系列文章持续更新中,敬请关注 [一]网络产品概览 [二]VPC [三]EIP [四]NAT网关 [五]负载均衡SLB [六]共享带宽 [七]共享流量包 [八]高速通道 [九]VPN网关 [十]云托付 [十一]全球加速

负载均衡SLB百问FAQ

介绍 阿里云负载均衡SLB(Server Load Balancer)是对多台云服务器(ECS)进行流量分发的云服务.负载均衡可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性. 阿里云SLB采用全冗余设计,无单点,支持同城容灾.搭配DNS可实现跨地域容灾,可用性高达99.95%.和传统硬件负载均衡相比,使用阿里云SLB成本可下降60%.基于LVS的四层负载均衡具备接近于实时防御的能力.结合云盾,可提供5G以下的防DDOS攻击能力.采用Tengine作为负载均衡基础