亚马逊云科技

广告

安信SSL证书

广告

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

美国云服务器推荐

本篇教程旨在通过AWS云平台部署一个典型的Web动态网站,由NodeJS及MySQL构建,采用多可用区部署的方式来提高网站的可靠性。教程包含如下步骤:网络规划及安全设置、数据库创建、服务器模板创建、负载均衡及自动伸缩配置,最后通过配置Amazon CloudFront来实现网站内容加速。

一、AWS产品说明

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

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

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

二、架构概述

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

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

架构概述

三、部署流程

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

相关推荐:

亚马逊云科技账号注册流程图解》(国内用户)

亚马逊云科技海外账号注册流程图解

四、网络规划与安全设置

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

1、创建VPC

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

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

创建VPC

创建VPC

创建VPC

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

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

创建安全组

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

2、创建安全组

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

创建安全组

创建安全组

创建安全组

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

(1)ELB安全组

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

ELB安全组

ELB安全组

(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控制台。

创建数据库

2、创建数据库实例

创建数据库实例

创建数据库实例

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

创建数据库实例

3、新建数据库实例

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

新建数据库实例

新建数据库实例

新建数据库实例

存储保留默认设置即可。

新建数据库实例

新建数据库实例

其余保留默认设置即可。

六、创建应用服务器模板

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

创建应用服务器模板

1、 服务器配置

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

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

服务器配置

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

数据库初始化

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

设置应用程序开机自启动

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

# 设置开机自启动
pm2 save

5、创建AMI镜像

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

创建AMI镜像

创建AMI镜像

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

1、创建目标组

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

创建目标组

创建目标组

2、创建启动模板

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

创建启动模板

创建启动模板

创建启动模板

3、创建Auto Scaling组

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

创建Auto Scaling组

创建Auto Scaling组

创建Auto Scaling组

创建Auto Scaling组

创建Auto Scaling组

创建Auto Scaling组

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

4、创建负载均衡器

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

创建负载均衡器

创建负载均衡器

创建负载均衡器

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

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

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

创建负载均衡器

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

创建负载均衡器

创建负载均衡器

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

创建负载均衡器

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

创建负载均衡器

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

八、配置CloudFront

1、配置Amazon CloudFront

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

配置CloudFront

配置CloudFront

2、添加域名解析记录

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

配置CloudFront

点击“创建记录”。

添加域名解析记录

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

点击“创建记录”

创建完成后,显示如下:

点击“创建记录”

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

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

创建完成后

相关推荐:

亚马逊云服务器免费12月领取攻略

如何利用AWS提高大模型训练速度

Amazon EC2创建macOS虚拟机教程

Amazon Bedrock深度集成DeepSeek-R1模型实操指南

(本文由美国主机侦探原创,转载请注明出处“美国主机侦探”和原文地址!)

主机侦探企业微信

微信扫码加好友进群

主机优惠码及时掌握

主机侦探QQ群

QQ群号:938255063

主机优惠发布与交流

温馨提示:

1、本站部分图片来源于互联网,如有侵权请联系删除。邮箱:2942802716#qq.com(#改为@)

2、本文评论没有专人回复,如果您有问题请到美国主机侦探论坛提问!

3、美国主机侦探免费为您提供美国主机购买咨询。

RAKsmart美国服务器
返回顶部