本文详细介绍如何从零开始在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实现更高性能的静态资源托管。