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

如何将TypeORM后端部署到AWS 使已部署在AWS Amplify的React前端可连通

部署TypeORM后端到AWS并对接Amplify前端的完整步骤

1. 前置准备

  • 调整TypeORM项目配置:
    • 所有数据库连接参数(DB_HOST、DB_PORT、DB_USER、DB_PASSWORD、DB_DATABASE等)改为从环境变量读取,禁止硬编码在代码中
    • 配置CORS规则,添加你的Amplify前端域名到允许列表,本地调试阶段可额外加localhost规则避免跨域
    • 验证项目打包流程正常,TypeScript项目要保证npm run build可以正常生成dist目录,package.json中配置正确的生产启动命令,比如"start": "node dist/main.js"
  • 准备好拥有对应服务权限的AWS账号

2. 部署MySQL数据库(未部署的情况下操作)

优先选择AWS RDS for MySQL服务:

  • 进入RDS控制台创建MySQL实例,测试环境可选免费 tier的t3.micro规格,生产环境按流量需求选对应配置
  • 数据库实例和后续的后端服务放在同一个VPC下,方便内网连通降低延迟
  • 安全组仅开放3306端口给后端服务的安全组,禁止对公网全开放
  • 实例创建完成后记录Endpoint、端口、账号密码,后续作为后端的环境变量传入
  • 手动创建业务需要的数据库名,生产环境务必关闭TypeORM的synchronize配置,手动执行migration初始化表结构,执行migration时可临时把本地IP加入RDS安全组白名单,操作完成后立即删除

3. 部署后端API服务

按你的业务规模和运维能力二选一即可:

方案A:Elastic Beanstalk快速部署(适合新手,运维成本低)

  • 进入Elastic Beanstalk控制台创建新应用,运行平台选择对应版本的Node.js
  • 上传项目打包文件:需包含package.json、构建后的dist目录、.npmrc等必要文件,不要打包node_modules目录,平台会自动安装依赖
  • 在环境变量配置页填入数据库连接参数、服务运行端口、NODE_ENV=production等配置项
  • 调整后端服务的安全组规则,允许访问RDS的3306端口,同时开放服务运行端口给负载均衡
  • 部署完成后拿到平台生成的公网访问域名,先本地测试接口是否可以正常请求

方案B:容器化部署到ECS(适合高可用、弹性扩缩容需求的场景)

  • 编写项目的Dockerfile,参考示例:
FROM node:18-alpine
WORKDIR /app
COPY package*.json ./
RUN npm ci --only=production
COPY dist ./dist
EXPOSE 3000
CMD ["node", "dist/main.js"]
  • 构建镜像后推送到AWS ECR私有镜像仓库
  • 进入ECS控制台创建集群,选择Fargate无服务器模式无需自行管理服务器
  • 创建任务定义,引用ECR中的镜像,配置环境变量、CPU和内存规格
  • 创建服务并关联负载均衡,配置公网访问权限,安全组开放对应端口和RDS访问权限,部署完成后拿到负载均衡的公网域名

注意:Amplify前端默认是HTTPS访问,需要给后端公网域名绑定SSL证书,可通过AWS Certificate Manager免费申请后绑定到负载均衡,避免浏览器触发混合内容拦截

4. 对接Amplify前端

  • 进入Amplify控制台找到已部署的React应用,进入环境变量配置页
  • 添加前端请求的API地址变量,比如REACT_APP_API_BASE_URL,值填写后端服务的完整公网访问地址(带https前缀)
  • 重新触发一次Amplify前端构建,让新的环境变量生效
  • 可选配置后端WAF规则,仅允许Amplify的IP段或者前端域名访问后端接口,降低安全风险
  • 测试前端全链路功能,确认接口请求、数据读写正常

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 10:54:03