优化AWS解决方案架构以提高性能效率

描述

  亚马逊网络服务(AWS)提供各种资源和服务来帮助您构建SaaS和PaaS解决方案,但是,挑战在于实现和保持性能效率,这在交付业务价值方面具有自己的重要份额。本文重点介绍了设计和运行可靠、安全、高效且经济高效的云应用程序的一些最佳做法,这些应用程序可提供性能效率。有两个主要领域需要关注:

  选择和配置云资源以获得更高的性能

  查看和监控性能

  1. 选择和配置云资源以获得更高的性能

  计算:在 AWS 中,计算以三种形式提供:实例、容器和函数。可以根据工作负载选择要用于体系结构中每个组件的计算形式。在构建计算使用时,您应通过以下方式利用 AWS 弹性计算选项:

  选择最佳实例系列和类型,以确保您拥有正确的计算、内存、网络和存储功能,以及最符合工作负载需求的正确配置

  优化操作系统设置,如卷管理、RAID、块大小和设置

  使用 Amazon ECS 服务构建容器时,您应该使用数据为工作负载选择最佳类型,并考虑容器配置选项,例如内存、CPU 和租赁配置

  实现性能的关键 AWS 计算服务:

  AWS Lambda:要使用 AWS Lambda 提供最佳性能,请选择函数所需的内存量。例如,选择 256 MB 内存会为您的 Lambda 函数分配大约是请求 128 MB 内存的两倍。您还可以控制每个函数允许运行的时间(最多 300 秒)

  AWS 竞价型实例:使用竞价型实例以低成本生成负载,并在生产中遇到瓶颈之前发现瓶颈

  存储:AWS 提供块、文件系统、对象和存档等存储解决方案。您可以通过考虑共享能力、文件大小、缓存大小、延迟要求、预期吞吐量和数据持久性等特征来选择任何一项。

  实现性能的关键 AWS 存储服务:

  您可以从 Amazon S3、Amazon Glacier、Amazon Elastic Block Store (Amazon EBS)、Amazon Elastic File System (Amazon EFS) 或 Amazon EC2 实例存储中选择最适合您需求的 AWS 服务。以下是 AWS 存储服务及其特征的摘要。

  

数据库

参考:AWS 架构完善的框架 – AWS 的性能效率支柱白皮书

  数据库:在 AWS 中,有四种方法可以满足数据库要求:关系在线事务处理 (OLTP)、非关系数据库 (NoSQL)、数据仓库和在线分析处理 (OLAP) 以及数据索引和搜索。在管理数据时,应考虑以下准则。

  选择最适合您的访问模式的数据库解决方案,或考虑更改您的访问模式(例如,索引、密钥分布、分区或水平扩展)以与存储解决方案保持一致,以最大限度地提高性能

  确定解决方案可能需要的不同特征(例如,可用性、一致性、分区容错、延迟、持久性、可伸缩性和查询功能),以便可以选择适当的数据库和存储技术,如关系、NoSQL 或仓库

  考虑所选数据库方法的配置选项,例如存储优化、数据库级设置、内存和缓存

  实现性能的关键 AWS 数据库服务:

  Amazon RDS:请考虑使用自动只读副本(不适用于 Oracle 或 SQL Server)来横向扩展读取性能、SSD 支持的存储选项和预配的 IOPS。这些副本允许读取密集型工作负载使用多个服务器,而不是使中央数据库过载

  Amazon DynamoDB Accelerator (DAX):它通过数据库前面的读取/直写分布式缓存层提供吞吐量 Auto Scaling 支持,为缓存中的实体提供亚毫秒级延迟

  Amazon Redshift:当您需要可扩展的 SQL 操作时,请使用 Amazon Redshift。如果您指定排序键、分布键和列编码,Amazon Redshift 将提供最佳性能,因为这些可以显著提高存储、I/O 和查询性能

  Amazon Athena:它提供了一个完全托管的Presto服务,可以在具有大量结构化程度较低的数据的数据湖上运行查询

  Amazon ElastiCache:它用作内存数据存储和缓存,以支持要求亚毫秒级响应时间、高吞吐量和低延迟的最苛刻的应用程序

  网络:在 AWS 中,联网通过计算、存储、网络、路由和边缘服务以多种不同的类型和配置提供。

  为基于部署的用户位置、数据位置以及安全性和合规性要求选择适当的一个或多个区域

  使用内容分发网络 (CDN) 和域名系统 (DNS) 等边缘服务来减少延迟。但是,您需要确保已正确配置DNS和HTTP / HTTPS的缓存控制,以获得最大的好处

  使用应用程序负载均衡器进行 HTTP 和 HTTPS 流量请求路由,用于使用微服务和容器的现代应用程序架构

  使用网络负载均衡器对需要极端性能的 TCP 流量进行负载平衡。它能够每秒处理数百万个请求,同时保持超低延迟,并且还经过优化以处理突发和不稳定的流量模式

  实现性能的关键 AWS 网络服务:

  亚马逊 EBS 优化实例:它们提供优化的配置堆栈,以最大程度地减少 Amazon EBS I/O 与来自实例的其他流量之间的争用

  亚马逊 S3 传输加速:Amazon S3 提供内容加速作为一项功能,使外部用户能够从 CloudFront 的网络优化中受益,从而将数据上传到 Amazon S3。

  Amazon Elastic Network Adapters (ENA): 它通过在单个置放群组内为您的实例提供 20 Gbps 的网络容量来提供进一步的优化

  AWS CloudFront: 它是一个全球 CDN 提供全球边缘站点网络,用于缓存内容并为最终用户提供高性能网络连接

  亚马逊路线 53:它提供基于延迟的路由 (LBR),通过将客户路由到 AWS 终端节点(适用于 EC2 实例、弹性 IP 地址或 ELB 负载均衡器)来帮助提高应用程序的性能

  Amazon Virtual Private Cloud (Amazon VPC):使用 VPC 终端节点,您的 VPC 与其他 AWS 服务之间的数据将在 Amazon 网络内传输,从而有助于保护您的实例免受互联网流量的影响并提高性能

  AWS Direct Connect: 它提供与 AWS 环境的专用连接,从 50 Mbps 到 10 Gbps

  2.审查和监控绩效

  确定解决方案的高性能 AWS 架构方法后,您应该设置一个自动化流程来执行/监控/查看性能,以确保您选择的资源类型和配置选项符合您的自定义和行业基准。

  绩效衡量指标和基准:构建您自己的自定义或行业标准基准,例如 TPC-DS(对数据仓库工作负载进行基准测试)。还建议您同时使用技术和业务指标。例如,网站或移动应用的关键技术指标是呈现时间、线程计数、垃圾回收率和等待状态,而业务指标包括每个请求的总累积成本、每个用户和每个微服务的请求、降低成本的警报等。

  自动化性能测试:设置 CICD 进程,以便在每个生成成功通过功能测试后自动触发性能测试。自动化应创建新环境,设置初始条件,加载测试数据,然后执行性能和负载测试。这些测试的结果应与生成相关联,以便可以跟踪随时间推移的性能变化

  自动化测试:创建云解决方案测试自动化框架,该框架运行一系列测试脚本,这些脚本复制预先记录的用户旅程和数据访问模式,以尽可能预测生产中 AWS 资源使用情况的行为。您还可以使用软件或软件即服务 (SaaS) 解决方案来生成所需的负载

  性能监控仪表板:对于每个构建版本,您的团队应可以看到关键技术和业务指标,以确保性能效率。创建可视化效果以监视性能问题、热点、等待状态或低利用率

  关键 AWS 性能审查和监控服务:

  Amazon CloudWatch:它有助于收集和发布自定义指标和业务指标,并设置警报,指示何时超出阈值,以通知测试超出预期性能

  AWS 可信顾问: 它可以帮助您监控 EC2 利用率、服务限制、安全组中导致性能下降的大量规则、资源记录集、过度使用的 EBS、CloudFront 的 HTTP 请求标头、EC2 到 EBS 吞吐量、错误配置的 DNS 设置以及更多性能检查点,并建议所需的操作

  审核编辑:郭婷

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分