azure - 有哪些可能的 Web 应用程序 (AWS) 无服务器系统架构可用于削减成本

标签 azure amazon-ec2 aws-lambda cloud serverless-framework

* 对发布的图片表示歉意 *

我正在为使用以下配置/设置托管在 AWS 上的应用程序寻找潜在的成本削减措施。

  • EC2 实例
  • 带有 Web 服务器、应用服务器的 Java 动态 Web 应用程序
  • RDS - MySQL

每月 1 周内,应用程序 95% 的时间被使用,剩余 5% 的时间分布在剩余 3 周内。

为了削减成本而不支付 EC2 实例的费用,我们正在寻求无服务器。

我的背景云/AWS:

  • 除了 EC2 之外,我之前没有任何基于云的系统的专业工作知识,在 EC2 中我使用与上述类似的设置管理 Java Web 应用程序。
  • 我只是在网上搜索并阅读了很多网站/博客。

我根据我在网上阅读的 Material 准备了一份演示文稿。但我需要专家意见/确认演示文稿中的解决方案选项是

  1. 可以实现
  2. 与 EC2 实现相比,实现起来不太复杂
  3. 与租用 EC2 实例相比,在一般情况下可能会节省资金

演示幻灯片如下:

<小时/>

enter image description here

<小时/>

enter image description here

<小时/>

enter image description here

<小时/>

enter image description here

<小时/>

enter image description here

<小时/>

enter image description here

<小时/>

enter image description here

<小时/>

我不限于 AWS,但由于当前应用程序托管在 AWS 上,因此希望使用相同的平台。 但如果使用 Azure 或其他平台可以实现类似的实现,我们持开放态度。

我们所寻求的只是削减成本。

我可能无法为您提供一些重要信息来帮助我提供建议。请告诉我您需要什么,我会为您提供。

谢谢。

问候

最佳答案

这是我对这个广泛问题的看法,我的答案是面向 AWS 的,但所有云供应商都提供类似的服务:

在大多数情况下,从整体架构转向无服务器绝对可以节省大量资金。

  • 您无需为空闲计算时间付费,只需为系统执行有值(value)操作的毫秒数付费。
  • 您的服务可以扩展到每小时数百万个请求,而无需事先发出警告。
  • 无需维护服务器、负载平衡器或数据库实例。

转向无服务器确实意味着将应用程序重新架构为事件驱动。这可能是一个相当具有挑战性的范式转变,但你不会回头。您可以选择从完全重写开始,或使用 strangler pattern更加渐进地移动。

我建议大多数无服务器系统使用以下 AWS 服务:

  • S3 静态网站,用于托管单页面应用程序(Angular、React、Vue)
  • API 网关,等待来自网络应用或 API 的传入 HTTPS 请求。还可以使用自定义授权者来控制访问。
  • Lambda,用于响应事件(来自 API 网关、S3 文件上传、数据更改)
  • DynamoDB,用于结构化数据存储(S3 用于二进制工件)。
  • Step Functions,用于编排更复杂的 Lambda 事件链。

根据您的具体用例,您还可以使用 SNS、SES、Kinesis 等。

The Serverless Framework非常适合以基础设施即代码风格的方法协调所有这些服务。大大简化了所有依赖项的部署。他们还有很多 common architecture examples 的例子从开始。

无服务器功能可以非常顺利地扩展...但是,请注意不要强调那些不能扩展的服务,例如关系数据库或第三方 API。

如果您具有 24/7 一致负载(高利用率 EC2)或运行长时间处理批处理作业(在 SQS 上扩展 EC2 更合适),则您不会省钱。

关于azure - 有哪些可能的 Web 应用程序 (AWS) 无服务器系统架构可用于削减成本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51130235/

相关文章:

c# - 用于在 azure 中上传 blob 的文件名约定

api - 如何减少 Binance API 订单簿调用的延迟?

javascript - 从字符串 api 响应 aws lambda 中删除 '\'

node.js - NodeJS Lambda 调用错误 : Unable to stringify response body

c# - 如何将 .Net Core Web Api 从 VS Code 发布到 Azure?

azure - 如何修复 azure wiki 中的 toc 超链接 anchor 滚动位置(当存在重复 anchor 时 - 例如 : sub-topic)?

apache - 页面加载时将 https 设置为默认值

PostgreSQL 和 Amazon EBS 快照?

amazon-web-services - AWS 认知 : email unverified on main account after AdminLinkProviderForUser

azure - 为什么托管网站需要 Microsoft.Web/serverfarms 资源?