AWS 3层架构
AWS 3 层架构是一种逻辑和物理结构,可将您的应用程序分为三层:Web、应用程序和数据库。通过将您的应用程序分为这三层,您可以创建一个可扩展且高度可用的架构,该架构可以使用 AWS 服务轻松实施。
Web 层:处理来自客户端的传入 HTTP 请求并交付静态内容,例如 HTML、CSS 和 JavaScript 文件。
应用层:负责处理来自客户端的动态请求并与数据库交互以检索或更新数据。
数据库层:负责以持久和可扩展的方式存储数据。
在这篇文章中,我们将使用 AWS 控制台构建所有层。我们正在尝试完成的架构图如下所示。

必备:
具有适当权限的 AWS 账户让我们开始吧!
网络层
VPC
我们要做的第一件事是使用 AWS 控制台创建一个新的 VPC。新的 VPC 将容纳我们用于该项目的所有基础设施。
首先,我们将登录到我们的 AWS 账户并导航到仪表板的 VPC 部分。然后,单击创建 VPC 按钮。接下来,我们将为我们的 VPC 选择一个名称和 CIDR 地址。对于这个项目,我们将为我们的 VPC 分配一个 10.0.0.0/16 的 CIDR 地址。输入所有必需信息后,单击创建 VPC 按钮以完成该过程。而已!我们的新 VPC 现在可以使用了。

子网
我们的 Web 层需要两个公共子网。公共子网是我们将部署所有作为服务器服务的 EC2 实例的地方。必须在不同的区域中配置它们以确保可用性!
在控制台的左侧,我们将在导航栏中看到子网。继续并单击它,然后单击创建子网。请记住,我们将在新 VPC 中创建这些子网。在下一个屏幕上,选择新的 VPC,为子网命名,选择可用区,并分配 CIDR 地址 10.0.1.0/24。重复此过程以创建第二个公共子网。给它另一个名称,选择另一个不同的可用区,并分配一个 CIDR 地址 10.0.2.0/24。
另外,请记住启用自动分配公共 IPv4 地址,因为我们正在创建公共子网。

互联网网关
列表中的下一个是互联网网关。我们在公共子网中的资源需要连接到互联网。我们将选择控制台左侧的 Internet 网关。然后,我们将选择创建互联网网关。我们会给它一个名字并点击创建按钮。现在我们的互联网网关已经准备就绪,我们需要将它附加到我们的 VPC。

要将其附加到我们的 VPC,我们将单击操作,然后单击附加到 VPC 选项。我们将选择我们创建的 VPC。在屏幕上,状态将变为已连接。我们的互联网网关刚刚连接到我们的 VPC!

NAT网关
我们需要创建两个网络地址转换 (NAT) 网关。 NAT 网关使私有子网中的资源能够连接到 Internet。每个 NAT 网关都将与我们的公共子网相关联。
在我们的 VPC 仪表板的左侧,我们将选择 NAT 网关并单击创建 NAT 网关。我们将为我们的 NAT 网关命名,我们将选择公共子网,最后,我们将单击创建 NAT 网关。
弹性 IP 地址是一个保留的公共 IP 地址,可以分配给任何 EC2 实例或 NAT 网关。我们将为我们的 NAT 网关分配一个弹性 IP 地址。对于我们的 NAT 网关,我们将使用弹性 IP 地址。

路由表
接下来是路由表。路由表控制流量在不同子网和接入点之间的路由方式。我们将为我们的 Web 层创建一个路由表。
在控制台的左侧,选择路由表和创建路由表。给它一个名字,选择这个项目的 VPC,然后点击创建路由表按钮。
现在我们已经创建了该层的路由表,我们需要对其进行编辑。首先,我们需要将它与我们的公共子网相关联。我们将单击刚刚创建的路由表,然后单击编辑子网关联按钮。然后我们将选择我们的两个公共子网并单击保存关联。
我们还需要编辑路线。在我们路由表的路由选项卡上,我们将单击编辑路由。我们只需要确保表已设置好,以便它可以访问互联网。目的地是 0.0.0.0/0,目标是我们的互联网网关。最后,选择保存更改。

安全组
对于这一层,我们需要设置两个不同的安全组。第一个用于我们的 Web 服务器,另一个用于我们的负载均衡器。前者只允许来自客户端的 HTTP 访问。而后者将允许来自负载均衡器的 HTTP 流量。此过程称为安全组链接。
在 AWS 控制面板上,单击 EC2。在控制台的左侧,单击安全组。选择创建安全组。为其命名、描述,并为此项目选择 VPC。在入站规则部分,单击添加规则。选择 HTTP 作为类型,选择 Anywhere 作为源。我们都为负载均衡器安全组做好了准备。
对 Web 服务器的安全组重复此过程。但是,选择自定义作为源并输入负载均衡器的安全组 ID。

负载均衡器
我们 Web 层列表中的下一个是负载均衡器。虽然仍在 EC2 仪表板上,但我们将单击控制台左侧的负载均衡器。单击创建负载均衡器。我们将选择应用程序负载均衡器 (ALB)。我们将为其命名并选择面向互联网的方案。选择此项目的 VPC。然后,我们将选择我们的两个可用区并选择我们创建的公共子网。

我们将单击下一步并选择我们为负载均衡器创建的安全组。
在侦听器和路由部分,我们需要选择一个目标组,但正如我们所见,我们没有。所以,我们需要创建一个。单击创建目标组,选择实例作为目标类型,为其命名并为此项目选择 VPC。将其他所有内容保留为默认值,单击下一步,然后单击创建目标组。
回到create ALB选项卡,单独刷新target group部分,选择我们刚刚创建的target group。将所有其他内容保留为默认值,然后单击创建负载均衡器。

弹性伸缩组
我们需要为我们的 Web 层设置一个自动缩放组。 Auto Scaling Group 是一个强大的工具,可帮助我们保持最佳性能和可用性。它监控实例指标,例如 CPU 或内存使用情况;然后,根据您所需的服务级别,它会自动扩展(或缩减)实例以满足这些需求!
但是在我们设置一个自动伸缩组之前,我们必须创建一个启动模板。仍在 EC2 仪表板上时,单击 Launch Templates。然后单击创建启动模板。我们将为我们的启动模板命名,并且勾选提供自动缩放指导。选择您的 AMI、实例类型和密钥对(如果没有,请创建一个新的)。

在网络部分,单击选择现有安全组,然后选择我们为 Web 服务器创建的安全组。单击高级详细信息,向下滚动到用户数据,然后粘贴以下脚本。如果您有自己的脚本,请随意粘贴。
#!/bin/bash
yum update -y
yum install httpd -y
systemctl start httpd
systemctl enable httpd
cd /var/www/HTML
echo "This is a test page 1 running on apache web service" > index.html

最后,单击创建启动模板。现在我们的启动模板已经准备好了。是时候创建我们的自动缩放组了。
仍在 EC2 仪表板上时,单击 Auto Scaling Groups。单击创建自动伸缩组。我们将为它命名并选择我们创建的启动模板。单击下一步,为此项目选择 VPC,并为此层选择两个公有子网。单击下一步,单击附加到现有负载均衡器,然后从负载均衡器目标组中选择。输入所需的、最小和最大容量。最后,单击扩展策略部分中的目标跟踪扩展策略,并将其他所有内容保留为默认值。

要检查一切是否正常,请单击实例,现在应该启动两个实例。单击负载均衡器,复制 DNS 地址并将其粘贴到浏览器中;我们应该看到我们的 Web 服务器启动并运行。点击目标群体;应该有两个健康的目标群体。



请注意,我们无法使用 EC2 实例的公共地址访问我们的服务器。请记住,我们的实例不接受来自公共的 HTTP 流量,只接受来自负载均衡器的 HTTP 流量。

应用层
让我们构建我们的应用层。我们的应用层需要两个私有子网。这些私有子网将容纳我们的应用程序服务器,并且必须在不同的可用区中进行配置。
在 AWS 仪表板上,我们将单击 VPC 并导航到子网。这些子网将在此项目的 VPC 中创建。单击创建子网,为其命名,选择可用区,并分配一个 CIDR 地址 10.0.3.0/24。
重复此过程以创建第二个私有子网。给它另一个名称,选择另一个不同的可用区,并分配一个 CIDR 地址 10.0.4.0/24。
由于我们正在创建私有子网,因此无需启用自动分配公共 IPv4 地址。

路由表 准确地说,我们还需要为我们的应用程序创建路由表。仍在 VPC 仪表板上时,导航到控制台左侧并单击路由表。选择创建路由表,为其命名,为此项目选择 VPC,然后点击创建按钮。重复此过程以创建第二个路由表。

接下来,我们将路由表与我们的两个私有子网相关联。单击路由表,编辑子网关联,然后选择私有子网。对第二个路由表重复此过程并关联第二个私有子网。
我们需要编辑路线。在我们路由表的路由选项卡上,我们将单击编辑路由。这次我们正在设置表格以到达 NAT 网关。还记得我们在公共子网中创建的 NAT 网关吗?目的地是 0.0.0.0/0,目标是我们的 NAT 网关。

对第二个路由表重复此过程并关联第二个 NAT 网关。
安全组
对于这一层,我们还需要两个安全组——一个用于应用程序负载均衡器,另一个用于应用程序服务器。负载均衡器安全组将只允许来自 Web 服务器的 HTTP 流量。而应用服务器的安全组将只允许来自负载均衡器的 HTTP 流量。
在 AWS 控制面板上,单击 EC2。在控制台的左侧,单击安全组。选择创建安全组。为其命名、描述,并为此项目选择 VPC。在入站规则部分,单击添加规则。选择 HTTP 作为类型,选择 Web 服务器的安全组 ID 作为源。我们都为负载均衡器安全组做好了准备。
对应用程序服务器的安全组重复此过程。但是,选择自定义作为源并输入应用程序负载均衡器的安全组 ID。

负载均衡器
列表中的下一个是负载平衡器。虽然仍在 EC2 仪表板上,但我们将单击控制台左侧的负载均衡器。单击创建负载均衡器。我们将选择应用程序负载均衡器 (ALB)。我们将为它命名并选择 internal 作为方案(我们不希望它面向 Internet)。选择此项目的 VPC。然后,我们将选择我们的两个可用区并选择我们创建的私有子网。
我们将单击下一步并选择我们为应用程序负载均衡器创建的安全组。我们需要在侦听器和路由部分选择一个目标组。因此,我们需要为此层创建一个目标组。单击创建目标组,选择实例作为目标类型,为其命名并为此项目选择 VPC。将其他所有内容保留为默认值,单击下一步,然后单击创建目标组。

回到create ALB选项卡,单独刷新target group部分,选择我们刚刚创建的target group。将所有其他内容保留为默认值,然后单击创建负载均衡器。

Auto Scaling 组
我们需要为我们的应用层设置一个自动缩放组。
我们需要创建一个启动模板。仍在 EC2 仪表板上时,单击启动模板。然后单击创建启动模板。选择您的 AMI、实例类型和密钥对(如果没有,请创建一个新的)。我们将为我们的启动模板命名并打勾以提供自动缩放指导。

在网络部分,单击选择现有安全组,然后选择我们为应用程序服务器创建的安全组。单击高级详细信息,向下滚动到用户数据,然后粘贴以下脚本。我们将使用与该项目的 Web 服务器相同的脚本。
yum update -y
yum install httpd -y
systemctl start httpd
systemctl enable httpd
cd /var/www/HTML
echo "This is a test page 345 running on apache web service" > index.html
单击创建启动模板。现在我们的启动模板已经准备好了。是时候创建我们的自动缩放组了。
仍在 EC2 仪表板上时,单击 Autoscaling 组。单击创建自动伸缩组。我们将为它命名并选择我们创建的启动模板。单击下一步,为此项目选择 VPC,并为此层选择两个私有子网。单击下一步,单击附加到现有负载均衡器,然后从负载均衡器目标组中选择。输入所需的、最小和最大容量。

最后,单击扩展策略部分中的目标跟踪扩展策略,并将其他所有内容保留为默认值。


数据库层
这是我们架构的最后一层。该层存储和管理应用层处理的信息。
子网
对于这一层,我们需要另外两个私有子网。
在 AWS 仪表板上,我们将单击 VPC,然后导航到子网。这些子网将在此项目的 VPC 中创建。创建一个子网,为其命名,选择可用区,并分配一个 CIDR 地址 10.0.5.0/24。
重复此过程以创建第二个私有子网。给它另一个名称,选择另一个不同的可用区,并分配一个 CIDR 地址 10.0.6.0/24。由于我们正在创建私有子网,因此无需启用自动分配公共 IPv4 地址。
安全组
对于这一层,我们需要一个安全组。安全组将只允许来自应用程序服务器的 MySQL/Aurora 流量。
在 AWS 控制面板上,单击 EC2。在控制台的左侧,单击安全组。选择创建安全组。为其命名、描述,并为此项目选择 VPC。在入站规则部分,单击添加规则。选择 MySQL/Aurora 作为您的应用程序服务器的类型和安全组 ID 作为源。我们都为数据库安全组做好了准备。
关系型数据库服务(RDS)
对于这个项目,我们将使用 RDS 作为我们的数据库。它是一组托管服务,可让您在云中轻松设置、操作和扩展数据库。
在 AWS 控制面板上找到 RDS。在控制台的左侧,单击子网组。数据库子网组对于创建数据库至关重要。单击创建数据库子网。给它一个名称和描述,选择我们的自定义 VPC,选择可用区和我们的私有子网,然后点击创建按钮。

现在,我们可以创建我们的数据库了。单击创建数据库。选择一个标准来创建并选择 MySQL 作为引擎选项。我们将为此项目使用免费层模板。给它一个实例标识符,并设置一个主用户名和密码。然后,我们将选择我们的自定义 VPC、我们创建的数据库子网组以及我们为数据库创建的安全组。并将其他所有内容保留为默认值。



我们刚刚成功地构建了我们的架构。
更多推荐
所有评论(0)