持有EC2堡垒机IP、实例ID及SSH密钥,如何在AWS部署Web服务器?
如何通过Bastion主机连接EC2并安装Web服务器
嘿,我来一步步帮你搞定这个任务!你手里的Bastion IP、实例ID和PEM密钥就是关键,咱们分阶段来操作:
第一步:准备SSH密钥权限
首先得确保你的PEM文件权限符合SSH的安全要求,不然会直接连不上。打开终端,运行这个命令:
chmod 400 /path/to/your-key.pem
把/path/to/your-key.pem换成你实际的密钥文件路径哦。
第二步:通过Bastion连接目标EC2实例
Bastion主机是作为跳板机来访问私有子网里的EC2的,这里有两种常用方法:
方法1:先连Bastion再跳转目标实例
先SSH登录到Bastion主机:
ssh -i "/path/to/your-key.pem" ec2-user@<你的Bastion IP>划重点:如果你的EC2是Ubuntu系统,用户名可能是
ubuntu而不是ec2-user,根据系统调整就行。获取目标EC2的私有IP:
你可以直接去AWS控制台,找到对应实例ID的实例,查看它的私有IP;或者如果Bastion上装了AWS CLI且有权限的话,运行这条命令快速获取:aws ec2 describe-instances --instance-ids <你的EC2实例ID> --query 'Reservations[0].Instances[0].PrivateIpAddress' --output text在Bastion主机里,SSH登录目标EC2:
ssh ec2-user@<目标EC2的私有IP>要是你第一步登录Bastion时加了
-A参数开启Agent Forwarding,这里就不用再输入密钥啦。
方法2:直接用SSH代理一步连接
如果你想一步到位,不用先登录Bastion,可以用这条命令:
ssh -i "/path/to/your-key.pem" -o ProxyCommand="ssh -i '/path/to/your-key.pem' -W %h:%p ec2-user@<你的Bastion IP>" ec2-user@<目标EC2的私有IP>
同样,用户名根据EC2的系统调整。
第三步:在目标EC2上安装Web服务器
成功登录目标EC2后,就可以安装Web服务器了,这里给你两种主流选项的操作步骤:
安装Apache(Amazon Linux 2/CentOS)
- 先更新系统包:
sudo yum update -y - 安装Apache:
sudo yum install httpd -y - 启动服务并设置开机自启:
sudo systemctl start httpd sudo systemctl enable httpd
安装Nginx(Amazon Linux 2/CentOS)
- 先安装Nginx官方源:
sudo amazon-linux-extras install nginx1 -y - 安装并启动服务:
sudo yum install nginx -y sudo systemctl start nginx sudo systemctl enable nginx
安装Apache/Nginx(Ubuntu)
如果是Ubuntu系统,用apt命令操作:
# 安装Apache sudo apt update && sudo apt install apache2 -y # 或者安装Nginx sudo apt update && sudo apt install nginx -y
启动并设置自启:
sudo systemctl start apache2 # 换成nginx就是启动Nginx sudo systemctl enable apache2 # 同样换成nginx即可
重要提醒:安全组配置
最后别忘了检查安全组规则:
- 目标EC2的安全组要允许来自Bastion主机安全组的**22端口(SSH)**访问,这样才能通过Bastion连进来。
- 如果要让外部用户访问Web服务器,还要允许**80端口(HTTP)或443端口(HTTPS)**的入站流量,根据你的需求调整就行。
内容的提问来源于stack exchange,提问作者Shawn
相关产品推荐
相关产品推荐

