利用ROS搭建应用基础套件-阿里云开发者社区

开发者社区> 云计算> 正文
登录阅读全文

利用ROS搭建应用基础套件

简介: 本文介绍如果利用阿里云资源编排服务搭建一套企业级应用的基础架构(SLB+ECS+RDS).

背景

SLB + ECS + RDS 是企业级应用的基础搭配,在小型应用场景下这三款产品成为了架构的核心组件。

screenshot

基本结构如上图所示,创建一组ECS实例并挂在到SLB下面,然后创建一个ECS实例,同时把ECS的IP加入到访问白名单。作为应用方,您只需要根据业务类型和特点预估一下ECS的数量即可,其余的事情阿里云资源编排服务ROS可以帮您一键完成。

创建的资源包括

  • ALIYUN::ECS::InstanceGroup

    • 创建一组相同配置的ECS.

注意:如果每台ECS的转发权重一样的话,可以采用本文的方式挂载到SLB,否则您可以参考手动的方式挂载并设置不同的权重值。

  • ALIYUN::SLB::LoadBalancer

    • 创建一个负载均衡
  • ALIYUN::SLB::Listener

    • 配置监听
  • ALIYUN::SLB::BackendServerAttachment

    • 挂载ECS到负载均衡
  • ALIYUN::RDS::DBInstance

    • 创建RDS实例

有关RDS更多配置请参考利用ROS创建RDS实例

步骤详解

  • step1: 创建一组ECS实例,配置为2核4G(ecs.s2.large), 选择非IO优化的普通云盘,选择公共镜像,同时创建一个安全组。ECS数量的上线根据具体的业务场景来设置,本例设置默认值为2。
"ecsInstanceGroup": {
      "Properties": {
        "ImageId": "centos7u2_64_40G_cloudinit_20160520.raw",
        "InstanceType": "ecs.s2.large",
        "MaxAmount": {
          "Ref": "EcsMaxAmount"
        },
        "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"
    }
  • step2: 创建负载均衡,设置端口映射为80 -> 8080
"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"
      }
    }
  • step3: 挂载ECS到SLB, 设置相同的权重
"Attachment": {
      "Properties": {
        "BackendServerList": 
        {
          "Fn::GetAtt": [
            "ecsInstanceGroup",
            "InstanceIds"
          ]
        },
        "LoadBalancerId": {
          "Ref": "LoadBalancer"
        }
      },
      "Type": "ALIYUN::SLB::BackendServerAttachment"
    }
  • step4: 创建RDS实例,同时设置访问白名单

"RDSInstance": {
      "Properties": {
        "ConnectionMode": "Safty",
        "DBInstanceClass": "rds.mys2.large",
        "DBInstanceDescription": "createByRos",
        "DBInstanceNetType": "Intranet",
        "DBInstanceStorage": "100",
        "Engine": "MySQL",
        "EngineVersion": "5.6",
        "SecurityIPList": {
          "Fn::GetAtt": [
            "ecsInstanceGroup",
            "PrivateIps"
          ]
        }
      },
      "Type": "ALIYUN::RDS::DBInstance"
    }

到ROS控制台创建 >>

下载模板 >>

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

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

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

其他文章
最新文章
相关文章