AWS 处理大量交易的最佳方式

AWS best way to handle high volume transactions

我正在编写一个具有极高事务量的系统,CRUD,并且我正在使用 AWS。考虑到 none 的数据应该丢失,我必须牢记哪些注意事项?

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

因此,如果您想创建一个高度弹性的系统,同时也是冗余的,我建议您阅读 AWS Well Architected Framework。这将详细介绍一个人可以在堆栈溢出时提供的信息。

关于个别技术:

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