问题标签 [aws-nat-gateway]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
17 浏览

amazon-vpc - 在私有子网中关联路由表时的停机时间

我想将私有子网关联到新路由表。在这个过程中会有停机时间吗?

我想用新的路由表替换的原因是我们希望在每个 AZ 中都有一个 NAT。目前 NAT 设备由所有 AZ 中的私有子网共享,我们希望将其更改为每个 AZ 有一个 NAT。为此,我发现我们必须为每个 AZ 添加一个包含 NAT 路由的新路由表,并将其与私有子网相关联。那么在用新的路由表替换旧的路由表时,会不会有停机时间呢?

0 投票
1 回答
59 浏览

amazon-web-services - 公共子网中的多个 EC2 实例应具有相同的传出流量 IP 地址

我有一个托管在公共子网中的 EC2 实例上的应用程序。要将此应用程序与合作伙伴集成,我们需要在合作伙伴的防火墙上将 EC2 实例的公共 IP 地址列入白名单。

我想以这样一种方式配置应用程序的自动扩展,即我的应用程序 EC2 实例的传出流量应该来自同一个 IP 地址,只需要在合作伙伴端列入白名单。

对于私有子网,我知道 NAT 网关是一种解决方案。

但是对于公共子网中的实例,如何实现呢?任何解决方案/建议将不胜感激。

0 投票
1 回答
45 浏览

amazon-web-services - 如何使用 VPN 从 AWS Lambda 发送数据

我有一个 AWS lambda 函数,可以将数据发送到 AWS 之外的服务器。

服务器将开始使用 VPN,因此我需要在我的 AWS 账户中定义一个 VPN 客户端。

是否可以让我的 AWS Lambda 与 VPN 一起使用?

如果不是,最好和最简单的选择是什么(例如,使用 VPn 设置 EC2 以将正常流量转发到 VPN 流量,使用 VPN 定义 nat 实例等)?

0 投票
1 回答
28 浏览

node.js - AWS Lambda 上的 Dropbox API 集成获取 FetchError (ETIMEDOUT)

我有一个在 AWS Lambda 上运行的 node.js 应用程序。Lambda 与 VPC 连接。它使用静态 IP 上网。我使用 v10.23.0 dropbox-sdk-js。它似乎总是在我的本地运行,但有时在 lambda 上运行,有时会出现获取错误。

我的代码是这样的:

错误日志:

0 投票
0 回答
41 浏览

aws-lambda - AWS - 尽管 PrivateLink 仍需要 NAT 网关

语境:

我有以下网络设置(简化)用于在 VPC 中运行 lambda:

  • 具有 IGW 和 NAT 的公共子网
  • 我的 lambda 在其中执行的私有子网
  • 用于访问 S3 存储桶的 S3 VPC 终端节点

我可以在我的 VPC 中执行 lambda 并观察正确的行为。我可以访问公共互联网,并使用我的 NAT 的 EIP 进行呼叫。

我使用 lambda 调用 Snowflake DWH 并且可以正确地将我的 lambda IP 列入白名单。

现在我在我的 VPC 和 Snowflake VPC 之间进行了 PrivateLink 设置。不同的单独步骤(设置 VPC 接口、托管区域、CNAMES)似乎有效。

如果我通过我的 Lambda 使用专用 PrivateLink URL 执行调用,我会正确地看到在我的 VPC 的 CIDR IP 范围之外执行的调用。

问题:

似乎仍然需要 NAT 才能使 lambda 工作。如果我删除它,则 lambda 开始超时。我不懂为什么。我的 lambda 没有执行公共互联网呼叫。只有对 Snowflake 和 S3 的调用,它们现在都设置了 VPC 端点。如前所述,我看到来自预期 IP 范围的调用。

在成功建立 VPC 之间的 PrivateLink 之后,我假设(由文档和 PrivateLink 使用背后的一般理性支持)不再需要 NAT。

问题:

任何人都可以确认:不再需要 NAT 吗?任何人都可以提供假设为什么它在我的情况下可能无法按预期工作吗?

我现在多次查看设置指南,一切似乎都正确完成。如前所述,呼叫似乎通过正确的路线进行,但我仍然想了解为什么 NAT 行为与我预期的不同。

0 投票
1 回答
112 浏览

amazon-web-services - 移除不必要的 AWS 资源,VPC + NAT 网关

我最近通过 CDK 在 AWS 上设置了一个应用程序。该应用程序由一个 Dockerized nodejs 应用程序组成,该应用程序连接到一个 RDS 实例,并且还具有一个 Redis 缓存层。在部署应用程序几天后,即使流量很小,成本也比我预期的要高得多。通过成本浏览器查看后,看起来一半的成本来自 NAT 网关。

在我当前的设置中,我创建了两个 VPC。一个用于应用程序堆栈,另一个用于 CodePipeline。我需要为管道添加一个,因为如果没有它,我在 CodeBuildAction 步骤中尝试拉取 Docker 映像时会遇到速率限制。

我对网络位不是很满意,但我觉得涉及到额外的资源。管道 VPC 具有三个 NAT 网关和三个 EIP。这些最终只是坐在那里等待下一次部署,这似乎是一种巨大的浪费。似乎为在 CDK 中附加 VPC 的每个构造分配了一个新的网关 + EIP。我可以让它重复使用同一个吗?有没有一种替代方法可以完全添加 VPC 并且不受 Docker 的速率限制?

我还发现 NAT 网关与我当前的 Fargate 任务成本一样昂贵,这非常令人惊讶(我可能只是天真)。是否有替代方案可以满足我的目的,但成本要低一些?

无论如何,这是我的两个堆栈:

任何意见是极大的赞赏。

0 投票
0 回答
33 浏览

amazon-web-services - 在 AWS Lambda 函数中查找执行子网

我有以下情况:

我有一个需要从 Lambda 函数调用的外部 API。外部 API 有一些限制:

  • 需要一个与调用者的 IP 地址绑定的 API 密钥
  • 仅允许 1:1(IP:API 密钥)映射

我们的环境:

  • 为了保证冗余,我们在 3 个可用区域中有 3 个私有子网,通过 3 个 NAT 网关连接到互联网。
  • 如果我将 lambda 函数放入这 3 个子网中,它会随机调用 NAT 网关的 3 个 EIP。
  • 所以我需要在 lambda 中查找当前子网。根据这些信息,我可以将指定 EIP 的 API 密钥用于外部 API 请求。

所以我的问题:

如何确定我的 lambda 函数当前在哪个子网中运行?

正如我不幸检查的那样,上下文不包含此信息(根据文档)这不能回答问题: Find subnet of a lambda running in a vpc 因为它返回包含所有子网的配置而不是当前一个

0 投票
0 回答
31 浏览

amazon-eks - 适用于微服务的 AWS EKS 静态 IP

请分享解决此问题的手册/视频/任何选项:“如何在安装了 istio 的 AWS EKS 集群中严格从一个 IP(即分配弹性 IP)使来自微服务之一的出站流量,以便在执行请求时从这个微服务'wget ifconfig.co'总是有相同的IP地址?” 另一个社区建议使用 nat gw 或在具有白色 IP 的特定节点上。我正在寻找最佳解决方案以及如何实施此任务的好例子。我在此任务中的目标:为我的客户端提供一个 EIP(静态 IP),它将将该 IP 添加到其防火墙的入站规则中,并且只允许来自该单个 IP 的流量。

0 投票
1 回答
13 浏览

amazon-web-services - 如果我们有一个连接到公共子网的 NAT 网关,我们是否应该使用带有端口号规则的自定义 NACL

假设我们有一个基本架构,其中我们有带有两个子网一个私有和一个公共)的 VPC。私有子网通过位于公共子网中的NAT 网关连接到 Internet 。(如下图所示

现在假设我们在公共子网中实现了一个网络 ACL 。拒绝其中的某些端口是否明智?

我问的原因是因为我了解到 NAT 使用端口号将许多私有 IP 连接到单个公共 IP(在我们的例子中是弹性 IP,它连接到 NAT),所以 NACL 不会产生问题。

这是我学到的关于 Nat 函数的知识 - https://www.youtube.com/watch?v=01ajHxPLxAw

在此处输入图像描述