【问题标题】:Connecting to Amazon RDS instance through EC2 instance using MySQL Workbench Security groups使用 MySQL Workbench 安全组通过 EC2 实例连接到 Amazon RDS 实例
【发布时间】:2018-12-15 15:43:06
【问题描述】:

我很难将 mysql Workbench 连接到 RDS。我联系了亚马逊支持,他们告诉了我这个

“我已经查看了 EB 环境和 SG 的配置,它们现在处于良好状态,唯一剩下的项目,因为我看到它无法远程连接到 RDS DB,SG sg- 882213c3 需要添加另一个规则以允许从计算机与 mysql 客户端连接。也许,允许 0.0.0.0/0 到 TCP 端口 3306 以进行临时访问或从计算机的源 IP 访问。"

所以我做的是这个

但连接仍然失败

前面的步骤是

我创建了名为east-mysql2-instance1 的新数据库实例。对于 east-mysql2-instance1 安全组设置为 rds-launch-wizard (sg-882213c3),我确实将入站修改为 Source sg-882213c3 (rds-launch-wizard)。但它不会让我将类型更改为 Mysql/Aurora 它停留在自定义 TCP 规则。

对于 EC2 实例,我有 2 个正在运行的实例,并且我将两个安全组都更改为
rds-launch-wizard 和 awseb-e-bdbjjgxvzd-stack-AWSEBSecurity

我终止了我的旧环境并创建了一个名为 Borroup-env-1 的新环境,我将环境的 EC2 安全组更改为 awseb-e-bdbjjgxvzd-stack-AWSEBSecurityGroup-1PTJG896MEOYR 和 rds-launch-wizard。 我更改了环境属性并添加了 RDS_DB_NAME、RDS_HOSTNAME、RDS_PASSWORD、RDS_PORT、RDS_USERNAME

【问题讨论】:

    标签: mysql amazon-web-services amazon-ec2 amazon-rds


    【解决方案1】:

    从您的第二个屏幕截图看来,您正在设置的连接是:

    1. 从 Mac 桌面通过 SSH 连接到 ec2 实例
    2. 从 ec2 实例连接到 RDS

    如果这是您想要实现的情况,我不会留下允许来自 0.0.0.0/0 的 3306 的规则。这允许世界上的任何 IP 地址连接到端口 3306 - 一个众所周知的端口。此外,该建议似乎建议将该规则针对 RDS 实例? Overkill - 只需要允许从您的 EC2 实例或其子网访问。

    我要采取的第一步是在终端上使用 SSH 来验证您是否可以通过 SSH 从您的 mac 连接到 EC2 实例 - 如果这不起作用,则无需查看 EC2 和 RDS 之间的 SG 和规则。一旦工作正常,您就可以继续解决从 ec2 到 RDS 的连接问题。正如 John 上面提到的,如果 RDS 和 EC2 在同一个 VPC 中,您可以设置一个 SG,允许从 EC2 所在的子网访问 RDS 实例。

    作为替代解决方案,您还可以设置为允许直接访问 RDS 实例,而无需通过 EC2。请参阅此处的公共可访问性和子网要求:https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_VPC.WorkingWithRDSInstanceinaVPC.html 取决于您想要什么样的设置...

    如果 EC2 和 RDS 不在同一个 VPC 但在同一个区域,您可能需要查看设置 VPC 对等:https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/vpc-peering.html 如果他们的 EC2 是 RDS 不在同一个区域或同一个 VPC 中,您可能需要设置区域间 VPC 对等互连:https://aws.amazon.com/about-aws/whats-new/2017/11/announcing-support-for-inter-region-vpc-peering/

    【讨论】:

      【解决方案2】:

      听起来您希望从 Amazon EC2 实例连接到 Amazon RDS 实例。假设它们都在同一个 VPC 中,最简单的配置方法是:

      • 创建一个 App-SG 安全组并将其与 EC2 实例 关联。授予您登录/使用实例所需的任何访问权限。
      • 创建 RDS-SG 安全组并将其与 RDS 数据库关联。允许App-SG安全组在端口 3306 (MySQL/Aurora) 上进行入站访问。

      这基本上表示任何与 App-SG 关联的资源都将被允许访问与 RDS-SG 关联的任何资源。

      如果这不起作用,则需要配置其他东西(除了安全组)。

      【讨论】:

        猜你喜欢
        • 2013-10-08
        • 2019-04-03
        • 2016-08-31
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-05-02
        • 1970-01-01
        • 2014-02-17
        相关资源
        最近更新 更多