首页开发教程AWS云平台部署Web动态网站教程

AWS云平台部署Web动态网站教程

2025-05-02 57

Web动态网站可以根据用户的偏好、行为历史等信息定制化展示内容,提供更加个性化的服务。那么如何部署动态网站?本篇教程旨在通过AWS云平台部署一个典型的Web动态网站,由NodeJS及MySQL构建,采用多可用区部署的方式来提高网站的可靠性。接下来将由站长百科详细为大家介绍。

一、AWS产品说明

本文主要基于AWS(亚马逊云与科技)产品进行部署,涉及产品包括:

  • Amazon RDS:提供数据库服务(12个月免费)
  • Amazon CloudFront:CDN加速(永久免费)
  • Amazon VPC:虚拟私有云
  • Amazon EC2:亚马逊云服务器(12个月)
  • Amazon ELB:负载均衡

亚马逊云科技官网:点击访问新客注册立享100+免费云产品及服务

二、架构概述

本教程使用典型的三层Web架构,包括:负载均衡器、应用服务器及数据库。VPC内的NAT网关和ELB节点位于公有子网,其它资源则放置于私有子网,从而增强系统安全性。此外Route 53将托管和解析域名,CloudFront则用来加速静态和动态内容的加载,同时提升网站安全性。

下图展示了所采用的架构:

AWS云平台部署Web动态网站教程

三、部署流程

在开始之前,确保已进入AWS控制台。如果还没有账户,请先进行注册:

相关推荐:《亚马逊云科技账号注册流程》(国内用户)

四、网络规划与安全设置

VPC是创建的私有网络,可以自定义网络配置,包括CIDR分配、子网划分、路由表设置等。通过安全组,可以控制进出网卡的流量。

1、创建VPC

通过AWS CloudFormation模板可以迅速创建所需的VPC资源。此VPC包含两个公有子网(共享路由表)、两个私有子网(分别有独立的路由表)及两个NAT Gateway。

打开CloudFormation控制台并选择“创建堆栈”。

AWS云平台部署Web动态网站教程

AWS云平台部署Web动态网站教程

AWS云平台部署Web动态网站教程

然后输入以下URL以获取VPC模板:

https://workshop-binc.s3.cn-northwest-1.amazonaws.com.cn/cfn/vpc-with-natgw.yaml

AWS云平台部署Web动态网站教程

继续点击默认设置,完成堆栈创建。大约1-2分钟后即可完成创建。

2、创建安全组

进入Amazon EC2控制台,选择安全组并点击“创建安全组”。

AWS云平台部署Web动态网站教程

AWS云平台部署Web动态网站教程

AWS云平台部署Web动态网站教程

为以下各项创建安全组并添加入站规则:

(1)ELB安全组

  • 名称:SG-ALB-HA-Workshop
  • 描述:SG-ALB-HA-Workshop
  • 协议:HTTP(端口80)
  • 来源:0.0.0.0/0

AWS云平台部署Web动态网站教程

AWS云平台部署Web动态网站教程

(2)Bastion安全组

  • 名称:SG-Bastion-HA-Workshop
  • 描述:SG-Bastion-HA-Workshop
  • 协议:SSH(端口22)
  • 来源:0.0.0.0/0

(3)AppServer安全组

  • 名称:SG-AppServer-HA-Workshop
  • 描述:SG-AppServer-HA-Workshop
  • 协议:自定义TCP(端口3000)
  • 来源:SG-ALB-HA-Workshop(安全组ID)

(4)RDS安全组

  • 名称:SG-RDS-HA-Workshop
  • 描述:SG-RDS-HA-Workshop
  • 协议:MySQL/Aurora(端口3306)
  • 来源:SG-AppServer-HA-Workshop(安全组ID)

五、创建数据库

1、创建数据库子网组

打开RDS控制台。

AWS云平台部署Web动态网站教程

2、创建数据库实例

AWS云平台部署Web动态网站教程

AWS云平台部署Web动态网站教程

接下来,先点击 添加与此VPC相关的所有子网,然后删除CIDR为10.192.11.0/24 及 10.192.10.0/24的公有子网,只保留两个私有子网即可。

AWS云平台部署Web动态网站教程

3、新建数据库实例

这里我们创建一个RDS MySQL 5.7.31的数据库实例,实例类型选择db.t2.medium,并开启多可用区部署(创建备用实例)。

AWS云平台部署Web动态网站教程

AWS云平台部署Web动态网站教程

AWS云平台部署Web动态网站教程

存储保留默认设置即可。

AWS云平台部署Web动态网站教程

AWS云平台部署Web动态网站教程

其余保留默认设置即可。

六、创建应用服务器模板

打开EC2控制台,选择“创建实例”,并按照以下配置创建服务器:

AWS云平台部署Web动态网站教程

1、 服务器配置

操作系统:Ubuntu Server 18.04(AMI ID: ami-0071f6f4df15863cc 或 ami-0a22b8776bb32836b)

  • 实例类型:t3.small
  • VPC:选择创建的VPC
  • 子网:选择一个公有子网
  • 安全组:SG-AppServer-HA-Workshop和SG-Bastion-HA-Workshop

AWS云平台部署Web动态网站教程

2、安装应用程序及依赖

连接到EC2实例并执行以下命令安装所需的软件和依赖:

sudo apt update
sudo apt install nodejs npm memcached -y

# 下载并解压应用程序
wget https://workshop-binc.s3.cn-northwest-1.amazonaws.com.cn/code/workshop_ha.tgz
tar -xf workshop_ha.tgz

cd workshop_ha
npm install
sudo npm install -g sequelize-cli pm2

3、数据库初始化

修改配置文件~/workshop_ha/config/config.json

"development": {
...
"host": "xxxxxx.xxxx.rds.cn-north-1.amazonaws.com.cn", // 修改为数据库endpoint
"username": "your user name", // 数据库用户名
"password": "your password", // 数据库密码
...
}

执行如下命令创建schema:

sequelize-cli db:create
sequelize-cli db:migrate

AWS云平台部署Web动态网站教程

4、设置应用程序开机自启动

使用pm2来管理应用程序并设置开机自启动:

pm2 startup
sudo env PATH=$PATH:/usr/bin /usr/local/lib/node_modules/pm2/bin/pm2 startup systemd -u ubuntu --hp /home/ubuntu
pm2 start app.js
pm2 status # 确保状态为online
pm2 save

AWS云平台部署Web动态网站教程

# 执行如下命令,确认应用程序有正常的返回
curl -I localhost:3000
>> HTTP/1.1 200 OK

# 设置开机自启动
pm2 save

5、创建AMI镜像

回到EC2控制台,为这台EC2创建AMI镜像。

AWS云平台部署Web动态网站教程

AWS云平台部署Web动态网站教程

七、设置负载均衡及弹性伸缩

1、创建目标组

在目标组控制台创建目标组,选择默认设置并完成创建。

AWS云平台部署Web动态网站教程

AWS云平台部署Web动态网站教程

2、创建启动模板

通过AWS云服务器启动模板控制台创建启动模板,选择一个密钥对并完成创建。

AWS云平台部署Web动态网站教程

AWS云平台部署Web动态网站教程

AWS云平台部署Web动态网站教程

3、创建Auto Scaling组

在Auto Scaling控制台创建Auto Scaling组,选择已创建的启动模板,配置伸缩策略并完成创建。

AWS云平台部署Web动态网站教程

AWS云平台部署Web动态网站教程

AWS云平台部署Web动态网站教程

AWS云平台部署Web动态网站教程

AWS云平台部署Web动态网站教程

AWS云平台部署Web动态网站教程

其余步骤,均保持默认值,然后点击【跳至检查】,并完成创建。

4、创建负载均衡器

在负载均衡器控制台创建ALB,选择相应的安全组和目标组,完成创建。

AWS云平台部署Web动态网站教程

AWS云平台部署Web动态网站教程

AWS云平台部署Web动态网站教程

跳过第二步;第三步,选择安全组:SG-ALB-HA-Workshop;第四步,选择现有目标组 TG-HA-Workshop;其余步骤保留默认值,完成创建。

稍等片刻,等待ALB的状态进入Active,复制DNS名称,ALB-HA-Workshop-xxxx.cn-north-1.elb.amazonaws.com.cn,在浏览器新标签页打开。

注意:DNS解析生效时间稍长,约5分钟左右,需耐心等待。

AWS云平台部署Web动态网站教程

正常情况下,可以进入如下页面,尝试刷新几次,可以观察到 az, instance_id 均会发生变化,表明流量通过ALB发送到了不同的后端EC2。

AWS云平台部署Web动态网站教程

AWS云平台部署Web动态网站教程

为了验证应用的健壮性,我们尝试将其中一台EC2做关机处理,模拟机器故障情况。

AWS云平台部署Web动态网站教程

接下来,我们进入AutoScalingGroup页面,观察到如下活动历史记录,表明ASG探测到实例处于不健康状态,将其终止之后开启了一台新的实例。

AWS云平台部署Web动态网站教程

稍等一会,实例通过目标组的健康检查之后,再次刷新网页,可以观察到新的实例已经投入使用。

八、配置CloudFront

1、配置Amazon CloudFront

在CloudFront控制台创建分配,选择源服务器和配置缓存策略,其他设置可以保持默认。完成后,等待CNAME状态为Active。

AWS云平台部署Web动态网站教程

AWS云平台部署Web动态网站教程

2、添加域名解析记录

在Route 53里面选择“托管区域”,然后点击为该网站准备的域名。

AWS云平台部署Web动态网站教程

点击“创建记录”。

AWS云平台部署Web动态网站教程

填入内容如下(需根据您的实际情况调整内容):

AWS云平台部署Web动态网站教程

创建完成后,显示如下:

AWS云平台部署Web动态网站教程

等新增的DNS记录生效后,就可以通过在浏览器输入CNAME域名访问到我们所托管的网站了。

使用自定义域名进行访问:

AWS云平台部署Web动态网站教程

相关推荐:

Amazon Lightsail上启动cPanel & WHM实例教程

如何搭建个人网盘(35GB免费存储空间)

亚马逊云科技Amazon EC2部署DeepSeek-R1蒸馏模型教程

  • 广告合作

  • QQ群号:4114653

温馨提示:
1、本网站发布的内容(图片、视频和文字)以原创、转载和分享网络内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。邮箱:2942802716#qq.com(#改为@)。 2、本站原创内容未经允许不得转裁,转载请注明出处“站长百科”和原文地址。

相关文章