微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

VPC 之外的 AWS Elasticache/Redis 访问?

如何解决VPC 之外的 AWS Elasticache/Redis 访问?

我有一个 lambda,我想在我的 VPC 之外运行以避免 NAT 成本。它需要在 VPC 内访问的唯一服务是 Elasticache 实例。我无法在我的 lambda 和 Elasticache 之间创建 VPC 端点,所以我不确定如何在不将我的 lambda 放入 VPC 并通过 NAT 的情况下连接到它。

如何连接到 VPC 外的 redis 实例?堡垒服务器?

解决方法

我认为在您的情况下有 3 种可能的解决方案:

  1. 就像上面一位人士所说的那样,在 EC2 上部署我们自己的 NAT 实例,而不是使用可能非常昂贵的 AWS NAT 网关。但因为您需要自己设置/维护和扩展 NAT 实例。
  2. 在VPC公有子网的EC2中部署一个proxy,即部署一个Nginx并将proxy_pass设置为VPC中的ElastiCache集群。通过这种方式,您在 VPC 外的 lambda 可以为 ElastiCache 请求调用 Nginx 弹性 IP。但是请考虑将 Network LB 置于 Nginx EC2 的自动缩放组之前以实现弹性。此解决方案的主要问题是安全性,您的 nginx 安全组需要打开 0.0.0.0/0 以进行 EC 访问(因为 VPC 外的 lambda 具有不同的公共 IP 并且本身没有安全组),请确保您启用传输中的加密和访问控制使用Redis 中的 AUTH 或 RBAC(例如,如果您的 EC 是 redis)
  3. 1 和 2 都涉及自己构建 EC2 实例,这会增加维护负担。我认为最好的解决方案是将您的 Lambda 函数分解为两个函数,一个处理 EC 调用(Lambda A),另一个处理 Internet API 调用(Lambda B),将 Lambda A 放在 VPC 中,同时将 Lambda B 保留在 VPC 之外,以及只需使用调用 API 从 A 调用 Lambda B,反之亦然。这应该是最好的解决方案,但在编码方面涉及更多工作。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。