【问题标题】:How exactly is a VPC usedVPC 究竟是如何使用的
【发布时间】:2019-02-06 06:35:27
【问题描述】:

我了解 VPC 的主要概念和高级架构。据我了解,VPC 主要用于对网络进行较低级别的详细说明。这主要用于 ec2 实例。我知道 ec2 实例是 IAAS。

我的问题是如何将 VPC 与 PAAS 或 FAAS 等其他资源一起使用。在 VPC 中拥有 RDS、EB、Lambda 等资源与在 VPC 中没有资源有什么区别?如果这些资源在 VPC 中使用,它们是否通过 ec2 实例显示?还是让它在 VPC 中能够控制该资源的网络细节?

【问题讨论】:

    标签: amazon-web-services vpc aws-vpc


    【解决方案1】:

    VPC 是物理网络的虚拟化版本。

    想想您的家庭网络。您家中的每台设备都需要物理连接到路由器,或通过 wifi 连接到路由器。让我们暂时忽略 wifi。

    如果您家中的两台设备想要相互通信,则它们需要连接到同一个网络。您无法连接到邻居的设备,因为它们位于不同的网络上。

    您的路由器还可以连接到互联网,允许设备访问您家外的计算机。

    VPC 也是如此。任何希望相互通信的资源(例如 EC2、RDS)需要在同一个 VPC 上。如果 VPC 通过 Internet 网关连接到 Internet,它们还可以与通过 Internet 访问的任何东西进行通信。

    • Amazon EC2 实例 始终连接到 VPC。 (有一个旧版本称为 EC2-Classic,但我们忽略它)
    • AWS Elastic Beanstalk 部署 Amazon EC2 实例,因此它们也连接到 VPC。
    • Amazon RDS 实例在“幕后”使用 EC2,因此它们始终连接到 VPC。
    • AWS Lambda 函数可选择连接到 VPC。如果他们没有连接到 VPC,那么他们可以直接访问 Internet。如果它们连接到 VPC,则它们只能访问 VPC 内的资源 - 需要 NAT 网关才能让函数访问 Internet。
    • Amazon S3 是一种始终运行且始终可从 Internet 访问的 Web 服务。你可以“使用”它,但不能“创造”它。因此,它不会连接到 VPC。要使用它,VPC 上的资源(例如 EC2 实例)需要能够访问 Internet,或者使用从 VPC 直接连接到 S3 的“VPC 端点”。

    VPC 纯粹用于为资源提供“物理”连接,就像它们被插入同一个路由器一样。它不授予资源本身的访问权限。把它想象成您将笔记本电脑插入我的家庭网络 - 除非您已将笔记本电脑配置为允许访问(例如磁盘共享),否则它不会授予我访问您的笔记本电脑的权限。

    【讨论】:

    • 如果 RDS 在较低级别使用 ec2 实例,是否可以通过 ec2 实例(访问操作系统)连接到 RDS,因为我们可以在 VPC 中访问该 RDS?或者资源位于 VPC 上的事实与该资源的抽象以及我们如何连接到它不同?
    • 没有。 Amazon RDS 作为完全托管的服务提供。虽然它在“底层”使用 EC2,但用户无法访问这些实例。您可以通过控制台或 API 调用控制 RDS 服务,并且可以通过普通数据库端口连接到数据库,但无法连接到运行数据库的操作系统。更多的是“使用 EC2 技术”,而不是“使用 EC2”。
    • vpc 与资源的抽象无关。只是沟通。这就是我得到的?
    • 是的,VPC纯粹用于资源之间的连接。
    【解决方案2】:

    如您所知,VPC 是完全私有的虚拟网络服务。在这个专用网络中,您将能够创建子网并根据需要组织它们,例如拥有一些可以具有公共 IP 地址的网络(例如前端服务)和其他完全私有的网络(例如 RDS)。

    现在,公有子网仅称为公有,因为它连接到称为 Internet 网关的 AWS 资源,因此您的公有 IP 将被路由。这意味着即使您在未连接(通过路由表)到互联网网关的子网中的 EC2 实例上拥有公共 IP,您也无法连接到互联网。

    如果您希望私有子网中的实例能够与世界其他地方通信,则必须添加一个 AWS NAT 网关来为您进行数据包转换(最简单的方法)。

    现在拥有 VPC 的目的是拥有堆栈中正在进行的数据,例如,您不希望关键数据库和后端服务暴露在互联网上,即使您可以使用安全组保护它们。

    VPC 中的 lambda 函数将是一种资源,在您指定的子网中执行期间将提供给网络接口 (ENI)。这将允许您连接到未暴露在互联网上的资源(RDS、Elasticache...)

    如果您不需要访问留在 VPC 内部的私有资源,通常您会希望在没有 VPC 外部的情况下使用 lambda。

    【讨论】:

    猜你喜欢
    • 2011-09-17
    • 2012-06-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-26
    • 2021-08-15
    • 2012-06-08
    • 2011-10-11
    相关资源
    最近更新 更多