多台ECS示例+负载均衡设备+弹性公网IP实现的高可用架构
公网IP是由公共网络运营商分配的,可让用户通过互联网与其他用户实现数据交流和信息传递的唯一地址。
普通公网IP是指在购买云资源时默认配置的公网IP地址,在阿里云平台上购买云服务器时,勾选分配公网IPV4地址按钮,会自动分配公网地址,这类地址通常和云资源实例强绑定,在释放云服务器时,此IP将会随之释放。
弹性公网IP(Elastic IP Address),简称EIP,是可以独立购买和持有的公网IP地址资源,EIP是一种NAT IP,通过NAT方式映射到被绑定的云资源上。当EIP和云资源绑定后,云资源可以通过EIP与公网通信,当云资源被释放后,EIP会和云资源解绑,EIP会保留在账号内。
阿里云ECS云服务器可以绑定弹性公网IP来实现灵活的互联网访问,以下是将弹性公网IP绑定到ECS实例的配置流程:
关于NAT技术与弹性公网IP的简单原理,阅读:https://news.west.cn/26218.html
从实现方式来看,企业中的负载均衡通常采用硬件设备或是软件来实现。通过硬件实现负载均衡,性能和稳定性都会更好,但是整体成本较高,而且设备容易出现单点故障。
从工作方式来看,企业中的负载均衡通常工作在OSI七层模型的四层(传输层)和七层(应用层),四层负载均衡通常用于TCP/UDP协议,七层负载均衡通常用于HTTP/HTTPS的Web服务。
阿里云负载均衡SLB就是一种典型的软件负载均衡产品,提供多种负载均衡类型,包括传统型负载均衡CLB(提供四层和七层负载均衡)、网络型负载均衡NLB(四层)、应用型负载均衡ALB(七层);
本次以CLB为例介绍,在阿里云CLB上创建多个监听器在外网监听多个端口,并在每个监听器后端绑定多个服务器,通过一定的流量分发策略将前端的用户访问调度到具体的服务器上,然后服务器承载监听器传递过来的流量,监听器除了可以配置特定的分发策略之外,还可以配置健康检查,如下图中灰色的云服务器代表该云服务器健康检查失败,流量不会转发到该云服务器上。
调度算法
阿里云负载均衡CLB的监听器默认支持的调度算法有三种:轮询、加权轮询和一致性哈希:
健康检查
在负载均衡上启用了健康检查功能之后,可以在后台服务器出现故障无法提供服务时,确保不会再有流量进入此服务器,保障了用户访问的连续性,提升了用户体验。
会话保持
开启了会话保持之后,可以在一定的时间内,始终由一台机器为某用户完全后续请求,通过把特定的用户在一定时间内留在同一个机器上的方法,确保了用户体验的一致性。
整体来看,使用和配置传统型负载均衡CLB有以下几个步骤:
购买传统型负载均衡CLB实例
访问传统型负载均衡控制台,点击创建传统负载均衡,选择地域、可用区、实例类型为私网,与后端ECS实例在同一VPC内。
配置监听和后端服务器
协议&监听:
负载均衡协议工作在四层则选择TCP协议,工作在七层则选择HTTP协议
监听端口处输入80(Web服务默认端口),点击下一步
后端服务器
选择默认服务器组,选择添加两台ECS实例;点击下一步,输入权重;点击添加,在端口处输入80,点击下一步。
健康检查
开启,如有需要可进行高级配置。
配置审核
审核确定无误之后提交。
EIP绑定CLB
进入弹性公网IP实例页面,点击绑定资源,绑定EIP到负载均衡CLB。
测试负载均衡配置
两台ECS实例安装httpd服务并启动,网站首页写入不同内容,浏览器访问EIP并多次刷新,观察是否显示不同内容。
RDS(Relational Database Service)是阿里云提供的一种托管式的关系型数据库服务,它为用户提供了一种简单、可靠、安全的方式来部署、操作和扩展数据库。
创建步骤如下:
创建RDS实例
登录RDS控制台,点击创建实例
设置基础资源和实例配置:地域可用区、存储类型、数据库类型、VPC和交换机等,此处以MySQL为例。
注意:RDS实例购买后,不支持更改地域。尽量让ECS与RDS内网互通。否则,ECS实例只能通过外网访问RDS实例,无法发挥最佳性能。
支付
设置白名单
设置白名单可以限制只有指定的IP地址才能访问数据库,防止未授权的访问。这样可以有效防止黑客和恶意攻击,保护数据库安全。
访问RDS实例列表,然后点击目标实例ID,进入实例配置页面。在左侧导航栏中,单击白名单与安全组。
注意:RDS主库实例ID为rm-开头蓝色字体的字符串
添加白名单分组
创建数据库
在左侧导航栏中单击数据库管理,然后单击创建数据库。
设置库名和字符集。
常见字符集名称:ASCII字符集、GB2312字符集、BIG5字符集、 GB18030字符集、Unicode字符集等。utf8、utf8mb4是Unicode其中的使用方式。在跨境电商行业里通常选用utf8就够了,若是表情符场景可选用utf8mb4这样会增加一点存储成本。
创建账号与授权
在左侧导航栏选择账号管理,然后单击创建账号。
设置账号信息
高权限账号无需选择要授权的数据库,因为高权限账号拥有实例里所有数据库的权限,一个实例只能有一个;普通账号可以有多个,可授读写(DDL+DML)、只读、仅DDL或仅DML中的一个或多个,也可以自定义权限。
连接RDS
基于传统架构下的按高峰需求买齐云服务器的方式非常的浪费,因为业务低峰时间这些资源大部分都处于闲置状态。
弹性伸缩(Elastic Scaling Service),简称ESS,也称为Auto Scaling,是阿里云根据业务需求和策略自动调整计算能力(即实例数量)的服务。
在业务需求增长时,弹性伸缩自动增加指定类型的实例,来保证计算能力;在业务需求下降时,弹性伸缩自动减少指定类型的实例,来节约成本。当业务需求量有波动时,弹性伸缩能够自动调整指定类型的实例数量,满足业务需求。
操作步骤:
创建伸缩组:
伸缩组是弹性伸缩的核心单元,用来管理满足该公司业务需求的一组实例。弹性伸缩将会在该伸缩组内自动增加或减少实例。
创建伸缩配置
伸缩配置是扩容ECS实例使用的模板,包括实例规格、存储、公网IP、安全组等信息。弹性伸缩使用该配置创建相同配置的ECS实例
自定义伸缩配置的名称,付费模式选择按量付费,指定合适的实例规格,使用自定义镜像,选择安全组。
使用报警任务实现自动扩缩容
当业务系统高峰时(cpu使用率>=80%时),增加ECS;当业务系统低谷时(CPU使用率<=20%),减少ECS;
在配置报警任务时,需要设置伸缩规则
伸缩规则可以使用简单规则,直接增加或者减少具体数量的ECS,也可以选择其他规则。