在AWS上托管Web应用的指南

在现代云计算环境中,托管Web应用的方式多种多样。本文将介绍如何在AWS上使用传统的EC2实例托管Web应用,尤其适合那些希望将旧系统迁移到AWS环境的开发者。将详细探讨使用EC2、安全组、负载均衡器和路由53等AWS服务的步骤。

在开始之前,需要了解一些AWS的基础组件:

  • Amazon EC2:一种基础云计算服务,允许用户在云中租用虚拟服务器。
  • Amazon Security Group:一种虚拟防火墙,用于控制进出EC2实例的网络流量。
  • Amazon Load Balancer:一种服务,可以在多个EC2实例之间分配网络流量。
  • Amazon Route53:一种托管DNS服务,可以将域名解析到EC2实例。

架构设计

假设目标是在AWSEC2机器上托管一个网站。为了简化应用,将在Apache Web服务器上发布一个静态HTML页面,并使其能够通过FTP访问。此外,将通过AWS Route53将域名重定向到这个Web应用。

操作步骤

以下是在AWSEC2上托管网站内容的详细步骤:

这个安全组将用于EC2。安全组可以被看作是它所绑定对象的防火墙。设置所有入站端口如下:

  • 20-21 (FTP)
  • 1024-1048 (FTP), 可选
  • 22 (SSH)
  • 80 (HTTP)
  • 8080 (HTTP自定义), 可选
  • 443 (HTTPS)

图像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配置文件:

  • anonymous_enable=NO
  • local_enable=YES
  • write_enable=YES
  • local_umask=022
  • dirmessage_enable=YES
  • xferlog_enable=YES
  • connect_from_port_20=YES
  • chroot_local_user=YES
  • allow_writeable_chroot=YES
  • listen=NO
  • listen_ipv6=YES
  • pasv_enable=YES
  • pasv_min_port=1024
  • pasv_max_port=1048
  • pasv_address=18.170.116.xxx

要重启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文件夹。

设置所有入站端口如下:

  • 20-21 (FTP)
  • 1024-1048 (FTP), 可选
  • 22 (SSH)
  • 80 (HTTP)
  • 8080 (HTTP自定义), 可选
  • 443 (HTTPS)

图像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的流量。

应该有以下四条记录:

  • NS和SOA是自动创建的。
  • 创建记录A。
  • 创建记录CNAME - 到welr.com。

图像009显示了Route53的记录。NS地址可以在域名管理UI中使用,将域名重定向到在EC2 Apache中托管的Web应用。

正如本文开头提到的,托管Web应用的方式有很多。对AWSEC2进行了一些调查。正如所看到的,假设通过FTP手动将Web应用的运行项目部署到Apache。然而,使用任何CI/CD工具,也可以使用FTP命令自动化。

沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485