如何在阿里云上构建高可用的跨AZ部署方案

简介: 引言 针对企业而言不管业务是不是在云上服务的稳定和连续性总归是无法回避的话题为了降低不可抗力因素对服务提供造成的影响我们有了高可用性和容灾的概念。虽然我们的产品已有很高的可用性我们仍不能忽视构建服务高可用性和容灾的重要性。

引言:

针对企业而言,不管业务是不是在云上,服务的稳定和连续性总归是无法回避的话题,为了降低不可抗力因素对服务提供造成的影响,我们有了高可用性和容灾的概念。虽然我们的产品已有很高的可用性,我们仍不能忽视构建服务高可用性和容灾的重要性。

针对一般企业而言,主要会用到ECS, SLB, RDS, OSS

产品介绍:

ECS

云服务器。相当于阿里云上的虚拟机,本身没有高可用性和容灾,需要通过架构来实现。

SLB

负载均衡,高可用性和容灾可以从两点来阐述:

1. 负载均衡的服务提供是基于集群部署的,各集群有一定数量的节点,避免了单点故障,个别或者部分节点服务器宕机不会影响负载均衡服务的提供。

2. 当前提供的负载均衡实例大多是多可用区实例,主备实例在同城不同可用区机房,当主实例机房出现故障,能及时进行切换,来实现容灾和服务的高可用性。

多可用区实例分布可以参考:

https://help.aliyun.com/document_detail/52395.html

RDS

云数据库。

单机基础版RDS:https://help.aliyun.com/document_detail/48980.html

双机高可用版RDS:在同一可用区有主备实例,在主实例出现故障时候可以进行主备切换,具有高可用和容灾特性.

多可用区RDS:主备实例在不同可用区

RDS之间还可以用DTS同步和迁移数据。

OSS

文件以chunk分块方式存储,默认每块存三副本,并分布在不同机架的ChunkServer节点上。在盘古集群中Master允许宕机1台,Chunkserver允许同时宕机2台,KVServer与WS允许宕机多台。

基本架构:

一. 多可用区SLB + 不同可用区ECS

如下图所示,在负载均衡实例下绑定不同可用区的 ECS,当可用区A未出现故障时,用户访问流量如蓝色实线所示;当可用区A发生故障时,用户访问流量的分发将变成黑色虚线,这样即可以避免因为单个可用区的故障而导致对外服务的不可用,也可以通过不同产品间可用区的选择来降低延迟。

ad70b3acdbc89bb18a7051e1c76ed0fe8852c3f0

搭建:

1.创建多可用区SLB实例

登录阿里云控制台,选择负载均衡,点击右上角“创建负载均衡”按钮

3f3725f395386ed1ab40748b5b06a46a92a090af

以华北2为例,购买主可用区B、备可用区A的多可用区实例。

4242fa8740f4264ef7791f0ebee262de1cad7704

2.在SLB主备可用区分别创建ECS实例

98ecf3fe10788f7db35db1a6799bb48962b2a8ac

分别在华北2可用区A和B创建测试实例,本例中采用默认安全组,经典网络,1核1G内存CentOS 7.2实例。

f12bf220a3f3bc5ea084dd3422b5abfdd9fd996a

3.创建监听并添加后端服务器

在控制台负载均衡界面,找到创建的实例,点击“管理”

1fcfb454b8bb404dbd1dd07bfe885ae8e98f0378

点击后端服务器,选择未添加的服务器,找到对应实例并点击“添加”

8950e9773e403db57a999e42ad08e6f1941e6cbe

我们可以在已添加界面看到对应ECS实例及其权重

5c76ebe38154c52e2c231424c06aaa287fcaf648

点击左侧监听栏,选择“添加监听”,根据需要选择监听属性。本例中采用TCP四层模式,监听80端口,后端转发80端口,使用默认加权轮询,并开启会话保持,使用默认1000s超时时间。

22570f86feb694a7ff4a87bac337ac5966a3a7f6

设置健康检查为TCP模式,检查后端80端口

afc818cb67337517cb3c3fa8fa7bf8cc75480d36

之后我们可以在监听页面看到添加的监听及其状态。

1dbfad4630787239e30a986850631e0d6304d474

后续客户只需要在ECS上部署相关服务并监听80端口,并将域名解析到SLB公网IP,那么负载均衡即可将请求转发到后端ECS并提供服务。

二. 多可用区SLB + 不同可用区ECS +高可用RDS

多可用区版RDS:

4b2fb318d3e7a83500339300c1427e16ebed4a8e

对于没有多可用区RDS的地域,可以在对应可用区分别建立一台RDS,其中备用可用区的作为备库,跟主可用区的RDS实例进行同步。

786c15599f3f04ebe9aad68a9f24ab1d74180d5c

搭建:

多可用区RDS的情况:

在多可用区SLB和不同可用区ECS的基础上,购买rds实例:

6d8ea5419a210dbd218159d62cc6d6c4f2b1bdde

只有部分地域有多可用区RDS:

662fa37813b9f88e5119351588d3c0efc4b96522

购买后可以在控制台查看:

d31ae1fdd0d1ace6c1222ac4e519716c5a71b981

同样在控制台我们可以查看RDS高可用信息以及进行主备切换:

93c0d107afbddfb5048236d9ad9b5c2c9c1ea3e1

不同可用区分别搭建RDS的情况:

分别在可用区A和B购买双机高可用RDS。然后创建DTS同步

bdbd20343579227c5004efb6a8d453102ebdc6ae

99a7d20a068066bbb4ad59aadf0af725b331d056


具体同步作业创建参考:

https://help.aliyun.com/document_detail/26633.html?spm=5176.doc26592.6.597.1CsqxD

三.高可用性-异地容灾

13e1fdbc66f33540b491b9f03df1b7187cb5de09

在前面同城多可用区的情况下,异地也部署一套环境。

具体访问哪边可以配置DNS解析,RDS用DTS同步。

相关实践学习
通义万相文本绘图与人像美化
本解决方案展示了如何利用自研的通义万相AIGC技术在Web服务中实现先进的图像生成。
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情: https://www.aliyun.com/product/ecs
相关文章
|
存储 弹性计算 运维
阿里云产品(上)
一、阿里云四大件 1、云服务器ECS 2、云数据库RDS 3、负载均衡SLB 4、对象存储OSS 5、其他的云计算产品 1)内容分发网络CDN: 2)专有网络 VPC: 2)弹性伸缩: 二、阿里云安全系列产品 1、DDoS高防IP 2、安骑士 3、证书服务 4、态势感知 5、堡垒机
4383 1
阿里云产品(上)
|
9月前
|
存储 弹性计算 人工智能
阿里云服务器ECS深度解读:架构、实例规格、配置选择、计费成本及性能优化全解析
阿里云ECS是弹性可伸缩的IaaS计算服务,支持x86/Arm架构,提供高可靠、高性能的实例规格,适配建站到AI/超算全场景。单实例SLA达99.975%,数据可靠性99.9999999%。涵盖多种计费模式、安全防护与高可用架构,助力企业降本增效,实现数字化转型。
|
存储 缓存 监控
如何写出一篇好的技术方案?
近期作者在写某个项目的技术方案时,来来回回修改了许多版,很是苦恼。于是,将自己之前写的和别人写的技术方案都翻出来看了几遍,产生了一些思考,分享给大家。
如何写出一篇好的技术方案?
|
Prometheus 监控 Kubernetes
《云原生场景下Prometheus指标采集异常的深度排查与架构修复》
本文聚焦云原生监控系统中Prometheus采集K8s容器指标的“间歇性无数据”问题,还原其技术环境(K8s 1.28.3、Prometheus 2.45.0等)与故障现象(指标缺失5-15分钟,高峰期频发)。排查发现,根源在于kubelet的cadvisor指标生成线程不足、缓存策略不当,叠加Calico iptables转发延迟。通过优化kubelet参数(增线程、缩缓存)、调整Prometheus采集策略(延间隔、分片采集)、切换Calico为IPVS模式,问题得以解决。同时给出长期监控预警方案,为云原生监控运维提供实践思路,强调全链路协同优化的重要性。
452 4
|
存储 数据采集 Kubernetes
一文详解K8s环境下Job类日志采集方案
一文详解K8s环境下Job类日志采集方案
一文详解K8s环境下Job类日志采集方案
|
消息中间件 SQL API
TDengine 数据订阅 vs. InfluxDB 数据订阅:谁更胜一筹?
在时序数据的应用场景中,数据的实时消费和处理能力成为衡量数据库性能和可用性的重要指标。TDengine 和 InfluxDB 作为时序数据库(Time Series Database)中的佼佼者,在数据订阅方面各有特点。但从架构设计、灵活性和系统负载上看,TDengine 提供了更加全面且高效的解决方案。
540 2
|
运维 资源调度 Kubernetes
没有银弹,只有取舍 - Serverless Kubernetes 的思考与征程(一)
Kubernetes的本质复杂性与附属复杂性到底有什么?我们应该如何应对?
没有银弹,只有取舍 - Serverless Kubernetes 的思考与征程(一)
|
监控 Devops 中间件
测试环境不稳定&复杂的必然性及其对策
为什么测试环境的不稳定是必然的,怎么让它尽量稳定一点?为什么测试环境比生产环境更复杂,怎么让它尽量简单一点?本文将就这两点进行分享。同时,还会谈一谈对测试环境和生产环境的区别的理解。
测试环境不稳定&复杂的必然性及其对策