本文详细介绍如何从零开始在AWS EC2实例上部署静态/动态网站,涵盖实例创建、安全组配置、环境搭建及域名绑定等关键步骤。
一、准备工作
AWS账号:访问 AWS官网 注册账号并完成信用卡绑定
本地工具:
SSH客户端(Mac/Linux自带终端,Windows推荐使用PuTTY)
网站代码文件(准备好HTML/CSS/JS或后端项目文件)
二、创建EC2实例
步骤1:进入EC2控制台
登录AWS控制台,搜索栏输入"EC2"
点击 Launch Instance 启动新实例
步骤2:选择AMI(系统镜像)
推荐选择:
Amazon Linux 2023 AMI(适合新手)
Ubuntu Server 22.04 LTS(熟悉Linux用户)
步骤3:选择实例类型
免费套餐用户选择 t2.micro(1vCPU,1GB内存)
生产环境根据需求选择更高配置
步骤4:配置实例详细信息
保持默认设置,滚动到页面底部
步骤5:添加存储
默认8GB SSD(根卷),可根据需求增加到30GB(免费层上限)
步骤6:配置安全组(关键步骤)
添加以下规则:
类型 协议 端口范围 来源 SSH TCP 22 My IP HTTP TCP 80 0.0.0.0/0 HTTPS TCP 443 0.0.0.0/0
步骤7:密钥对创建
选择 Create new key pair
输入密钥名称(如
my-ec2-key
)点击下载
.pem
文件并保存到安全位置
步骤8:启动实例
点击 Launch Instance,等待状态变为"Running"
三、连接到EC2实例
通过SSH连接(Mac/Linux)
chmod 400 my-ec2-key.pem # 修改密钥权限
ssh -i "my-ec2-key.pem" ec2-user@<你的公有IP>
Windows用户使用PuTTY
使用PuTTYgen将.pem转换为.ppk格式
在PuTTY中配置:
Host Name: ec2-user@<公有IP>
Connection > SSH > Auth 选择.ppk文件
四、安装Web服务器
安装Apache(以Amazon Linux为例)
sudo yum update -y
sudo yum install httpd -y
sudo systemctl start httpd
sudo systemctl enable httpd
验证安装
浏览器访问 http://<EC2公有IP>
,应显示Apache测试页
五、部署网站文件
上传静态网站
# 本地终端执行(非EC2)
scp -i "my-ec2-key.pem" -r ./website/* ec2-user@<公有IP>:/var/www/html/
动态网站部署(以Python为例)
# 安装Python环境
sudo yum install python3-pip -y
pip3 install flask gunicorn# 克隆代码仓库
git clone https://github.com/your/repo.git
六、配置域名(可选)
在域名注册商处添加A记录:
记录类型:A
值:EC2实例的公有IPv4地址
等待DNS解析(通常需要几分钟到几小时)
七、高级配置建议
弹性IP:防止实例重启后IP变更
EC2控制台 > Elastic IPs > Allocate new address
HTTPS配置:
# 使用Certbot获取SSL证书
sudo snap install certbot
sudo certbot --apache
自动启动:
sudo systemctl enable httpd # Apache开机启动
八、验证部署
本地浏览器访问
http://你的域名
或http://<EC2公有IP>
检查页面内容是否正确显示
测试网站功能是否完整
常见问题排查
无法访问网站:
检查安全组是否开放80/443端口
确认httpd服务运行
sudo systemctl status httpd
权限问题:
sudo chown -R apache:apache /var/www/html
sudo chmod -R 755 /var/www
磁盘空间不足:
df -h # 查看磁盘使用
注意事项:
测试完成后及时停止实例避免产生费用
定期备份重要数据到S3
建议为生产环境配置负载均衡和自动扩展组
通过以上步骤,您已成功在AWS EC2上部署网站。建议结合CloudFront和S3实现更高性能的静态资源托管。