在 AWS 控制台选择东京(ap-northeast-1)或大阪(ap-northeast-3)区域;创建或使用已有 IAM 用户并授予 EC2/RDS/ECR/Route53 权限;生成 SSH KeyPair(或上传公钥);确认公司域名可管理(Route53 或外部 DNS)。
控制台 New EC2 Instance → 选择 AMI(Amazon Linux 2 或 Ubuntu 22.04);选择实例类型(企业级建议 t3.medium 或更高);设置存储(例如 100GB gp3),勾选自动分配公有 IP;选择或创建 Key Pair,配置安全组(22、80、443 对外,数据库端口仅对内允许)。启动实例并记录实例 ID 与弹性 IP(必要时分配 EIP)。
创建 VPC 子网与路由表,确保实例在私有子网或公有子网按需;安全组策略:数据库安全组仅允许应用服务器安全组访问(使用 SG ID),SSH 限制为运维 IP;开启 CloudTrail 与 GuardDuty 以审计异常。
SSH:ssh -i ~/.ssh/mykey.pem ubuntu@
在 /home/ubuntu/app 创建 docker-compose.yml,包含 app(镜像)、nginx(反代)与 volumes。示例:docker-compose.yml 指定环境变量文件 .env、持久化 volume。启动:docker-compose up -d;检查:docker-compose ps 与 docker logs
推荐使用 Amazon RDS:控制台 RDS → 创建实例 → 选择 PostgreSQL/MySQL → 指定多可用区(Multi-AZ)、备份保留、加密(KMS)、子网组与安全组(只允许 App SG)。若自托管容器:在 docker-compose 中加入 postgres/mysql 服务,挂载数据卷并使用环境变量初始化;注意定期备份 pg_dump 或 mysqldump 并上传到 S3。
推荐使用 ACM + ALB:在 ACM(东京区)申请证书(域名验证 DNS),创建 ALB 并将目标群组指向 EC2(或 ECS)。若直接在 nginx 上做反代:使用 certbot 获取 Let’s Encrypt 证书并自动续期(certbot renew 设置定时任务)。Route53 将域名 A 记录指向 ALB 或 EIP。
将容器日志推到 CloudWatch Logs(安装 CloudWatch Agent 或使用 ecs-logs);配置 CloudWatch 告警(CPU/内存/请求延迟);若需要横向扩展,使用 ASG + Launch Template 与 ALB,使流量自动分发并支持健康检查。
使用 GitHub Actions 或 AWS CodePipeline:构建镜像并推到 Amazon ECR(aws ecr get-login-password ... | docker login ...;docker build -t repo:tag;docker push);在部署阶段通过 SSH 触发 docker-compose pull && docker-compose up -d,或更新 ECS 服务。
开启 EBS 与 RDS 加密、使用最小权限的 IAM 策略、启用 CloudTrail、定期打补丁、限制管理端口、启用 Fail2ban/SSH key-only、为数据库开启 SSL 连接,并采用复杂密码与密钥管理(Secrets Manager 或 Parameter Store)。
若无法 SSH:确认 EIP、Security Group、Network ACL、KeyPair 与本地私钥权限(chmod 400);应用 502/504:检查后端服务健康、ALB Target Group;数据库连接失败:检查 RDS 子网、安全组、参数组与用户名密码;磁盘满用 df -h 并清理日志。
RDS:启用自动备份与每日快照、跨区复制与只读副本;自托管:定时 pg_dump/mysql dump 并上传 S3,结合 EBS 快照做整机恢复;定期演练恢复步骤,确保 RTO/RPO 满足业务需求。
答:若追求稳定、备份、自动补丁与高可用,优先选择 RDS;若需完全控制内核/扩展或成本非常敏感,可自托管,但需要额外运维投入与备份策略。
答:估算包含 EC2(按类/核/小时)、EBS 存储、数据传输、RDS 实例与存储、ALB、ECR 与 S3 备份。使用 AWS Pricing Calculator 选定 Tokyo(ap-northeast-1)来预估月度成本并留出冗余预算。
答:部署在东京/大阪区域、使用 ALB 与多 AZ、将静态资源放 CDN(CloudFront),数据库与应用在同一可用区或近距离子网,做好连接池与缓存(Redis/Memcached),即可显著降低延迟。