AWS 处理大量事务的最佳方式



我正在编写一个具有极大量事务的系统,CRUD 和我正在使用 AWS。鉴于任何数据都不应丢失,我必须牢记哪些注意事项?

我做了一些研究,他们说使用 SQS 队列来确保数据不会丢失。我应该记住哪些其他备份、冗余和快速处理注意事项?

因此,如果您想创建一个具有高度弹性且又冗余的系统,建议您阅读 AWS 架构完善的框架。这将详细介绍一个人可以在堆栈溢出时提供的更多详细信息。

关于个别技术:

  • 如果您像您所说的那样是事务性的,那么您应该考虑使用关系数据存储来存储数据。我建议看看Amazon Aurora,它具有只读自动扩展和多主站支持等内置功能。虽然你可能期望有大量数据,但通过使用自动缩放,只需为使用的内容付费。
  • 尝试解耦您的 API,在移交给后端之前有一个愚蠢的验证层,如果您可以帮助它。像 SQS(如您之前提到的(等技术有助于在与 Lambda 结合使用时解耦。
  • SQS 至少保证一次,因此如果您的系统不应写入重复项,则需要在应用程序中考虑幂等性。
  • 还可以使用死信队列 (DLQ( 来处理任何失败的操作。
  • 确保驻留在 VPC 中的任何资源分布在可用区中。
  • 使用 S3、EC2 备份管理器和 RDS 快照来确保备份数据。大多数其他服务都有某种可以启用的备份功能。
  • 尽可能使用自动缩放,以确保降低成本。
  • 使用 IaC 工具(CloudFormation 或 Terraform(构建任何基础设施,并通过 (Ansible、Puppet、Chef( 等工具构建任何资源配置。尝试遵循预烘焙的 AMI 工作流,以确保它可以快速返回到基本服务器状态。

最新更新