首次将线上业务从传统架构迁移到AWS,以下是关于此次迁移的回顾和总结:

老的扑克头像CDN源架构如下:

old

玩家调用服务器上的php代码上传图片,图片存储在服务器本地磁盘,CDN源指向服务器。

存在几个问题:

  • 服务器单点,一旦故障业务会受影响。
  • 磁盘空间只有1T,现在使用率83%,存储空间可扩展性比较差。
  • 磁盘空间使用率很高,但是CPU和内存使用率1%,严重不均衡,资源浪费严重。
  • 服务器费用899美元/每月,比较高。

新设计的架构如下:

new

玩家通过负载均衡器调用php,后端有2台EC2,上传图片到亚马逊S3存储,CDN源指向亚马逊S3。

获得以下一些好处:

  • 单点消除,一台上传服务器down机不影响业务。
  • S3云存储解决可扩展性问题。
  • 计算资源和存储资源分离,可以按各自的需求购买,减少资源浪费。
  • 购买满足需求配置的ec2实例,每台费用约为75美元/月;S3存储费用约20美元/月;带宽费用约10美元/月。总成本约为180美元/月,降低五分之四。

也带来一些缺点:

  • 需要在多台机器上部署代码,代码更新需要考虑同步问题。
  • 架构复杂度上升,需要维护多几个组件和多台机器。

后续架构优化:

  • 后端ec2考虑做autoscaling自动伸缩。
  • S3存储设置life cycle规则。

总体来说得大于失,其他项目也可以考虑借鉴。