作者:guoliangdi

AWS 发展历史

AWS 服务概览

AWS 服务简介-计算服务

AWS 服务简介-网络服务

AWS 服务简介-数据库服务

AWS 服务简介-存储服务

Part 1 - AWS Architecture Design

BRIEF

Imagine that you meet with a small startup company in the early stages of their operations. Currently their architecture uses a LAMP stack with MySQL, Apache and PHP all running on one desktop PC within their small office. Like many small start-ups they are confident that they will be the next big thing and expect significant, rapid, yet unquantified growth in the next few months. With this in mind, they are concerned about:

  1. Scaling to meet the demand, but with uncertainty around when and how much this demand will be they are very concerned about buying too much infrastructure too soon or not enough too late!

扩大规模以满足需求,但由于不确定需求会在什么时候出现以及会有多大,他们非常关心是否购买了太多的基础设施,太早或不够,太晚!

需求分析:

说明用户对未来服务使用量规模不确定,如果过早投入必然造成资源与成本的浪费,太迟则可能会影响企业的稳定发展。针对此类问题要求所有基础设施应具备弹性计算的能力,可以根据使用情况而自动扩展与缩小服务规模。

方案:

采用 Amazon EC2 Auto Scaling 来维持应用程序的可用性,确保 EC2 队列的可用性并根据其需求自动扩展和缩减该队列,以最大限度提高性能和降低成本,同时实例类型可以采用按需实例,实际消耗的计算容量支付费用,而不是预留实例。

  1. Their lack of provision for Disaster Recovery.

他们缺乏灾难恢复的准备。

需求分析:

灾难恢复涉及到基础设施高可用与异地多活的能力,备用电力等条件,如自建机房部署方式如果出现故障会造成灾难性的后果,即使恢复也可能丢失掉部分数据。做为云计算需要有快速恢复故障的能力同时确保数据不会丢失。

方案:

采用 Amazon EC2 实例恢复的机制,如果实例出现问题,替代实例可以在其中以可预见的方式快速启动。Amazon RDS 具备主备数据库构成的高可用数据库,通常备用实例也是存放在其他可用区中,Amazon RDS 会将数据同步复制到其他可用区 (AZ) 的备用实例中,同时设置数据库的快照。另外在发生硬件故障的情况下,Amazon RDS 将自动更换用于支持部署的计算实例。

  1. Their ability to configure their database and data access layer for high performance and throughput.

他们配置数据库和数据访问层以获得高性能和吞吐量的能力。

需求分析:以直观的方式显示数据库负载,即使非专业人士也能检测性能问题。

方案:

Amazon RDS Performance Insights 是一项数据库性能调优和监控功能,通过看板可分析和调整 RDS 数据库性能,可帮助您迅速评估数据库负载压力与吞吐量的监测。

另外提高性能需要注意的有以下措施:

1、在配置方面可以采用高性能的存储类型(IOPS(SSD))保证数据库提供高性能的读写操作;

2、通过多个只读副本读写分离,从而负载数据库的访问;

3、高性能数据库必要的时候通过缓存减少数据库访问次数。

  1. Making the user experience in the browser very low latency even though a large portion of their user base will be from far away.

使浏览器中的用户体验延迟极低,即使他们的大部分用户来自很远的地方。

需求分析:应用可以被远端用户以最小的网络延迟被访问,通常是采用CDN方式。

方案:通地 AWS CloudFront 能够使的边缘站点缓存静态数据,加速分配给最终用户的 Web 服务。

  1. Effective distribution of load.

负荷的有效分配。

需求分析:动态流量分发

方案:EC2 可以通过 Elastic Load Balancing 自动分配传入的应用程序流量。

1、通过使用 Elasticache 缓存应用数据来减少数据库读的压力。

2、加快应用程序性能、减轻后端数据库负载。

  1. A self-healing infrastructure that recovers from failed service instances.

从失败的服务实例中恢复的自修复基础设施。

需求分析:服务健康监控

方案:通过 Amazon Cloudwatch 中定义的报警指标检测 auto-scaling。CloudWatch 以日志、指标和事件的形式收集监控和运营数据,并使用自动化控制面板将其可视化。

创建 Amazon CloudWatch 警报来监控 Amazon EC2 实例。如果实例因需要 AWS 参与才能修复的基础硬件故障或问题而受损,可自动恢复实例。

  1. Security of data at rest and in transit.

静止和传输中的数据的安全性。

需求分析:访问链路安全

方案:通过AWS Certificate Manager 来申请 SSL 证书。

1、数据安全通常做法在数据传输过程和存储能够加密的形式。

2、数据存储的安全性通常的做法是使用加密算法存储数据。

3、对数据在传输过程中的安全,由于VPC起到了隔离资源的作用。那么在网络层可以仅由客户使用IAM给定的特权来建立连接。数据在运输过程中可以通过SSL / TLS传输协议。

  1. Securing access to the environment as the delivery team expands.

随着交付团队的扩展,确保对环境的访问。

方案:

使用AWS IAM 定义 用户/角色和组的不同权限,针对不同资源向不同人员授予不同权限,例如,您可以允许某些用户完全访问 Amazon Elastic Compute Cloud (Amazon EC2)、Amazon Simple Storage Service (Amazon S3)、Amazon DynamoDB、Amazon Redshift 和其他 AWS 服务。对于另一些用户,您可以允许仅针对某些 S3 存储桶的只读访问权限,或是仅管理某些 EC2 实例的权限,或是访问您的账单信息但无法访问任何其他内容的权限。不必共享您的密码或访问密钥。

  1. An archival strategy for inactive objects greater than 6 months.

大于6个月的不活动对象的归档策略。

需求分析:需要有一个存储档案的容器可以定期存在相关的日志和非活动的对象。

方案:Amazon S3 是一种对象存储服务,提供行业领先的可扩展性、数据可用性、安全性和性能。各种规模和行业的客户可以为几乎任何使用案例存储和保护任意数量的数据,例如数据湖。且S3提供不同访问频率的服务规格。

  1. Ability to easily manage and replicate multiple environments based on their blueprint architecture.

能够基于蓝图架构轻松管理和复制多个环境。

方案:如果复制到不同 region,可以采用AWS CloudFormation ,它提供了一种通用语言来描述和预配置您的云环境中的所有基础设施资源。CloudFormation 使您可以跨所有地区和账户使用简单的文本文件以自动化的安全方式为您的应用程序需要的所有资源建模并对其进行预配置。

如快速部署环境、开发环境等可采用 AWS Elastic Beanstalk,只需上传代码,Elastic Beanstalk 即可自动处理包括容量预配置、负载均衡、自动扩展和应用程序运行状况监控在内的部署工作。

Solution Design 系统架构图:

Design Detail

网络层:

Route53:实现的DNS域名解析服务,通过CNAME连接到 CloudFront endpoint 。

CloudFront: 实现全球内容发布网络,用户请求将被引导到最低延迟的节点,提供传送的内容最佳性能,需要设置CloudFront 设置访问源为应用的ELB节点。

AWS Regoin 是应用部署的区域,一个Region可以有A-Z可用区。

应用层:

Auto Scaling与 ELB 集成来实现应用服务的可用性和扩展性,将ELB附加到现有 Auto Scaling组实现负载均衡,它能够自动注册组内的实例,并将传入请求分配给这些实例。 在可用性方面,如果有服务失败宕机,那么auto-scaling 能够迅速发现问题机器并启动一台新的机器,持续服务。在扩展性方面使用 Auto Scaling,可以设置Min/MaX/参数实现自动扩缩 EC2 的服务实例数量。 AutoScaling组中的每个实例都在不同的可用区,防止在可用区发生故障。

数据层:

elasticache:

使用ElastiCache Redis 提高生产部署的可靠性,缓解对数据库访问的压力,降低延迟。

Redis 组包含一个应用程序可读写入的主节点和 2个只读节点。在向主节点写入数据时,也会在只读副本节点上异步更新数据。 这样可以有效的防止节点故障,而在两个可用区各分别部署一个集群服务,主要是为了避免可用区故障。

DataBase:

数据库负责数据库的高可用和高性能的数据存储,一个高可用的数据库通常包含两个数据库实例:一个主数据库和备用数据库。当所有请求发送到主数据库时,由 RDS实例来负责响应服务器请求,完成对数据的读写操作。主和备用数据库之间的数据同步复制。如果主数据库由于硬件或网络故障而不可用时,RDS会自动侦测到故障,启动故障转移过程,备用数据库将成为了主数据库,同时DNS也会自动更新,来实现快速故障转移。

VPC&安全组设置:

每一层都设计了安全组和子网,能够更加有效提供安全保障机制。

在应用层autoScaling的安全控制中定义允许访问的80和443端口,允许特定访问 eg. ssh 22。

安全组入站策略定义允许访问MYSQL/Aurora/redis等端口。

监控:

通过使用CloudWatch来监控整个系统的内存使用率、利用率等一系列指标来监控服务器运行状况。

Summary 总结:

创业公司提出的需求正是云平台提供商所要解决的问题,如何提供可管理的,高性能,高可用,安全的基础服务平台,同时方便用户日常的运维,发布和应对突发事件的能力。

高性能:也是客户非常关注的,AWS覆盖全球25个地理区域,81可用区,在提供高可用的服务同时,也能够提供高性能服务。AWS提供了各种类型的实例类型,内存优化,存储优化等等,适应不同的需求。

高可用性:无论是APP层的AutoScaling、数据库、S3都会提供不同成本的规格,而且是在不同的可用区,这个可以保证一个可用区不可用时,应用可以快速切换到另外的可用区,做到高可用。

安全性:AWS通过强大自动监控系统可以做到保护网络和增强互联网接入的安全性,通过VPC和安全组的控制,做到网络的安全性和隔离性。

References 引用:

https://aws.amazon.com/cn/vpc/?nc2=h_ql_prod_fs_vpc

https://aws.amazon.com/cn/ec2/?nc2=h_ql_prod_cp_ec2

https://aws.amazon.com/cn/rds/aurora/?nc2=h_ql_prod_db_aa

https://aws.amazon.com/cn/cloudfront/?nc2=type_a

https://aws.amazon.com/cn/s3/?nc2=h_ql_prod_st_s3

AWS-小型企业-服务架构设计相关推荐

  1. 架构设计:远程调用服务架构设计及zookeeper技术详解(上篇)

    一.序言 Hadoop是一个技术生态圈,zookeeper是hadoop生态圈里一个非常重要的技术,当我研究学习hadoop的相关技术时候,有两块知识曾经让我十分的困惑,一个是hbase,一个就是zo ...

  2. 微服务架构设计总结实践

    -     目录    - 一.微服务架构介绍 二.出现和发展 三.传统开发模式和微服务的区别 四.微服务的具体特征 五.SOA和微服务的区别 六.如何具体实践微服务 七.常见的微服务设计模式和应用 ...

  3. (转)微服务架构 互联网保险O2O平台微服务架构设计

    http://www.cnblogs.com/Leo_wl/p/5049722.html 微服务架构 互联网保险O2O平台微服务架构设计 关于架构,笔者认为并不是越复杂越好,而是相反,简单就是硬道理也 ...

  4. 互联网金融平台功能分析及微服务架构设计

    互联网金融平台微服务架构设计 按照孢子框架要义对互联网金融理财平台进行微服务架构设计.假设我们设计的目标是5年后的陆金所(https://www.lu.com/).陆金所简介,平安集团旗下理财平台,是 ...

  5. SACC2018:微服务架构设计

    2018年10月17日~19日,由IT168旗下ITPUB企业社区平台主办的第十届中国系统架构师大会(SACC2018),在北京海淀永泰福朋喜来登酒店成功举办.本届大会以"十年架构 成长之路 ...

  6. 互联网金融平台微服务架构设计

    微服务架构设计 互联网金融平台微服务架构设计 按照孢子框架要义对互联网金融理财平台进行微服务架构设计.假设我们设计的目标是5年后的陆金所(https://www.lu.com/).陆金所简介,平安集团 ...

  7. 北达软微服务架构设计与实践圆满结束

    2016年10月26-27日,为期两天的微服务架构设计与实践在北京大学成功举办.随着新一代信息技术的快速发展,业务需要快速变化.快速创新,互联网的连接带来了大的并发量和数据量.从单机架构走向分布式架构 ...

  8. 孢子框架-互联网金融平台微服务架构设计(转)

    非常感谢http://www.cnblogs.com/skyblog/p/4915383.html 对互联网金融理财平台进行微服务架构设计.假设我们设计的目标是5年后的陆金所(https://www. ...

  9. 一张图搞懂微服务架构设计

    前言 当前,微服务架构在很多公司都已经落地实施了,下面用一张图简要概述下微服务架构设计中常用组件.不能说已经使用微服务好几年了,结果对微服务架构没有一个整体的认知,一个只懂搬砖的程序员不是一个好码农! ...

最新文章

  1. 2022-2028年中国集装箱涂料行业市场研究及前瞻分析报告
  2. 病虫害模型算法_基于深度学习的目标检测算法综述
  3. 2015.4.25-2015.5.1 字符串去重,比例圆设计,中奖机和canvas橡皮擦效果等
  4. Freemarker问答:
  5. 疑案追踪:Spring Boot内存泄露排查记
  6. IBM HACMP 系列 -- 后期安装工作和管理任务二
  7. eq,neq,gt,lt等表达式缩写
  8. GRE词汇乱序版-夹生的词汇3
  9. 【数据库】关系型数据库优化操作
  10. 如何增加儿童产品中的趣味性?
  11. python ndarray find_python – 从存储在NumPy ndarrays中的图像中查找特定(R,G,B)颜色值的(x,y)索引...
  12. pandas显示全部数据内容_1行Python代码就能挖掘数据!这个库太神奇啦!
  13. unix网络编程 的环境配置
  14. “开源、共享、创新” 2020 中国.NET开发者大会小结
  15. 在企业中使用的Silverlight:RAD数据通信用户友好的数据库访问
  16. Android USB AUDIO初步分析
  17. 传统进销存软件上云势在必行
  18. 增量式解析大型XML文件
  19. 三菱plc与三菱变频器专用通讯
  20. 《算法竞赛进阶指南》 荷马史诗

热门文章

  1. Java学习之什么是泛型的擦除
  2. ESP8266 NodeMCU Web 服务器:在仪表盘中显示传感器读数
  3. 【LTE基础知识】LTE信令流程之开机附着、去附着流程分析
  4. centos7 yum安装opensips-3-2 opensips-cli
  5. PMP中的那些进度/成本图
  6. Lexical Simplification with Pretrained Encoders 论文精读
  7. 初学古琴怎么学?古琴入门基础知识
  8. 研究生必备快速查找翻译阅读外文文献方法
  9. PTA 钻石真题卷——均是素数
  10. error: use of undeclared identifier 'bool'以及C各编译器问题