AWS - 网络服务组件

一直以来在用AWS搭建一些分布式的服务,要知其然,知其所以然,抽空对相关的理论进行了梳理和总结,特在此记录和分享。

1 VPC(Virtual Private Cloud)

1.1 介绍

Amazon VPC是AWS的虚拟网络,实现了AWS云的物理隔离,我们可以将EC2放置于VPC内。

创建VPC时,需要以CIDR (Classless Inter-Domain Routing)块形式指定一个IPv4地址范围; 例如,10.0.0.0/16。

一个VPC可以跨越区域内所有的可用分区。 下图以新建带有IPv4 CIDR块的VPC为例进行说明。

AWS - 网络服务组件_第1张图片

创建一个 VPC后可以附加一个或多个subnet到每个Availability zone.

1.2 实战

AWS - 网络服务组件_第2张图片

什么是IPv4 CIDR块?

它是无类别域间路由 (Classless Inter-Domain Routing) 的缩写。

这就是要指定IP范围的方式。

符号是 / 。

先以10.0.0.0/16为例。

数字16为掩码,它决定IP范围。

这里的IP是IPv4。它由32位组成,每次按8位(八位位组)分组,用点分隔。因此,在示例10.0.0.0中,二进制表示为:00001010.00000000.00000000.00000000。

16作为掩码,从左到右用数字“1”表示,形成一个IP地址格式。结果是11111111.11111111.00000000.00000000。

可以在网络内使用掩码上有0的位置。这意味着,如果将最后两个八位字节中的所有剩余位用于网络,IP范围将是00001010.00000000.00000000.00000000至00001010.00000000.11111111.11111111,或小数位10.0.0.0至10.0.255.255。

如果掩码为24或11111111.11111111.11111111.00000000,则只获取最后一个八位字节。

2 互联网网关

2.1 介绍

顾名思义,为了使VPC能够访问互联网,就必须将其连接上互联网的网关。

internet gateway是可水平扩展的、冗余的、高可用的VPC组件,用于VPC与internet之间的通信。

作用:

  • 提供一个用于在VPC route table内部路由通信的目标,
  • 实例到公有IPv4地址的网络地址转换(NAT)

2.2 实战

AWS - 网络服务组件_第3张图片

AWS - 网络服务组件_第4张图片

3 Subnet

3.1 介绍

子网是 VPC 内的 IP 地址范围,可以在指定子网内启动AWS资源。对必须连接互联网的资源使用公有子网,而对将不会连接到互联网的资源使用私有子网。

每个子网必须完全位于一个可用分区内,不能跨越多个可用分区。

3.2 实战

AWS - 网络服务组件_第5张图片

指定掩码“24”。

转换为二进制的24掩码是11111111.11111111.11111111.00000000。因此,前三个八位字节已经保留,唯一的空间是最后一个八位字节。子网的IP范围是从10.0.0.1到10.0.0.255的范围。

当VPC内只有一个subnet时,subnet的CIDR block可以于VPC的相等;

当VPC内有多个subnet时,subnet的CIDR block是VPC的子集,多个subnet的CIDR blocks不可重复。

For example, if you create a VPC with CIDR block 10.0.0.0/24, it supports 256 IP addresses. You can break this CIDR block into two subnets, each supporting 128 IP addresses. One subnet uses CIDR block 10.0.0.0/25 (for addresses 10.0.0.0 - 10.0.0.127) and the other uses CIDR block 10.0.0.128/25 (for addresses 10.0.0.128 - 10.0.0.255).

例如:我们创建一个VPC 的CIDR block 10.0.0.0/24,支持256个IP地址。我们将这个CIDR block分为两个subnet,每个subnet支持128个IP地址。

subnet-01 的CIDR block:10.0.0.0/25 (25掩码是11111111.11111111.11111111.10000000,可以使用的IP:

10.0.0.0 - 10.0.0.127 =》

00001010.00000000.00000000.00000000 - 00001010.00000000.00000000.10000000

subnet-02 的CIDR block:10.0.0.128/25 (25掩码是11111111.11111111.11111111.10000000,可以使用的IP:

10.0.0.128 - 10.0.0.255 =》

00001010.00000000.00000000.10000001 - 00001010.00000000.00000000.11111111

4 NACL/Route Table

4.1 NACL

NACL允许用户指定网络的入站和出站流量规则。

可以根据协议类型(如HTTP,TCP,UDP等)和端口号为网络设置任何规则。

由最低到最高给每个规则一个数字。

创建VPC时会自动创建一个NACL

AWS - 网络服务组件_第6张图片

4.2 Route Table

路由表包含一组称为“路由”的规则,它们用于确定将网络流量从您的 VPC 发送到何处。您可以将子网与特定路由表显式关联。否则,子网将与主路由表隐式关联。

路由表中的每个路由都指定了您希望将流量传输到的 IP 地址范围(目的地)以及发送流量所通过的网关、网络接口或连接(目标)。

网关路由表 — 与互联网网关或虚拟私有网关关联的路由表。

要使子网能够通过互联网网关访问 Internet,请将以下路由添加到子网路由表中。路由的目的地为 0.0.0.0/0,表示所有 IPv4 地址。目标是连接到您的 VPC 的互联网网关。

目标 目标
0.0.0.0/0 igw-id

创建两个路由表,将其命名为RT1和RT2。

对于RT1,打开“路线选项卡”,然后单击“编辑路线”。添加目标为0.0.0.0/0的路由,目标是刚创建的互联网网关。

这意味着0.0.0.0/0将其他流量引导到互联网网关,以便它可以访问互联网。单击“保存路由”,然后转到“子网关联选项卡”。

AWS - 网络服务组件_第7张图片

单击“编辑子网关联”并添加之前创建的名为Ellen-subnet-public-01的子网
AWS - 网络服务组件_第8张图片
这就是如何使子网公开;将它与一个路由表关联,该路由表的目的地是互联网网关。

总结

当VPC中的子网中的实例能够访问internet时,需要执行以下操作。

创建 internet gateway ,并将其attach到VPC中

将路由添加到subnet的route table 中,将internet绑定的流量定向到internet网关。

确保子网中的实例具有全局唯一的IP地址(公共IPv4地址、弹性IP地址或IPv6地址)。

确保network access control lists和security group规则允许相关流量进出您的实例。

你可能感兴趣的:(云服务,aws,云计算)