AWS 中 VPC 的两层架构:详细解释

在 AWS 中,虚拟私有云 (VPC) 允许您在云中设置私有网络,您可以在其中启动 AWS 资源,例如 EC2 实例、数据库等。两层架构是云应用程序最常用的设置之一,它明确区分了面向公众的组件和私有组件。在此架构中通常有两个主要层:公共层和私有层。

在本文,我们将探讨 VPC 的两层架构、它的组件、如何配置它们以及一个用例,以帮助您了解如何在 AWS 上部署和浏览它。

 

 

两层架构是一种设计,其中:

  • 第一层(公共层)包含需要从互联网访问的组件,例如 Web 服务器。
  • 第二层(私有层)包含与直接互联网访问隔离的组件,例如数据库服务器。

 

让我们看一下 AWS 上双层架构 VPC 设置的基本组件:

公有子网是 VPC 的一部分,直接连接到互联网。这些子网中的资源(如 Web 服务器或负载均衡器)可以与互联网通信。

私有子网与互联网隔离。出于安全原因,这些子网中的资源(如数据库服务器或内部服务)无法直接访问互联网。

这些 EC2 实例通常是托管您的应用程序的 Web 服务器。它们位于公共子网中,可通过弹性 IP 或负载均衡器从互联网访问。

数据库(例如 Amazon RDS 或带有数据库的 EC2)位于私有子网中,以确保它不会直接暴露在互联网上。只有公共子网中的 EC2 实例才能与其通信。

NAT网关允许私有子网中的 EC2 实例访问互联网以执行软件更新或 API 调用等任务,而不会将它们暴露给传入的互联网流量。

VPC 的主路由表定义了网络的默认路由,引导 VPC 内的流量以及到互联网的流量(通过互联网网关)。

公共子网的路由表会将发往互联网的流量路由到互联网网关

互联网网关将您的 VPC 连接到互联网,允许公共子网中的资源与外界通信。

VPC端点允许您将 VPC 私下连接到 S3 或 DynamoDB 等 AWS 服务,而无需通过互联网路由流量。

 

 

让我们逐步了解在 AWS 上使用双层架构设置简单 Web 应用程序的导航步骤。在此示例中,我们将为 Web 应用程序使用 EC2 实例(在公共子网中),为数据库使用 RDS 实例(在私有子网中)。

  1. 导航到 AWS 控制台中的 VPC 仪表板。
    • 从主 AWS 控制台转到VPC部分。
    • 单击创建 VPC并指定 CIDR 块(例如10.0.0.0/16)。
  2. 为公共层和私有层创建子网。
    • 公共子网:创建一个具有 CIDR 块的子网,就像10.0.0.0/24在您的 VPC 中一样。
    • 私有子网:创建另一个具有 CIDR 块的子网,类似于10.0.1.0/24私有层。
  1. 主路由表:
    • AWS 会自动为您的 VPC 创建主路由表。您可以使用它来进行子网之间的路由。
  2. 公共子网的路由表:
    • 为公有子网创建新的路由表并将其与公有子网关联。
    • 添加到Internet 网关的路由。
  3. 私有子网的路由表:
    • 为私有子网创建新的路由表。
    • 添加一条到NAT 网关的路由,这将允许来自私有资源的出站互联网流量。
  1. 在公共子网中启动 EC2 实例:
    • 转到AWS 控制台中的EC2 。
    • 在公有子网中启动具有公有 IP 的 EC2 实例。您可以使用基本 Web 服务器 AMI,例如 Amazon Linux 或 Ubuntu。
    • 确保实例位于公共子网中,并附加允许 HTTP/HTTPS 流量(端口 80 和 443)的安全组。
  2. 安装并配置Web服务器:
    • 一旦 EC2 实例运行,就通过 SSH 进入实例并设置您的 Web 服务器(例如 Apache 或 Nginx)。
  1. 创建 RDS 实例:
    • 转到AWS 控制台中的RDS 。
    • 启动一个新的数据库实例,选择一个数据库引擎(例如,MySQL,PostgreSQL)并将其配置为在私有子网中运行。
    • 确保公共可访问性设置为否,以防止直接访问互联网。
  2. 将 EC2 实例连接到 RDS 数据库:
    • 配置您的 Web 服务器以使用 RDS 实例的内部 DNS 名称或私有 IP 地址连接到 RDS 实例。
  1. 在公共子网中创建 NAT 网关:
    • 进入VPC并选择NAT 网关
    • 在公共子网中创建一个新的 NAT 网关并将其与弹性 IP 关联。
  2. 更新私有子网的路由表:
    • 在私有子网的路由表中,确保发往互联网的流量路由到 NAT 网关。
  1. 创建并连接互联网网关:
    • 转到VPC,然后转到Internet 网关
    • 创建一个新的 Internet 网关并将其附加到您的 VPC。
  1. 测试对 Web 服务器的访问:
    • 打开 Web 浏览器并访问 EC2 实例的公共 IP。您应该会看到 Web 应用程序正在运行。
  2. 测试数据库访问:
    • 确保公有子网中的 EC2 实例可以与私有子网中的 RDS 实例通信。

在 AWS 上的这种两层 VPC 架构中,公有子网托管暴露在互联网上的 EC2 实例,而私有子网托管不直接暴露的数据库 (RDS)。NAT 网关确保私有资源可以访问互联网以获取更新和服务,而互联网网关使面向公众的资源能够与世界通信。

此架构为云应用程序提供安全性、可扩展性和高可用性。它非常适合需要分离 Web 层和数据库层,同时确保敏感数据和内部服务不受外部访问的用例。

 

更多探索

Tell me what you need