第1页
亚马逊AWS高可用性架构设计最佳实践
张荣典(Forest Zhang), AWS解决方案架构师 2014年12月20日
© 2014 Amazon.com, Inc. and its affiliates. All rights reserved. May not be copied, modified, or distributed in whole or in part without the express consent of Amazon.com, Inc.
第2页
“Everything fails, all the time.”
沃纳∙威格尔 Werner Vogels - 亚马逊 CTO
第3页
高可用性架构设计原则
Design for failure, and nothing will really fail.
假定任何事物都会失效 尽可能采用容错的服务作为架构部件 尽最大可能避免架构中的单故障节点
第4页
基于AWS服务构建高可用性架构
初始设计就是高可用和容错的服务
Amazon Route53 Amazon CloudFront Elastic Load Balancing Amazon S3 Amazon DynamoDB Amazon Kinesis
Amazon SQS Amazon SNS Amazon SES Amazon SWF …
通过正确的架构设计既可实现高可用的服务
Amazon EC2 Amazon EBS Amazon RDS Amazon ElastiCache Amazon VPC …
第5页
高可用性架构设计的基础: 全球网络
遍布全球的网络 区域(Region)、可用区(Availability Zone)和边缘节点(Edge Location)
第6页
高可用性架构设计的基础: 区域(Region)
AZ AZ AZ
AZ
Transit AZ
Transit
全球11个区域(Region) 每个区域拥有两个或者两个以上的可用区(AZ)
* 个别区域有多达5个AZ
第7页
高可用性架构设计的基础: 可用区(Availability Zone)
AZ AZ AZ
AZ
Transit
AZ
Transit
全球28个可用区(Availability Zone) AZ之间是DWDM链路,通常延迟低于2毫秒
每个可用区是一个或多个数据中心
* 某些AZ有多达6个数据中心
第8页
高可用性架构设计的基础: 数据中心(DC)
一个典型的DC至少包含超过50000台服务器, 经常有DC超过80000台服务器
* 避免更大规模的DC(爆炸半径)
第9页
高可用性架构的基础构件:Amazon Route53
AWS Region
AWS Region
Route 53
100% 高可用和可扩展的域名管理系统 极可靠并且节省成本
特点 全球化
细节 从AWS遍布全球的Edge Locations提供服务
可扩展 基于延迟的路由
与其他AWS服务配合 使用 安全
能够自动扩展来处理非常大的查询量,无需 您的干预。
通过遍布全球的 DNS 服务器任播网络,根据 网络条件自动将您的用户路由到最佳的位置。
可以使用 Route 53 映射域名到EC2 实例、 S3 存储段、CloudFront 分配和其他 AWS 资源。
可以为 AWS 账户中的各个用户授予唯一的证 书并管理其权限
第10页
高可用性架构的基础构件:Amazon CloudFront
3 Served from S3 /images/*
London
Paris 1 Single CNAME
www.mysite.com
NY
2 Served from EC2 *.php
CloudFront
全球内容分发服务 - CDN 将内容低延迟,高速的分发给最终用户 SLA: 99.9%
特点 快速
与其他服务配合使用 支持动态内容
流媒体支持
细节
位于世界各地的节点,Amazon CloudFront 在 离浏览者最近的节点缓存您的静态内容副本
无缝的与ELB、EC2和S3配合使用
通过单个 CloudFront 分配提交您的整个网站, 同时包含静态内容和动态(或交互)内容在内
支持从S3通过rtmp协议向flash传输内容
第11页
高可用性架构的基础构件:Elastic Load Balancing
Elastic Load Balancing
创建高可用应用程序 向不同可用区的EC2实例分发流量
特点 自动扩展
可用性
健康检查
Session stickiness Secure sockets layer
监控
细节 自动扩展应付增加的流量
向不同可用区的实例分发流量
自动检查EC2实例的健康状况,将他们移除或者 移入 可以记住session状态,从而向同一实例分发 支持SSL证书
使用Cloud Watch监控运行状态
第12页
高可用性架构的基础构件:Amazon S3
S3
用于任何对象的持久性存储 单个对象最大至5TB 99.999999999% 对象持久性 (Standard) 或者 99.99% 对象持久性 (RRS)
特点 灵活的存储空间
访问控制 服务器端加密 Multi-part上传 对象版本控制
对象过期 访问记录 静态网站托管
成本低
Import/Export
细节 存储桶就像驱动器,可以建立目录 细粒度的控制每一个对象访问权限 256bit AES encryption of objects 提高上传速率 存档旧对象,新对象建立版本 自动删除或者存档过期对象 详细的操作记录 用S3直接托管静态网站,无需服务器 按照存储量计费 通过邮寄硬盘导入导出数据
第13页
高可用性架构的基础构件:Amazon DynamoDB
DynamoDB
配置吞吐量的非关系型数据库 快速、可预测的性能 自动存储扩展 完全分布式的无共享架构 Key – Value GET/PUT 操作,采用用户定义的主键
特点 配置吞吐量 可预测的性能
细节 创建表时,只需指定所需的请求容量即可。 通过后台使用基于SSD的存储,平均几毫秒的延迟
强一致性
内置容错能力 监控 安全
Elastic MapReduce 集成
读取操作使用强一致性检验以确保始终读取最新的 值 可用区域之间自动同步备份数据
与Cloud Watch集成 与IAM服务相集成
可轻松使用 Amazon EMR 来分析 DynamoDB 中 存储的数据集
第14页
高可用性架构的基础构件:Amazon Kinesis
Kinesis
大规模流数据进行实行处理 实时收集与处理数据 并行处理数据流 吞吐可弹性扩展
特点 易用 集成性
弹性 高可靠性
细节
可以在数秒内创建Kinesis的Stream
使用Kinesis Client Library和Kinesis Connector Library可以很快构建Kinesis应用与S3、 DynamoDB、Redshift和ElasticSearch集成
可以弹性扩展吞吐,从每小时数MB到数个TB,从 每秒数千到数百万个Put Record请求
Kinesis实时地往三个数据中心复制数据
第15页
高可用性架构的基础构件*:Amazon EC2
Elastic Compute Cloud (EC2)
计算资源的基本单元 可以选择CPU,内存和实例存储 SLA: 99.95%
特点 灵活 可扩展
虚机镜像
完全控制 安全 监控
多种计费方案 VM Import/Export
细节 可以运行多种版本Windows和Linux操作系统 多种实例大小随意选择
使用自己的虚机镜像快速启动实例,支持跨区域 的转移 完全的ROOT和管理员权限 可以完全配置的安全组 使用Cloud Watch监控实例 按需实例,预留实例和竞价实例
Import and export VM images to transfer configurations in and out of EC2
* 通过正确的架构设计可以实现高可用性架构
第16页
高可用性架构的基础构件*:Amazon EBS
Elastic Block Store
高性能的块级存储,可以挂载至EC2 1GB至1TB Magnetic, SSD, 预配置 IOPS 卷 SLA: 99.95%
特点 高性能文件系统
细节 根据需求格式话
灵活的大小 安全 性能
可以创建1G至1T的卷 只对自己instance可见,并且可选加密 通过使用预配置IOPS的卷获得稳定的高IO性能
可用性 备份 监控
在同一可用区内创建副本
给卷做快照,并且可以在region间复制 使用Cloud Watch监控运行状态
* 通过正确的架构设计可以实现高可用性架构
第17页
高可用性架构的基础构件*:Amazon RDS
Relational Database Service
Database-as-a-Service; 无需安装和管理数据库实例 可扩展和高容错的配置 按需付费的许可方式以及自带许可
Multi-AZ SLA: 99.95%
特点 平台支持
预配置
自动补丁升级
细节 MySQL, SQL Server, Oracle, PostgreSQL 从默认配置即可开始使用
自动保持你的数据平台最新
存储和备份 预配置IOPS
故障转移
最大3TB的数据库存储,自动备份以及按照时间 点恢复
根据需求确定IO吞吐量25,000 IOPS for Oracle; 30,000 IOPS for MySQL; 10,000 for SQL Server
使用Multi-AZ,可以自动切换至备用数据库实例
读复制
简便的创建MySQL读副本,无缝的在可用区域间 复制数据
第18页
高可用性架构的基础构件:Amazon Aurora
Amazon RDS for Aurora
兼容MySQL 高可用性、数据持久性和容错性 高可扩展性和安全性
Commercial-grade Database Engine at Open-source Cost 1/10th the cost of the leading commercial database solutions 5X better performance than standard MySQL
第19页
高可用性架构的基础构件:Amazon Aurora (续)
AZ 1
SQL Txns Caching
AZ 2
AZ 3
Store Store
Store Store
Store Store
Transform: Write to Read Format Optimized
Transform: Write to Read Format Optimized
Transform: Write to Read Format Optimized
3个Availability Zone 6份数据拷贝 “极端情况” 如2个数据中心同时故障不丢失数据 丢失两份拷贝不影响写可用性 丢失三份拷贝不影响读可用性
第20页
高可用性架构设计最佳实践:EC2 (Web Server)
第21页
高可用性架构设计最佳实践: +RDS (DB Server)
第22页
高可用性架构设计最佳实践: +EIP (Public IP)
第23页
高可用性架构设计最佳实践: +Route53 (DNS)
第24页
高可用性架构设计最佳实践: EIP与HA
第25页
高可用性架构设计最佳实践:EIP与HA
第26页
高可用性架构设计最佳实践:EBS与HA
第27页
高可用性架构设计最佳实践:EBS与HA
第28页
高可用性架构设计最佳实践:EBS与HA
第29页
高可用性架构设计最佳实践:+ELB
第30页
高可用性架构设计最佳实践:ELB与HA
第31页
高可用性架构设计最佳实践:ELB与HA
第32页
高可用性架构设计最佳实践:ELB与HA
第33页
高可用性架构设计最佳实践:+AZ 和 RDS Multi-AZ
第34页
高可用性架构设计最佳实践:RDS Multi-AZ与HA
第35页
高可用性架构设计最佳实践:RDS Multi-AZ与HA
第36页
高可用性架构设计最佳实践: +AZ 和 ELB Multi-AZ
第37页
高可用性架构设计最佳实践: +Cloud Watch & ASG
第38页
高可用性架构设计最佳实践: ASG与HA
第39页
高可用性架构设计最佳实践: ASG与HA
第40页
高可用性架构设计最佳实践: ASG与HA
第41页
高可用性架构设计最佳实践: ASG与HA
第42页
高可用性架构设计最佳实践: ASG与HA
第43页
高可用性架构设计最佳实践: ASG与HA
第44页
高可用性架构设计最佳实践: ASG与HA
第45页
高可用性架构设计最佳实践: ASG与HA
第46页
高可用性架构设计最佳实践: ASG与HA
第47页
高可用性架构设计最佳实践: ASG与HA
第48页
高可用性架构设计最佳实践: ASG与HA
第49页
高可用性架构设计最佳实践: ASG与HA
第50页
高可用性架构设计进阶:+DynamoDB和S3
第51页
高可用性架构设计进阶:+ SQS松耦合设计
第52页
验证你的高可用性架构设计
第53页
更多参考资料
• AWS官网
– http://aws.amazon.com
• AWS参考架构
– http://aws.amazon.com/architecture/
• AWS白皮书
– http://aws.amazon.com/whitepapers/
第54页
谢谢!
Website www.amazonaws.cn
Blog blog.csdn.net/awschina
Weibo weibo.com/amazonaws
Wechat AWS 中国