使用 AWS Amplify 开始全栈 Web 应用开发 - Git 联动部署与后端构建

通过 GitHub 联动构建按分支自动部署的环境,使用 Backend Gen 2 以 TypeScript 定义认证、API 和存储。同时支持 Next.js 的 SSR。

Amplify 概述

Amplify 是一项集成全栈 Web 和移动应用构建与托管的服务。Amplify Hosting 提供与 Git 仓库联动的 CI/CD 和全球 CDN 托管,Amplify Backend (Gen 2) 使用 TypeScript 和 CDK 定义并部署认证、API、存储等后端资源。与 Vercel 和 Netlify 相比,与 AWS 服务的原生集成(CognitoAppSyncDynamoDB)是最大的差异化优势。支持 React、Next.js、Vue、Nuxt、Angular 等主流框架,同时支持 SSR 和 SSG。

Hosting 与 Backend

Amplify Hosting 只需连接 GitHub 仓库,即可构建按分支的自动部署环境。main 分支作为生产环境,develop 分支作为预发布环境运行。Amplify Backend 使用 TypeScript 定义后端资源。认证使用 Cognito User Pool,API 使用 AppSync (GraphQL) 或 API Gateway (REST),存储使用 S3 存储桶,均自动构建。通过 amplify sandbox 命令可为每位开发者启动独立的后端环境,防止团队开发中的环境冲突。

自定义域名与 SSR

Amplify Hosting 提供自定义域名配置和 SSL 证书自动签发。连接 Route 53 域名后 DNS 配置会自动完成。SSR (Server-Side Rendering) 支持 Next.js 和 Nuxt,通过 Lambda@Edge 执行服务端渲染。每个 Pull Request 自动生成预览环境,审核后合并即自动部署到生产环境。环境变量可按分支设置,在开发、预发布、生产环境中使用不同的 API 端点。 如需系统学习 Web 托管知识,也可参考相关书籍 (Amazon)

Amplify 定价

Amplify Hosting 的构建费用为每分钟约 0.01 美元,托管费用为每 GB 每月约 0.023 美元,请求费用为每百万次请求约 0.15 美元。SSR 请求会额外产生 Lambda@Edge 费用。免费额度包括每月 1,000 分钟构建时间、15 GB 托管空间和 5 GB 数据传输。Amplify Backend (Gen 2) 按所使用的 AWS 服务(AppSync、DynamoDB、Cognito、S3)各自计费。利用构建缓存缩短构建时间,可降低构建费用。

总结

Amplify 是一项集成 Web 应用前端托管与后端构建的服务。通过与 Git 仓库联动构建按分支的自动部署环境,支持 Next.js 的 SSR。Backend Gen 2 实现了基于代码的后端定义,大幅提升全栈开发的生产力。