如何将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
相关产品推荐
相关产品推荐

