AWS – VPC和网络介绍
VPC ( Virtual Private Cloud )
– 私有网络部署云上服务器,一个VPC是无法跨region的,所以VPC都是在region level
Subnets
– 允许在 VPC 内对网络进行分区, 基本都是一个AZ一个subnet
Public Subnet
– 允许外网访问的subnet
– 需要链上Internet Gateway才能链接外网
Private Subnet
– 不允许外网访问,只能内网访问的subnet而已
Internet Gateway
– 有了这个才能够链接外网
NAT Gateway
– 有了这个,和链接Internet Gateway才能够让Private subnet的服务器上网

Route Tables
– 每个VPC可以关联一个或多个Route Table
– 定义subnet之间对互联网的访问,就需要用到route table
– 可以绑定NAT Gateway和Internet Gateway让所属的subnet能够访问外网
Security Group
– 虚拟防火墙, 可以定义允许特定的端口inbound和outbound
– 多个EC2可以绑定到同一个Security Group
– stateful
Network Access Control List (NACL)
– 可以绑定在subnet底下所有的服务器
– 支持允许特定的端口,和拒绝特定的端口
– stateless

VPC Peering
– 让不同的VPC通过Aws内网得到互相链接
– 必须确保VPC底下subnet的CIDR没有冲突才能互相链接
– 以下图的VPC B和VPC C必须建立peering才能连接上。如果B和C不peering的话,那么VPC C是无法通过VPC A链接到VPC B的

VPC Flow Log
- AWS VPC Flow Logs是一项用于监控和分析虚拟私有云(VPC)中网络流量的服务。
- 它记录了通过VPC的网络流量事件,并为每个网络接口或子网创建一个日志流。
- 每个日志流包含了详细的网络流量信息,如源IP地址、目标IP地址、使用的协议、端口号和数据包数量等。
- 它还可以包含其他有用的元数据,如时间戳和流量事件的状态。
- VPC Flow Logs对于进行网络流量监控、分析和故障排查非常有帮助。
- 通过分析VPC Flow Logs,您可以了解网络流量模式、通信来源和目标之间的交互。
- 您可以将VPC Flow Logs日志流定向到Amazon S3存储桶、Amazon CloudWatch日志组或Amazon Elasticsearch Service中,以进行进一步的处理和分析。
- 这些日志数据可以帮助您进行安全审计、网络性能优化和故障排除。
- 使用适当的工具和技术,您可以搜索、查询和可视化VPC Flow Logs数据,从而更好地管理和保护您的VPC网络。
VPC Endpoint
- AWS VPC Endpoint是一种功能,它为您的VPC提供了一种直接访问AWS服务的方式,无需通过公网连接。
- 它允许您在VPC内部与AWS的特定服务进行通信,如S3存储桶、DynamoDB数据库等。
- VPC Endpoint通过在VPC内部创建一个虚拟设备来实现,该设备充当您的应用程序和目标AWS服务之间的桥梁。
- 使用VPC Endpoint,您可以避免将数据流量发送到公共Internet,从而提高安全性,并减少与AWS服务之间的延迟。
- VPC Endpoint在VPC的子网中进行配置,以便您可以选择与哪些AWS服务建立直接的私有连接。
- 它们提供了一个更可靠和可控的连接方式,使您的应用程序能够安全地访问所需的AWS服务,同时减少了与外部Internet的交互。
- 通过使用VPC Endpoint,您可以将数据保持在VPC的安全环境中,并利用AWS服务的功能和弹性,而无需面临与公共Internet连接相关的风险和限制。
- VPC Endpoint是一种提供方便、安全和高效的方式,使您的应用程序能够直接与AWS服务进行通信,提升了您的云架构的性能和安全性。

AWS PrivateLink ( VPC Endpoint Services )
– 举例如果你有个应用在自己的AWS VPC当中,但是你需要暴露给1000个VPC而且需要用到私人访问到你的VPC当中,这使用无需做那么多的VPC peering,用这个服务就可以了
– 无需使用VPC peering, NAT, internet gateway, route table
– 需要使用到Network Load Balancer和Elastic Network Interface

Site To Site VPN
– 使用公网把数据进行加密,然后从自己服务器或本地连接到云上的VPC
– 方便部署
– 本地必须部署Customer gateway和云端VPC当中必须部署Virtual Private Gateway,那么才能够使用Site to Site VPN连接

AWS VPN Cloud Hub
– 多个CGW 链接到同一个VGW 那么不同的CGW就能互联
– 如果有多个CGW可以低成本VPN互相链接

Direct Connect
– 和VPN很类似,但是并不是使用公网,而是部署一个物理的网线从你本地连接至AWS VPC,需要花时间部署
– 相对VPN更加的安全和private一点

以下是Direct Connect链接的架构图

如果想要on prem 连接使用Direct Connect连接多个VPC的话。那么on prem就需要使用Direct Connect 连接到private virtual interface 最终 Direct Connect Gateway是中间点,那么就能一对多连接多个region不同的VPC了

Direct Connect 虽然是私连的,但是默认是不加密的,如果需要更高的安全度的话,可以在Direct Connect的基础之上搭建VPN连接。因为VPN提供了IPsec-encrypted private connection

Direct Connect 的高可用可以单个Region 使用多个线路连接多个On Prem

Direct Connect 最高弹性的高可用方案如下。单个region,使用多条线路连接单个On Prem

AWS Client VPN
– 允许本机电脑使用这服务通过外网访问到AWS VPC当中
– 如果VPC底下有 private subnet 的服务器也能够访问
– 如果这个VPC同时有使用 Site to Site VPN 连接本地机群的话,也能够一并连接

AWS Transit Gateway
– 一对多的概念,所有的VPC连接到这个服务的都能互相访问
– 包括了使用DirectConnect或是Site to Site VPN连接到这个服务的本地机群
– 可以连接多个Region的VPC
– 在route table当中可以限制哪个VPC可以访问哪个VPC

如下图,如果使用多个VPC Peering连接多个VPC的话,那么设置将会非常复杂,不利于维护管理,所以非常建议使用AWS Transit Gateway

通常使用VPN Site to Site Connection的话都有宽带的上限,如以下的架构图,可以借用transit gateway来增加宽带的上限,由于Transit Gateway可以连接多个VPN或VPC的特性,单条VPN宽带达到上限之后,可以再创建多条VPN宽带。


Direct Connect Gateway
– 跨区域连接:Direct Connect Gateway 可以支持将单一的 Direct Connect 连接跨多个 AWS 区域使用,避免了对每个区域配置独立 Direct Connect 的需求,节省成本。
– VPC 的集中管理:用户可以通过 Direct Connect Gateway 将多个 VPC 连接到同一个 Direct Connect 连接,实现对多个网络资源的集中管理。
– 安全和高性能的私有连接:Direct Connect Gateway 提供高带宽、低延迟的专有网络连接,数据在传输时不通过公共互联网,提升了数据传输的安全性和可靠性。
– 兼容性:Direct Connect Gateway 支持与 AWS Transit Gateway 配合使用,以进一步扩展网络连接和管理功能。通过这种集成,可以实现对多个 VPC、Direct Connect 连接和本地网络的全局路由。

VPC – Traffic Mirroring
1. 安全监控和威胁检测
- 检测异常流量:流量镜像可以帮助检测到不正常或恶意的网络行为,例如数据泄露、未经授权的访问或异常流量高峰。
- 实时入侵检测:镜像的流量可以送到入侵检测系统 (IDS) 或防火墙等安全设备,用于实时识别潜在的攻击,帮助及时阻止威胁。
- 合规要求:某些行业要求公司记录和监控所有进出网络的流量,以确保遵守数据隐私和安全标准。流量镜像帮助捕获所有通信记录,从而满足这些合规需求。
2. 性能监控和优化
- 分析瓶颈:通过流量镜像,可以分析服务的延迟、带宽占用以及负载均衡的效果。这有助于识别性能瓶颈和改进系统架构。
- 监控应用行为:了解应用的流量模式和通信方式,有助于优化网络资源分配、提高响应速度和减少网络拥塞。
3. 故障排查
- 快速定位问题:在网络连接出现问题时,流量镜像能让管理员在独立的环境中分析数据包,从而更快速地找到问题的根源。
- 无干扰调试:由于是复制的流量,排查和调试可以在不干扰生产环境的情况下进行。这避免了对实际用户和生产数据的影响。
4. 研发和测试
压力测试:在上线前,通过真实流量副本来测试系统的性能和稳定性,能更准确地预测系统的表现。
回放真实流量:研发团队可以使用镜像的流量来模拟真实流量场景,测试新应用和系统的行为。


降低网络费用
– 根于以下的架构图,如果使用NAT访问S3的话需要付出比较高的费用
– 如果使用Gateway VPC Endpoint 连接S3费用的话,那么费用可以减低至1美分

经验分享:
– NetworkAccessControlList(NACL)是把空subnet的交通规则,能够设置 allow和deny
– SecurityGroup (SG) 是EC2的防火墙,是控制虚拟机的,只能设置allow的port,无法设置deny
– SecurityGroup是stateful的所以验证过一次了之后,第二次就不会再进行验证

