1. 前期准备与账号配置
新手开始前需:1) 拥有有效 AWS 账号并开通计费;2) 在 IAM 创建一个带有 EC2/SSM 权限的用户并保存 Access Key(建议使用控制台登录的主账号后创建子用户);3) 准备可以下载 .pem 的设备(用于 SSH);4) 登录 AWS Console,右上角区域选择“亚洲太平洋(新加坡) ap-southeast-1”作为目标区域。
2. 在控制台启动新加坡 EC2 实例(一步步)
打开 AWS Console -> Services -> EC2 -> Instances -> Launch instances。按顺序操作:1) Name 标签填写实例名;2) Choose AMI:选择 Amazon Linux 2 或 Ubuntu Server(新手推荐 Amazon Linux 2);3) Choose Instance Type:可选 t2.micro(免费套餐)或更高;4) Key pair:选择 Create new key pair,填写名字并下载 key.pem(保存好,丢失无法连接);5) Network settings:选择默认 VPC 或自建 VPC,Subnet 选 ap-southeast-1a/b/c;Auto-assign Public IP 选择 Enable(方便公网访问)。
3. 在启动流程中配置存储、标签与安全组
存储(Add storage)默认 8GB 可自定义;Tags 添加键值便于管理。Security group:可以选择创建新的安全组(Create a new security group),务必添加必要的入站规则(SSH 22、HTTP 80、HTTPS 443)并限制来源 IP(例如 SSH 仅允许你的公网 IP/32)。完成后 Review & Launch -> Launch。
4. 安全组(Security Group)配置详解
登录 EC2 控制台左侧选择 Security Groups:编辑入站(Inbound)规则时建议:SSH (TCP 22) 源填写你的公网 IP/32;HTTP (TCP 80) 和 HTTPS (TCP 443) 源可为 0.0.0.0/0(公开网站时);如有自定义端口(如 8080)按需添加。出站(Outbound)默认允许全部,可以按需收紧。记住安全组是有状态的(stateful),允许入站后自动允许出站返回流量。
5. 分配弹性 IP(Elastic IP)并绑定实例
若需要稳定公网 IP:Services -> EC2 -> Elastic IPs -> Allocate Elastic IP address -> Allocate。选中弹性 IP -> Actions -> Associate Elastic IP address -> 绑定到你刚创建的实例或其网络接口。绑定后使用该弹性 IP 进行 SSH/RDP 或域名解析,便于重启或替换实例时 IP 不变。
6. Linux 与 Windows 实例的连接方法
Linux(Amazon Linux/Ubuntu):在本地终端中执行 chmod 400 key.pem;ssh -i key.pem ec2-user@PUBLIC_IP(Amazon Linux 2 用户名为 ec2-user;Ubuntu 为 ubuntu;CentOS 为 centos)。Windows:使用 RDP(3389),先在 EC2 控制台选中实例 -> Connect -> Get Windows Password,上传 .pem 解密获得 Administrator 密码,然后用 RDP 客户端连接。Windows 的 .pem 在 Windows 下常需用 PuTTYgen 转换为 .ppk。
7. 实例内部安全加固步骤(必做)
连接后立即执行:sudo yum update -y 或 sudo apt update && sudo apt upgrade -y;创建非 root 用户并禁用 root 登录;编辑 /etc/ssh/sshd_config 禁用 PasswordAuthentication,设置 PermitRootLogin no;可更改 SSH 端口但需同步修改安全组;安装并配置 ufw 或 firewalld(例如 ufw allow 22/80/443),安装 fail2ban 防暴力破解;关闭不必要服务并配置自动更新或定期快照。
8. 如需自建 VPC、子网与网关的步骤
Services -> VPC -> Create VPC:填写 CIDR(建议 10.0.0.0/16);Create Subnet:在 ap-southeast-1 的可用区创建子网(例如 10.0.1.0/24);Create Internet Gateway -> Attach to VPC;Route Tables -> 编辑路由表,添加 0.0.0.0/0 指向 IGW,使子网具备公网访问;创建子网时勾选“Auto-assign public IPv4 address”或给子网设置属性以默认分配公网 IP。
9. 监控、日志与备份建议
开启 CloudWatch 监控 CPU、网络、磁盘;配置 CloudWatch Alarms 达到阈值时通知;启用 CloudTrail 记录 API 操作用于审计;定期创建 EBS 快照或 AMI 作为备份策略(Lifecycle Manager 可自动化);若托管网站建议使用 ACM 申请免费证书并用 ELB 或 CloudFront 做证书管理与 CDN 加速。
10. 常见问题与排错指南
无法 SSH:检查安全组是否允许 22/你的 IP、实例是否有公网 IP、密钥文件权限(chmod 400)、使用正确用户名;实例无法启动:查看系统日志,检查启动脚本(user-data)是否有错误;网络不可达:确认路由表与 IGW 是否已配置,子网是否分配公网 IP;若需要免开 22 端口,可使用 AWS Systems Manager Session Manager(需给实例绑定带 SSM 权限的 IAM Role 并安装 SSM Agent)。
11. 问:如何把 SSH 访问限制为只有我能连? 答:
问:如何把 SSH 访问限制为只有我能连? 答:在 Security Groups 的入站规则中把 SSH(TCP 22)的来源填写成你的公网 IP/32(可在 google 搜“我的 IP”获取)。同时在实例内禁用密码登录,只允许 Key 认证,并安装 fail2ban。若你的公网 IP 是动态的,可采用 VPN 或设置跳板机(Bastion Host)并通过该主机控制访问。
12. 问:我想为网站启用 HTTPS,有什么建议? 答:
问:我想为网站启用 HTTPS,有什么建议? 答:推荐使用 AWS Certificate Manager(ACM)在负载均衡器(ALB/ELB)或 CloudFront 上管理证书,申请免费证书并绑定到 ALB,将 HTTPS(443)流量终止在 ALB,再将 ALB 与后端实例通过 HTTP/HTTPS 通信。若直接在实例上使用证书,可用 Certbot 从 Let's Encrypt 获取并自动续期,确保安全组放通 443 端口。
13. 问:如果不想开放 22 端口,如何远程管理实例? 答:
问:如果不想开放 22 端口,如何远程管理实例? 答:使用 AWS Systems Manager Session Manager,通过 IAM Role 授权并安装 SSM Agent(Amazon Linux 默认安装),就能在 Console 或 AWS CLI 中以安全方式打开 shell,无需在安全组开放 22 端口。另外,可使用 Session Manager Port Forwarding 或通过跳板主机与内部私有 IP 通信。
来源:新手快速上手亚马逊 vps新加坡创建实例与网络安全组配置