在现代云计算环境中,托管Web应用的方式多种多样。本文将介绍如何在AWS上使用传统的EC2实例托管Web应用,尤其适合那些希望将旧系统迁移到AWS环境的开发者。将详细探讨使用EC2、安全组、负载均衡器和路由53等AWS服务的步骤。
在开始之前,需要了解一些AWS的基础组件:
假设目标是在AWSEC2机器上托管一个网站。为了简化应用,将在Apache Web服务器上发布一个静态HTML页面,并使其能够通过FTP访问。此外,将通过AWS Route53将域名重定向到这个Web应用。
以下是在AWSEC2上托管网站内容的详细步骤:
这个安全组将用于EC2。安全组可以被看作是它所绑定对象的防火墙。设置所有入站端口如下:
图像002显示了从ALB到EC2通过相关安全组的流量。
在AWS中创建EC2实例是一个直接的操作。图像003中的连接按钮将用于连接到EC2。
安装EC2-for-WELR所需的所有组件。首先,应该连接到EC2命令提示符。有很多方法可以做到这一点,但最简单的方法是直接通过AWS Web控制台连接。
sudo yum update -y
sudo yum install -y httpd
sudo systemctl start httpd.service
sudo systemctl enable httpd.service
所有Web应用文件将位于Apache的默认Web文件夹中。Apache的默认Web文件夹是/var/www/html/。
sudo su
sudo yum update -y
sudo yum install vsftpd
sudo vi /etc/vsftpd/vsftpd.conf
应该按照以下方式修改FTP配置文件:
要重启vsftpd,可以使用以下命令:
/etc/init.d/vsftpd restart
或者
systemctl restart vsftpd
在EC2命令提示符中添加FTP用户:
sudo adduser awsftpuser
sudo passwd awsftpuser
sudo usermod -a -G root awsftpuser
sudo usermod -d /var/www/html/ awsftpuser
sudo chown -R awsftpuser /var/www/html
systemctl restart vsftpd
2.3 安装FTP客户端
例如,在Windows上安装Filezilla客户端。在AWS中创建所有项目后,尝试使用FTP客户端连接并上传文件。应该能够将index.html上传到EC2的FTP Web文件夹。
设置所有入站端口如下:
图像005显示了SG-for-ALB-for-WELR的入站规则。
图像006显示了目标组TG-for-WELR。
这个ALB应该有目标组TG-for-WELR。目标组是一组EC2,但目前它只包括EC2-for-WELR。此外,这个ALB应该有SG-for-ALB-for-WELR。
图像007显示了应用程序负载均衡器ALB-for-WELR。
向SG-for-EC2-for-WELR添加入站规则,使其接受来自SG-for-ALB-for-WELR的所有TCP请求。
图像008显示了通过它们的安全组从ALB到EC2的流量。
应该有以下四条记录:
图像009显示了Route53的记录。NS地址可以在域名管理UI中使用,将域名重定向到在EC2 Apache中托管的Web应用。
正如本文开头提到的,托管Web应用的方式有很多。对AWSEC2进行了一些调查。正如所看到的,假设通过FTP手动将Web应用的运行项目部署到Apache。然而,使用任何CI/CD工具,也可以使用FTP命令自动化。