为什么我无法从我的 PC 连接到新的 AWS Aurora Serverless 实例?

Mar*_*ark 3 amazon-ec2 amazon-web-services amazon-rds amazon-vpc

尝试设置一个普通的 AWS RDS Aurora Serverless 实例。

现在,我只想直接从我的 PC 连接到它作为健全性检查,但我无法这样做。每次我通过 连接时$ mysql,它都会等待几分钟。然后我得到:

$ mysql -h <MY-DATABASE>.cluster-deadbeef.us-west-1.rds.amazonaws.com -P 3306 -u admin -p
ERROR 2003 (HY000): Can't connect to MySQL server on '<MY-DATABASE>.cluster-deadbeef.us-west-1.rds.amazonaws.com' (60)
Run Code Online (Sandbox Code Playgroud)

(nc也只是超时)

看起来我在某处建立了网络连接,但我不确定在哪里。

这是整个设置(认为我已经包含了所有相关内容?):

  • 数据库实例:

    $ aws rds describe-db-clusters --output json | jq '.DBClusters[0] | {AvailabilityZones, DBSubnetGroup, VpcSecurityGroups}'
    {
      "AvailabilityZones": [
        "us-west-1c",
        "us-west-1b"
      ],
      "DBSubnetGroup": "default-vpc-0165fd69fae5d2569",
      "VpcSecurityGroups": [
        {
          "VpcSecurityGroupId": "sg-051e6ad0fe8837a56",
          "Status": "active"
        }
      ]
    }
    
    Run Code Online (Sandbox Code Playgroud)
  • 专有网络:

    $ aws ec2 describe-vpcs --output json | jq '.Vpcs[0] | {VpcId, CidrBlock, CidrBlockAssociationSet}'
    {
      "VpcId": "vpc-0165fd69fae5d2569",
      "CidrBlock": "10.0.0.0/16",
      "CidrBlockAssociationSet": [
        {
          "AssociationId": "vpc-cidr-assoc-0fe35851049a94f32",
          "CidrBlock": "10.0.0.0/16",
          "CidrBlockState": {
            "State": "associated"
          }
        }
      ]
    }
    
    Run Code Online (Sandbox Code Playgroud)
  • VPC 子网:

    $ aws ec2 describe-subnets --output json | jq '.Subnets[] | {AvailabilityZone,AvailabilityZoneId,CidrBlock,VpcId}'  
    
    {
      "AvailabilityZone": "us-west-1c",
      "AvailabilityZoneId": "usw1-az1",
      "CidrBlock": "10.0.1.0/24",
      "VpcId": "vpc-0165fd69fae5d2569"
    }
    {
      "AvailabilityZone": "us-west-1b",
      "AvailabilityZoneId": "usw1-az3",
      "CidrBlock": "10.0.0.0/24",
      "VpcId": "vpc-0165fd69fae5d2569"
    }
    
    Run Code Online (Sandbox Code Playgroud)
  • 安全组:

    是的,目前完全开放,仍然无法连接:(

    $ aws ec2 describe-security-groups --output json | jq '.SecurityGroups[]'
    {
      "IpPermissions": [
        {
          "IpProtocol": "-1",
          "IpRanges": [
            {
              "CidrIp": "0.0.0.0/0"
            }
          ],
          "Ipv6Ranges": [
            {
              "CidrIpv6": "::/0"
            }
          ],
          "PrefixListIds": [],
          "UserIdGroupPairs": [
            {
              "GroupId": "sg-051e6ad0fe8837a56",
            }
          ]
        },
        {
          "FromPort": 3306,
          "IpProtocol": "tcp",
          "IpRanges": [
            {
              "CidrIp": "0.0.0.0/0"
            }
          ],
          "Ipv6Ranges": [
            {
              "CidrIpv6": "::/0"
            }
          ],
          "PrefixListIds": [],
          "ToPort": 3306,
          "UserIdGroupPairs": []
        }
      ],
      "GroupId": "sg-051e6ad0fe8837a56",
      "IpPermissionsEgress": [
        {
          "IpProtocol": "-1",
          "IpRanges": [
            {
              "CidrIp": "0.0.0.0/0"
            }
          ],
          "Ipv6Ranges": [],
          "PrefixListIds": [],
          "UserIdGroupPairs": []
        }
      ],
      "VpcId": "vpc-0165fd69fae5d2569"
    }
    
    Run Code Online (Sandbox Code Playgroud)
  • 路线表:

    $ aws ec2 describe-route-tables --output json | jq '.RouteTables[]'   
    {
      "Associations": [
        {
          "Main": true,
          "RouteTableAssociationId": "rtbassoc-0aebc4a882b0cd2a5",
          "RouteTableId": "rtb-0ce6ee26652736941",
          "AssociationState": {
            "State": "associated"
          }
        },
        {
          "Main": false,
          "RouteTableAssociationId": "rtbassoc-047d54469da606a50",
          "RouteTableId": "rtb-0ce6ee26652736941",
          "SubnetId": "subnet-0744475e288c0424c",
          "AssociationState": {
            "State": "associated"
          }
        },
        {
          "Main": false,
          "RouteTableAssociationId": "rtbassoc-08c5ea54642014c95",
          "RouteTableId": "rtb-0ce6ee26652736941",
          "SubnetId": "subnet-0b9c99ff38b860725",
          "AssociationState": {
            "State": "associated"
          }
        }
      ],
      "RouteTableId": "rtb-0ce6ee26652736941",
      "Routes": [
        {
          "DestinationCidrBlock": "10.0.0.0/16",
          "GatewayId": "local",
          "Origin": "CreateRouteTable",
          "State": "active"
        },
        {
          "DestinationCidrBlock": "0.0.0.0/0",
          "GatewayId": "igw-0f8ad7dfe1eaa0c67",
          "Origin": "CreateRoute",
          "State": "active"
        }
      ],
      "VpcId": "vpc-0165fd69fae5d2569",
    }
    
    Run Code Online (Sandbox Code Playgroud)

我错过了什么?

谢谢!!

Adi*_*iii 5

现在,我只想直接从我的 PC连接到它

您无法从本地系统访问 serverless-DB,它只能在 AWS 网络内访问。

您可以通过 EC2 实例配置ssh-tunnel以访问无服务器数据库或使用在同一 VPC 中运行的 VPN。

由于 Aurora Serverless 数据库集群没有可公开访问的终端节点,因此您的 MyClusterName 只能从同一 VPC 中访问

配置连接无服务器-mysql-database-aurora

  • 哦,哇,我完全错过了这个。(在用户指南中没有明显看到这一点?https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.Connecting.html)谢谢! (2认同)