我当前的 AWS 架构是否可以扩展到每天 20,000 名访客?我该如何改进它?

Will my current AWS architecture scale to 20,000 visitors per day? How can I improve it?

我正在处理的网站每天可能有 20,000 名访问者。这不能保证,但组织中的每个员工都应该每天使用它。

过去,我只使用一个 t2.micro EC2 实例和一个附加的 EBS 卷来托管站点,这一直就足够了,因为这些站点没有太多流量。但是每天有 20,000 名访客,我该如何改进我的 AWS 架构以进行扩展?

该站点将为每个用户创建个人资料,包括个人资料照片 - 因此可能有 20,000 个图像文件。我应该将它们写入 S3 存储桶而不是 EBS 吗?

t2.micro ec2 实例是否可以应对规模,或者我应该使用 t2.small、t2.medium 甚至 t2.large?

我的 MySQL 数据库目前在 EBS 卷上,但我应该使用 RDS 吗?

所有用户都在英国,所以我假设使用 CloudFront 是多余的?

您认为 CloudFront 有点矫枉过正是对的,因为您的所有用户都本地化为英国。

更新: 使用 CDN 会通过缓存文件而不是在每次调用时处理它们来减轻服务器的压力。

Look at it this way, if you get 100,000 hits a day, and 90% of those hits are cached and served by the CDN, then your server only has to process 10,000 hits a day. That could be the difference between needing a m4.xlarge versus just needing a t2.small.

使用爱尔兰地区(很快您就可以复制到英国地区)

如果您想将数据库保留在您的实例上,我强烈建议您使用更大一点的数据库。至于快速简便的解决方案,用 EBS 启动最小的 T 系列实例,对 1000-5000 用户进行 Beta 测试,看看效果如何。通知 select 小组,他们所有的废话都会消失,所以不要投入大量时间。

接下来,在系统上进行分析,看看这是否能使用户增加 4-5 倍。对于 SQL 数据库的东西,我相信你最终会想要一个 M 系列实例。

此外,您始终可以创建负载平衡队列。您在 EBS 中通过点击负载均衡而不是单一实例来执行此操作。创建一个自动缩放组和 boom sauce - 勾选它。

至于图像,是的,我会推荐 S3。真的不想将全部金额转储到 i/o 中,因为 DB、点击率、i/o,所有在一个实例上都是很多。

最后,如果您确实计划前往英国地区(如果已经推出则不是积极的)我建议您将申请的所有部分分开。这是使用他们提供的所有资源的真正好习惯。

对于一个非常容错的系统:

  • 带有 ELB 的 EC2 机队(m 或 c 系列)
  • S3 图片
  • RDS 用户
  • CloudWatch 统计数据
  • 拒绝具有 IAM 组的用户
  • 使用 STS 或 AD 或其他任何方式进行身份验证(最近才进入 cognito)
  • 在 ElastiCache - Redis 中存储他们的会话和经过身份验证的废话
  • 使用 Kinesis 密切关注它们(可选)
  • 并让他们使用 CloudSearch 相互搜索(也是可选的)

老板系统就在这!

那就是如果你想花一大笔钱但有一个甜蜜甜蜜的系统。如果您想几乎不花钱,那就让它无服务器。一个包含数百种组合的广泛问题,因此这取决于解释。

希望对您有所帮助!