关于AWS网络架构的思考

news2025/1/18 1:45:29

目录:
AWS概述
EMR Serverless
AWS VPC及其网络
关于AWS网络架构的思考

在AWS K8S中部署的业务,有不同的流量路径。

流量进入

客户端请求

普通的客户端流量流向从前到后是:

  1. 客户端
  2. 公司网关(endpoint)
  3. 业务的Endpoint Service
  4. Load Balancers(监听80和443)
  5. TargetGroupA(将LB的80端口请求转发到端口A),targetGroupB(将LB的443端口请求转发到端口B)。TargetGroup的实例是需要通过 Auto Scaling Group 来注册的。
  6. Ingress Nginx,该服务是Load Balancer类型,内部 endpoints 80,443,A 和 B 四个端口,外部 endpoints 是 80 和 443。
  7. Ingress 通过路由规则将流量转发给业务service,再经过4层的负载均衡将流量发给pod。

通过以上步骤客户端流量到达了服务端。其中1~6部都是公司通用平台负责完成,业务只需要定义好ingress路由规则即可。

网络请求

对于其他第三方从网络上进入的流量,需要通过 API Gateway 来转发到内部网络。其流量从前到后的路径是:

  1. API GW
  2. VPC Link (内含NLB)
  3. NLB(Network Load Balancer) 监听 80 端口
  4. TargetGroup(将LB的80端口请求转发到端口C),TargetGroup实例由Auto Scaling Group 注册。
  5. 业务Service改为NodePort类型,监听所有target group实例上C端口的请求。

通过以上步骤,网络流量就可以达到服务端。这部分全部都由业务方自己管理,其中第4步中 ASG 和 客户端请求的第5步的 ASG 是相同的,业务方只需要将其关联上就行:resource "aws_lb_target_group_attachment" "tg_http_attachment"

相同VPC内的其他服务

对于相同VPC内的其他服务,通过 Route53 将通过域名发出的请求转发到服务的 Endpoint,然后进入客户端请求的第3步。

流量到互联网

对于出去的流量,在 AWS 中有两种方式,一种是通过 NAT 出,一种是通过 Internet Gateway 直接出。

普通的 VPC 的子网是私有子网,不能直接与 Internet 通信,因此需要通过 NAT 转发到网络上。具体请参考博主另一篇文章 AWS VPC 网络。

由于流量从 NAT 出去的,所以网络的出口 ip 即 NAT 的 ip 地址。

如果 VPC 的子网是公有的,则可以直接与 Internet 通信,无需经过 NAT 转换。网络出口地址是 EC2 实例的 公有 ip 地址。

NAT 局限

正常服务到公网的流量走NAT就够了,但是如果服务需要大量建立与第三方某域名的连接,如代理服务,可能会出现 NAT 并发连接错误。举个例子来说,假设现在代理服务需要建立60万个连接来访问腾讯的某个域名,而该域名只能解析出5个ip地址。默认情况下,公有 NAT 网络只能关联2个弹性IP地址,每个弹性ip地址最多支持与唯一目标(由目标ip,端口和协议组合标识)建立55000个并发连接。因此两个弹性ip与5个目标ip最多同时建立 55000 * 2 * 5 = 550000 个连接。

在这种情况下,NAT 就会出现并发连接错误,即使只有55万个连接,这些连接也不是平均分配到不同目标的,显然也会出现并发连接错误。此时经 NAT 转发网络请求的方案是有问题的,可以考虑直接使用公有子网来访问网络。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2278240.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【JavaScript】比较运算符的运用、定义函数、if(){}...esle{} 语句

比较运算符 !><> < 自定义函数&#xff1a; function 函数名&#xff08;&#xff09;{ } 判断语句&#xff1a; if(判断){ }else if(判断){ 。。。。。。 }else{ } 代码示例&#xff1a; <!DOCTYPE html> <html> <head><meta charset&quo…

centos 7 Mysql服务

将此服务器配置为 MySQL 服务器&#xff0c;创建数据库为 hubeidatabase&#xff0c;将登录的root密码设置为Qwer1234。在库中创建表为 mytable&#xff0c;在表中创建 2 个用户&#xff0c;分别为&#xff08;xiaoming&#xff0c;2010-4-1&#xff0c;女&#xff0c;male&…

【正则表达式】从0开始学习正则表达式

正则表达式&#xff08;英语&#xff1a;Regular Expression&#xff0c;在代码中常简写为regex、regexp或RE&#xff09; 一、推荐学习网站 正则表达式 – 语法 | 菜鸟教程 正则表达式30分钟入门教程 | 菜鸟教程 编程胶囊-打造学习编程的最好系统 二、必知必记 2.1 元字符…

【0x3D】HCI_Remote_Host_Supported_Features_Notification事件详解

目录 一、事件概述 二、事件格式及参数说明 2.1. HCI_Remote_Host_Supported_Features_Notification事件格式 2.2. BD_ADDR 2.3. Remote_Host_Supported_Features 三、事件作用 3.1. 设备特性沟通与理解 3.2. 功能协商与性能优化 3.3. 设备管理与配置更新 四、应用场…

天机学堂笔记1-网关拦截器获取用户信息保存到ThreadLocal

FeignClient(contextId "course", value "course-service") public interface CourseClient {/*** 根据老师id列表获取老师出题数据和讲课数据* param teacherIds 老师id列表* return 老师id和老师对应的出题数和教课数*/GetMapping("/course/infoB…

OpenAI推出首个AI Agent!日常事项自动化处理!

2025 年1月15日&#xff0c;OpenAI 正式宣布推出一项名为Tasks的测试版功能 。 该功能可以根据你的需求内容和时间实现自动化处理。比方说&#xff0c;你可以设置每天早晨 7 点获取天气预报&#xff0c;或定时提醒遛狗等日常事项。 看到这里&#xff0c;有没有一种熟悉的感觉&a…

关于Nvidia显卡在windows系统下存在部分软件屏闪/闪烁问题与解决方法

问题描述 部分软件GUI在使用时一直闪烁/闪屏&#xff0c;包括拖动侧栏与切换子页面时会留下残影。本人遇到发生该现象的桌面应用包括且不限于docker desktop, meta quest link, Vortex, Tabby Terminal等。 本人环境&#xff1a; 操作系统&#xff1a;windows11 显卡&#xf…

vue2配置跨域后请求的是本机

这个我来说明一下&#xff0c;因为我们公司的后端设置解决了跨域问题&#xff0c;所以我有很久没有看相关的内容了&#xff0c;然后昨天请求了需要跨域的接口&#xff0c;请求半天一直不对&#xff0c;浏览器显示的是本机地址&#xff0c;我以为是自己配置错了&#xff0c;后面…

[Qualcomm]Qualcomm MDM9607 SDK代码下载操作说明

登录Qualcomm CreatePoing Qualcomm CreatePointhttps://createpoint.qti.qua

ORB-SLAM2源码学习: Frame.cc: cv::Mat Frame::UnprojectStereo将某个特征点反投影到三维世界坐标系中

前言 这个函数是在跟踪线程中更新上一帧的函数中被调用。 1.函数声明 cv::Mat Frame::UnprojectStereo(const int &i) 2.函数定义 1.获取这个特征点的深度值。 const float z mvDepth[i];深度值由双目或 RGB-D 传感器获取。 在双目情况下&#xff0c;这个深度来自…

基于Piquasso的光量子计算机的模拟与编程

一、引言 在科技飞速发展的当下,量子计算作为前沿领域,正以前所未有的态势蓬勃崛起。它凭借独特的量子力学原理,为解决诸多经典计算难以攻克的复杂问题提供了全新路径。从优化物流配送网络,以实现资源高效调配,到药物分子结构的精准模拟,加速新药研发进程;从金融风险的…

本地部署Web-Check网站检测与分析利器并实现远程访问实时监测

文章目录 前言1.关于Web-Check2.功能特点3.安装Docker4.创建并启动Web-Check容器5.本地访问测试6.公网远程访问本地Web-Check7.内网穿透工具安装8.创建远程连接公网地址9.使用固定公网地址远程访问 前言 本文我们将详细介绍如何在Ubuntu系统上使用Docker部署Web-Check&#xf…

电子杂志制作平台哪个好

​作为一个热爱分享的人&#xff0c;我试过了好几个平台&#xff0c;终于找到了几款比较好用得电子杂志制作平台&#xff0c;都是操作界面很简洁&#xff0c;上手非常快的工具。 FLBOOK:这是一款在线制作H5电子画册软件&#xff0c;提供了各种类型的模板&#xff0c;可支持添加…

八 rk3568 android11 AP6256 蓝牙调试

一 经典蓝牙 经典蓝牙默认可以工作, 验证可以连接 蓝牙鼠标,键盘, 连接手机等等, 在 系统设置里打开蓝牙 ,扫描设备,配对连接即可。 注: 连接 ANDROID 手机的坑 1 手机连接之后空闲状态会断开 ,变成 配对的设备不是已连接,是正常,使用时又会自动 连接 2 手机传…

STM32-串口-UART-Asynchronous

一&#xff0c;发送数据 #include "stdio.h" uint8_t hello[]"Hello,blocking\r\n"; HAL_UART_Transmit(&huart1,hello,sizeof(hello),500); 二&#xff0c;MicroLIB-printf(" hello\r\n") #include "stdio.h" #ifdef __GNUC…

WEB攻防-通用漏洞_XSS跨站_权限维持_捆绑钓鱼_浏览器漏洞

目录 XSS的分类 XSS跨站-后台植入Cookie&表单劫持 【例1】&#xff1a;利用beef或xss平台实时监控Cookie等凭据实现权限维持 【例2】&#xff1a;XSS-Flash钓鱼配合MSF捆绑上线 【例3】&#xff1a;XSS-浏览器网马配合MSF访问上线 XSS的分类 反射型&#xff08;非持久…

HTML文章翻页功能

效果展示&#xff1a; 效果原理&#xff1a; 1、引入CDN 2、绘制文章翻页样式&#xff0c;以及自动分段 3、获取窗口宽高&#xff0c;计算出当前文章总分段&#xff0c;并实现分页 4、完整代码 <!DOCTYPE html> <html><head><meta charset"utf-8&qu…

jenkins-node节点配置

一.简述&#xff1a; Jenkins有一个很强大的功能&#xff1a; 即&#xff1a;支持分布式构建(jenkins配置中叫节点(node),也被称为slave)。分布式构建通常是用来吸收额外的负载。通过动态添加额外的机器应对构建作业中的高峰期&#xff0c;或在特定操作系统或环境运行特定的构建…

网络分析仪测试S参数

S参数的测试 一&#xff1a;S参数的定义 S参数&#xff08;Scattering Parameters&#xff0c;散射参数&#xff09;是一个表征器件在射频信号激励下的电气行为的工具&#xff0c;它以输入信号、输出信号为元素的矩阵来表现DUT的“传输”和“散射”效应&#xff0c;输入、输出…

【数据结构高阶】B-树

目录 一、常见的搜索结构 二、B树 2.1 B树的概念 2.2 B树插入数据的分析 2.3 B树的性能分析 2.4 模拟实现B树 2.4.1 B树节点的定义 2.4.2 B树数据的查找 2.4.3 B树节点的数据插入 2.4.4 B树的遍历 2.4.5 模拟实现B树实现的完整代码 三、B树 3.1 B树的概念 3.2 B树…