You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

将多域名PHP应用迁移至AWS Auto Scaling的方案咨询

迁移至AWS ASG/ALB的架构优化方案

针对当前单站单VPS部署的瓶颈,以下是具体的迁移优化步骤:

一、解决本地MySQL数据库瓶颈

  • 将各网站本地MySQL中的订单、购物车等业务数据迁移至RDS主实例,通过添加站点标识字段(如site_id)实现多租户隔离,替代原有的单站本地库模式。
  • 队列数据直接替换为AWS SQS:移除本地队列依赖,将任务消息发送至对应站点的SQS队列(可通过队列名称区分站点),避免因实例动态扩缩容导致的任务丢失。
  • 保留RDS只读副本架构,让ASG中的应用实例优先读取只读副本,分担主库压力。

二、重构Supervisor Worker部署

  • 将Worker与Web服务解耦:创建独立的Worker ASG,或使用ECS Fargate运行Worker任务,基于SQS队列长度自动扩缩容(通过CloudWatch指标触发),无需在每个Web实例上固定运行Worker。
  • 若需保留同实例部署,可在ASG启动模板中配置自动启动Worker进程,并通过CloudWatch监控Worker负载,调整ASG的扩缩容策略。

三、消除本地文件依赖

  • 用户上传图片完全迁移至S3:修改应用逻辑,将上传文件直接写入S3,同时配置S3静态网站托管或CloudFront分发,替代本地存储。
  • 日志统一收集至CloudWatch Logs:修改应用日志输出路径,或使用日志代理(如Fluentd)将本地日志实时同步至CloudWatch,无需保留本地日志文件。
  • 若需共享少量配置文件,可使用EFS弹性文件系统,挂载至所有ASG实例,实现文件共享。

四、整合独立Redis存储

  • 将各网站的Redis数据迁移至ElastiCache Redis集群,通过键前缀(如site_xxx:cart:123)或Redis数据库编号区分不同站点的数据,实现缓存共享。
  • 配置ElastiCache的自动备份与故障转移,确保缓存数据的可靠性,同时避免单站单Redis的资源浪费。

五、整体ASG/ALB部署配置

  • 配置ALB主机头路由规则:根据不同网站的域名(主机名)将请求转发至同一ASG目标组,利用应用的主机名识别逻辑处理不同站点的业务。
  • 构建无状态应用实例:将代码打包至自定义AMI或容器镜像,通过Gitlab CI/CD自动更新镜像/AMI,ASG启动新实例时直接加载最新版本,无需本地代码同步。
  • 启用ASG自动扩缩容:基于CPU利用率、ALB请求数等指标配置扩缩容策略,结合Spot实例混合部署,大幅降低计算成本。

成本优化补充

  • 采用Spot实例占比70%-80%的ASG混合模式,比On-Demand实例节省60%-70%的计算成本。
  • RDS选择Reserved Instance或Aurora Serverless,根据业务负载自动调整数据库资源。
  • 利用CloudWatch监控资源使用情况,及时调整ASG、ElastiCache等服务的配置,避免过度预留资源。

内容的提问来源于stack exchange,提问作者alxndr_k

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 16:33:24