43、AWS成本优化架构与附加服务全解析

AWS成本优化架构与附加服务全解析

成本优化架构基础
  1. 免费套餐与存储服务
    • 新账户在第一年可免费使用基本级别的AWS服务。
    • 存储服务中,Standard提供最多的复制和最快的访问服务,但价格最贵;Standard - Infrequent和One Zone - Infrequent的存储费率低于Standard,但仍高于Glacier。
      | 存储类型 | 特点 | 价格 |
      | ---- | ---- | ---- |
      | Standard | 复制多、访问快 | 最高 |
      | Standard - Infrequent | 访问频率低 | 适中 |
      | One Zone - Infrequent | 单区域、访问频率低 | 适中 |
      | Glacier | 访问慢 | 最低 |
  2. 成本分析工具
    • Cost Explorer可提供使用情况和支出数据。
    • Organizations能将多个AWS账户合并在单一管理之下。
    • 虽然曾经的TCO Calculator可用于比较在AWS和本地运行应用程序的成本,但该工具已不再存在。
    • Cost and Usage Reports能提供使用和支出数据,且比Cost Explorer更易整合Redshift和QuickSight,Trusted Advisor可检查账户是否符合最佳实践,Budgets可设置使用问题警报。
密钥管理与数据加密
  1. 密钥的撤销与轮换
    • 客户管理的CMK和客户提供的密钥可以随意撤销和轮换,而AWS管理的CMK和S3管理的密钥则不能。
    • 客户管理的CMK可随意轮换,AWS管理的CMK每年仅轮换一次。
  2. 数据加密操作
    • 若要对未加密的EBS卷上的数据进行加密,需先创建快照,该快照会继承源卷的加密特性,即未加密的EBS卷生成的快照也是未加密的,然后在将快照复制到其他区域时同时进行加密。
    • 只有在创建EFS文件系统时才能启用加密,若要使用KMS加密已有EFS文件系统中的数据,只能创建新的EFS文件系统并复制数据。
实例与资源管理
  1. 实例类型选择
    • 标准预留实例适用于需要全年365天、每天24小时可用的情况,使用三年可节省更多成本;不规则或部分工作日的使用场景不适合这种定价模式。
    • 对于夏季等特定时间段的使用需求,可运行三个预留实例全年使用,并购买三个计划预留实例用于夏季,因为按需实例会自动关闭,不适合该场景。
  2. Spot实例相关
    • Spot实例池由未使用的EC2实例组成,有Request、Request And Maintain和Reserve For Duration三种请求类型。
    • 当Spot价格高于最高出价时,会发生Spot实例中断,且Spot请求不能手动重启。
    • Target capacity代表希望运行的最大实例数。
资源清理与自动化

EBS Lifecycle Manager可根据需求配置以删除旧的EBS快照,比编写脚本更简单且与AWS基础设施集成更紧密。

附加服务介绍
  1. 部署工具
    • AWS Amplify :与Elastic Beanstalk类似,都可帮助开发者部署代码,但Amplify允许全栈团队成员使用Amplify CLI或基于浏览器的Studio在工具内工作,可快速构建后端资源和设计前端UI,支持分阶段和生产托管部署,还能与AWS服务集成,整个项目环境可导出为模板在DevOps工具中重新部署。
    • AWS Serverless Application Repository :拥有超过1000个公开可用的基于AWS的无服务器应用程序,可用于学习创建自己的应用程序或作为组件用于自己的部署,也可发布自己的代码并选择公开或私下共享。
  2. 开发者工具
    • AWS Proton :组织可创建服务模板,定义应用程序所需的AWS计算、存储、网络和CI/CD基础设施工具,开发者选择现有服务模板并指定源代码来源后即可部署新应用,有助于自动化应用标准和容量限制。
    • Amazon API Gateway :可使用RESTful或WebSocket API安全可靠地连接AWS平台内的数据或资源,将几乎任何AWS服务的数据发布出来供物联网设备、Web或移动应用程序等使用,与现有AWS资源深度集成。
    • AWS Device Farm :可在虚拟的100多种智能手机、平板电脑和多种主流浏览器版本上测试应用程序,支持自动化测试和通过远程访问在实际物理设备上测试。
    • AWS Step Functions :是一个低代码平台,通过可视化工作流界面设计和部署分布式应用程序和流程自动化,可集成多个AWS服务,如Lambda、ECS等,可构建包含复杂错误处理、可靠性和可扩展性的应用程序。
graph LR
    classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px;
    A(选择部署工具):::process -->|代码部署| B(AWS Amplify):::process
    A -->|无服务器应用| C(AWS Serverless Application Repository):::process
    D(开发者工具选择):::process -->|服务模板部署| E(AWS Proton):::process
    D -->|API连接| F(Amazon API Gateway):::process
    D -->|应用测试| G(AWS Device Farm):::process
    D -->|流程自动化| H(AWS Step Functions):::process
基础设施工具
  1. AWS Outposts
    • 当需要与所在区域的AWS资源进行高连接性,同时又需要本地部署作为混合架构的一部分时,AWS可在办公室或数据中心部署物理服务器,包括42U机架或单个服务器,连接后可运行涉及EC2、EBS等多种服务的AWS工作负载,且具有极低的延迟访问率,还可将基于云的VPC扩展到本地站点。不过该服务成本较高,如1U服务器每月无前期成本超过500美元,全前期成本超过17000美元;42U机架每月成本超过5000美元,全前期成本169000美元。
  2. AWS Wavelength
    • 若应用程序的单个组件需要在5G移动网络中实现极低延迟连接,可将这些组件托管在Wavelength中,适用于高带宽视频流等场景,可通过现有VPC或新的虚拟网络设备Carrier Gateway配置连接。
  3. VMware Cloud on AWS
    • VMware的vSphere可在本地设备上构建私有云环境,但混合配置较为复杂。VMware与AWS合作推出的VMware Cloud on AWS提供了专门优化的EC2实例类(i3en.metal for VMware Cloud)和虚拟桌面基础设施(VDI),客户可使用弹性网络接口(ENI)将本地vSphere基础设施连接到AWS的VPC资源。
连接工具
  1. Amazon Pinpoint
    • 可自动化与多个营销联系人的入站和出站交互,将存储或生成在S3、Redshift等服务上的数据转换为通过电子邮件、短信或推送通知发送的事件,可根据客户条件发送交易消息或预设信息更新,跟踪和分析收件人行为并生成完整报告。
  2. AWS Transfer Family
    • 可通过S3或Amazon EFS轻松重新路由现有文档和数据流,以集成AWS资源,支持使用SFTP、FTPS或FTP协议管理AWS与外部数据提供者或消费者之间的文件传输,可进行内容管理、文档共享和数据分发操作,并可对外部数据应用AWS数据分析。
  3. AWS AppSync
    • 可构建GraphQL API,安全智能地连接前端服务与多个AWS服务和格式中的数据资源,可动态过滤请求结果并结构化返回数据,提供高级协作和实时数据流,能处理不可预测的离线连接,确保两端数据同步。
数据库工具
  1. Amazon DocumentDB(with MongoDB Compatibility)
    • 若想在AWS云中实现MongoDB工作负载的灵活性和简单性,可使用DocumentDB。它以纯文本文档组织数据,采用MongoDB的JSON格式,部署后数据存储完全托管、可大规模扩展、持久耐用,且符合Apache 2.0开源MongoDB 3.6和4.0 API。
  2. Amazon Keyspaces(for Apache Cassandra)
    • Cassandra是一种将大型数据存储分布在服务器集群上的NoSQL数据库管理系统,目标是实现高可用性且无单点故障,具有超低延迟访问的优点。Keyspaces是托管服务,可导入现有Cassandra项目或创建新项目,处理基础设施、更新和扩展,用户只需负责数据。
  3. Amazon Quantum Ledger Database(QLDB)
    • 可提供数据状态的完整加密记录,用于跟踪大型数据存储的所有更改,确保如保险索赔、资产处理或信用卡交易等记录的完整性,是Amazon企业工具Blockchain on AWS的组件。
数据流式传输工具
  1. Amazon Managed Streaming for Apache Kafka(MSK)
    • Apache Kafka是一种分布式消息系统,用于容错和高吞吐量的消息交换。Amazon MSK可将高度可扩展的Kafka集群高效集成到AWS资源堆栈中,让用户在AWS环境中利用Kafka功能,并使用AWS数据处理和存储工具进行日志记录和其他数据操作。
  2. Amazon MQ
    • 是一个消息代理服务,可构建和维护Apache ActiveMQ和RabbitMQ消息代理流,在许多情况下,可通过导入代码和配置简化应用程序向AWS的迁移,无需重新调整与常见消息协议和API的连接方式,提供高可用性、持久耐用和完全托管的应用层间消息传递。
  3. AWS Data Exchange
    • 是一个单一接口,可查找、订阅和使用第三方数据集(部分免费),目前有超过3000个数据集,涵盖医疗保健、技术、金融服务和制造业等领域,可连接数据源、处理订阅,并将数据暴露给账户中的任何AWS分析或机器学习工具。
  4. Amazon Timestream
    • 用于管理由大量事件记录组成的大型数据流,通过根据需求在内存和低成本长期存储之间移动数据来提高效率,作为托管和可扩展服务,在性能和成本方面进行了优化,适用于管理物联网设备集群的反馈流等用例。
  5. AWS Data Pipeline
    • 可可靠地自动化AWS服务之间或AWS与本地资源之间的大型数据流或集合的定期移动,可在数据所在位置访问和处理数据,并将输出发送到S3、DynamoDB或EMR等服务的端点。
  6. Amazon AppFlow
    • 可处理并将第三方应用程序(如Salesforce、Zendesk或Slack)产生的数据传输到AWS服务(如S3和Redshift),无需代码即可配置可扩展的数据流,并可通过计算进行转换。
graph LR
    classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px;
    I(选择数据库工具):::process -->|MongoDB兼容| J(Amazon DocumentDB):::process
    I -->|Cassandra兼容| K(Amazon Keyspaces):::process
    I -->|加密记录| L(Amazon QLDB):::process
    M(数据流式传输工具):::process -->|Kafka集成| N(Amazon MSK):::process
    M -->|消息代理| O(Amazon MQ):::process
    M -->|数据交换| P(AWS Data Exchange):::process
    M -->|时间序列数据| Q(Amazon Timestream):::process
    M -->|数据管道| R(AWS Data Pipeline):::process
    M -->|第三方数据传输| S(Amazon AppFlow):::process

通过对上述AWS成本优化架构和附加服务的了解,用户可以根据自身需求选择合适的工具和服务,实现资源的高效利用和成本的有效控制。

AWS成本优化架构与附加服务全解析

成本优化架构操作要点总结

为了更清晰地展示成本优化架构中的关键操作和要点,以下整理了一个表格:
| 操作类型 | 具体操作 | 说明 |
| ---- | ---- | ---- |
| 密钥管理 | 撤销和轮换客户管理的CMK和客户提供的密钥 | 可按需操作,AWS管理的CMK和S3管理的密钥不可操作 |
| 数据加密 | 对未加密EBS卷:先创建快照,再复制快照时加密 | 快照继承源卷加密特性,未加密卷快照也未加密 |
| | 对EFS文件系统:创建新系统并复制数据 | 只能在创建EFS时启用加密 |
| 实例选择 | 标准预留实例 | 适用于全年24/7使用场景,三年使用更节省成本 |
| | 计划预留实例 | 用于特定时间段(如夏季)的使用需求 |
| 资源清理 | 使用EBS Lifecycle Manager删除旧EBS快照 | 比脚本更简单,与AWS集成紧密 |

附加服务使用建议

在使用AWS的附加服务时,可根据不同的业务场景和需求进行选择,以下是一些使用建议:
1. 开发部署场景
- 若团队协作开发,希望全栈成员参与部署过程,可选择AWS Amplify,其支持团队成员使用不同方式在工具内工作,还能快速构建后端和前端资源。
- 若想快速复用现有的无服务器应用代码,AWS Serverless Application Repository是不错的选择,可从中获取灵感或直接使用代码组件。
2. 开发者工具场景
- 对于有统一应用标准和容量限制需求的组织,AWS Proton可帮助创建服务模板,让开发者更规范地部署应用。
- 当需要构建与AWS资源连接的应用时,Amazon API Gateway能提供安全可靠的API连接方式。
- 进行应用测试时,AWS Device Farm可模拟多种设备和浏览器环境,确保应用在不同客户端的兼容性。
- 设计分布式应用和流程自动化时,AWS Step Functions的低代码可视化界面可提高开发效率。
3. 基础设施场景
- 有混合架构需求,需要本地部署和AWS资源高连接性时,可考虑AWS Outposts,但要注意其较高的成本。
- 对于5G移动网络中需要极低延迟连接的应用组件,AWS Wavelength是合适的托管方案。
- 若使用VMware vSphere构建私有云并希望与AWS集成,VMware Cloud on AWS可提供专门的实例类和连接方式。
4. 连接工具场景
- 进行营销联系人交互管理时,Amazon Pinpoint可自动化消息发送和行为分析。
- 处理现有文档和数据流与AWS资源集成时,AWS Transfer Family支持多种协议的文件传输。
- 构建前端与多个AWS数据资源连接的应用时,AWS AppSync可提供智能的数据连接和同步功能。
5. 数据库和数据流式传输场景
- 若需要在AWS云中实现MongoDB工作负载,选择Amazon DocumentDB;若使用Cassandra数据库,可使用Amazon Keyspaces。
- 对于需要跟踪数据更改和确保记录完整性的场景,Amazon QLDB是合适的选择。
- 在处理分布式消息和高吞吐量数据时,可使用Amazon MSK集成Kafka集群;进行消息代理时,选择Amazon MQ。
- 查找和使用第三方数据集时,AWS Data Exchange提供了便捷的接口;管理大型时间序列数据流,可考虑Amazon Timestream。
- 自动化AWS服务间或与本地资源的数据移动,使用AWS Data Pipeline;处理第三方应用数据传输到AWS服务,可选择Amazon AppFlow。

操作流程示例

以下以使用AWS Amplify进行应用部署为例,给出具体的操作步骤:
1. 准备工作
- 安装Amplify CLI:按照官方文档的指引,在本地环境中安装Amplify CLI工具。
- 配置AWS凭证:确保在本地配置好AWS凭证,以便Amplify CLI能够访问AWS资源。
2. 初始化项目
- 在项目根目录下,打开终端并运行 amplify init 命令,按照提示进行项目初始化设置,包括选择AWS区域、项目名称等。
3. 添加后端资源
- 使用 amplify add 命令添加所需的后端资源,如数据库、存储、认证等。例如,运行 amplify add auth 添加认证服务,按照提示进行配置。
4. 构建前端UI
- 可以使用Amplify提供的组件和工具来设计前端UI,也可以结合自己的前端框架进行开发。
5. 部署项目
- 运行 amplify push 命令,将后端资源部署到AWS。部署完成后,运行 amplify publish 命令,将前端应用部署到Amplify Hosting。

graph LR
    classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px;
    A(准备工作):::process --> B(初始化项目):::process
    B --> C(添加后端资源):::process
    C --> D(构建前端UI):::process
    D --> E(部署项目):::process

通过以上对AWS成本优化架构和附加服务的详细介绍,用户可以全面了解各项服务的特点和使用方法,根据自身业务需求进行合理选择和配置,从而实现AWS资源的高效利用和成本的有效控制,提升业务的竞争力和运营效率。同时,随着AWS不断推出新的服务和功能,用户也应持续关注和学习,以适应不断变化的技术环境。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值