gpt4 book ai didi

amazon-web-services - 从未通过安全组的 Docker 容器中访问 RDS?

转载 作者:IT老高 更新时间:2023-10-28 12:41:48 25 4
gpt4 key购买 nike

我正在尝试在 docker 容器内运行一个使用带有 EC2 的 RDS 数据库的网络服务器。

我已设置安全组,因此允许 EC2 主机的角色访问 RDS,如果我尝试直接从主机访问它,一切正常。

但是,当我在主机上运行一个简单的容器并尝试访问 RDS 时,它会被阻止,就好像安全组不允许它通过一样。经过一堆试验和错误之后,似乎容器请求确实不是来自 EC2 主机,所以防火墙说不。

我可以通过在 docker 容器上设置 --net=host 在短期内解决这个问题,但是这破坏了很多很棒的 docker 网络功能,比如能够映射端口(即,现在我需要确保容器的每个实例手动监听不同的端口)。

有没有人找到解决这个问题的方法?如果您实际使用任何 AWS 资源,那么在 AWS 中运行容器似乎是一个很大的限制。

最佳答案

是的,容器确实会访问 RDS 的公共(public) IP。但是您不需要调整低级 Docker 选项以允许您的容器与 RDS 通信。 ECS集群和RDS实例必须在同一个VPC,然后可以通过安全组配置访问。最简单的方法是:

  1. 导航到 RDS 实例页面
  2. 选择数据库实例并深入查看详细信息
  3. 点击安全组 ID
  4. 导航到“入站”选项卡并选择“编辑”
  5. 并确保有一个 MySQL/Aurora 类型的规则和源自定义
  6. 在输入自定义源时,只需开始输入 ECS 集群的名称,安全组名称将自动为您填写

This tutorial has screenshots这说明了要去哪里。

全面披露:本教程介绍了来自 Bitnami 的容器,我为 Bitnami 工作。然而,这里表达的想法是我自己的想法,而不是 Bitnami 的意见。

关于amazon-web-services - 从未通过安全组的 Docker 容器中访问 RDS?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32893876/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com