亚马逊网络服务(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 设置以及更多性能检查点,并建议所需的操作
华阳多媒体亮相2021年第三届车载抬头显示HUD高峰论坛
数字时代下,西部数据打出组合拳,各个击破客户需求
疫情将打破中日韩在半导体领域的合作分工平衡关系
创业公司因腾讯云服务器上数据丢失岌岌可危,腾讯赔偿13万多元敷衍了事
中国锂电池产量持续增长原因及市场格局分析
优化AWS解决方案架构以提高性能效率
什么是数字签名算法(DSA)
惠普OMEN暗影精灵6游戏本的散热表现
教你7个Python判断字符串是否包含子串的方法
AI抗疫备受关注 是AI在医疗领域规模化落地的序章
详解XC866步进电机阀门控制系统
莱尔德推出CM6050 系列DC/DC电源线共模扼流圈
新能源汽车市场下滑 二手车市场也极其尴尬
投影电视怎么操作_投影电视的特点
华为Mate40E详细规格配置曝光
二极管的的定义及主要参数
Spring干掉原生JVM?
中国移动积极推进边缘计算产业的商用落地和生态构建
纵行科技入围2022年度中国“高成长未来独角兽企业榜”
应对5G需求 ARM将调整处理器架构设计