Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services 跨帐户VPC对等连接到RDS_Amazon Web Services_Amazon Ec2_Amazon Rds_Amazon Vpc_Aws Security Group - Fatal编程技术网

Amazon web services 跨帐户VPC对等连接到RDS

Amazon web services 跨帐户VPC对等连接到RDS,amazon-web-services,amazon-ec2,amazon-rds,amazon-vpc,aws-security-group,Amazon Web Services,Amazon Ec2,Amazon Rds,Amazon Vpc,Aws Security Group,我有两个AWS帐户(A和B)。它们每个都有一个VPC,没有重叠的CIDR块,它们都位于同一区域。我已成功地在它们之间创建了VPC对等连接(该连接处于活动状态)。请求者和接收者都允许远程专有网络dns解析 我已在每个VPC表中指定将对方的VPC cidr块路由为目标,并将对等连接作为目标 我有一个EC2实例运行在AccountA的VPCA内的公共子网中,连接到安全组SecurityGroupA。SecurityGroupA启用VPCA默认安全组中所有来源的入站,以及AccountBId/Secur

我有两个AWS帐户(A和B)。它们每个都有一个VPC,没有重叠的CIDR块,它们都位于同一区域。我已成功地在它们之间创建了VPC对等连接(该连接处于活动状态)。请求者和接收者都允许远程专有网络dns解析

我已在每个VPC表中指定将对方的VPC cidr块路由为目标,并将对等连接作为目标

我有一个EC2实例运行在AccountA的VPCA内的公共子网中,连接到安全组SecurityGroupA。SecurityGroupA启用VPCA默认安全组中所有来源的入站,以及AccountBId/SecurityGroupB的入站和所有出站

我有一个RDS postgres实例运行在AccountB的VPCB中,连接到安全组SecurityGroupB。SecurityGroupB在AccountAId/SecurityGroupAId的端口5432(postgres默认端口)上启用入站TCP

运行aws ec2 descripe security group references--group id SecurityGorupAId时,我得到

{
    "SecurityGroupReferenceSet": [
        {
            "GroupId": "SecurityGroupAId",
            "ReferencingVpcId": "VPCBId",
            "VpcPeeringConnectionId": "pcx-XXXXXXXXXXXXXXXXX"
        }
    ]
}

这似乎表明安全组被正确引用但是当尝试从EC2实例连接到RDS实例时,我收到一个连接超时错误。

RDS数据库是否设置为
public Available=Yes
?是的,但psql超时错误显示的RDS ip对应于它的一个VPC地址,而不是公共地址。因此,我假设它正确地尝试通过对等连接访问它?我的实际用例不是EC2实例,而是ECS计划的任务被赋予更改公共IP,因此我尝试不更新RDS安全组以允许入站规则中的另一个公共IP。如果这是使用公共可用RDS实例的唯一方法,我将尝试为任务分配特定的公共IP:)当您尝试在VPC内解析RDS DNS名称时(例如使用EC2实例中的
nslookup
),它解析为公共IP地址还是专用IP地址?如果解析为公共IP地址,则应将其设置为
public Accessible=No
,以便流量保持在VPC内。RDS上引用EC2安全组的安全组将需要专用IP地址。您可以通过临时更改RDS安全组来测试这一点,以允许从任何地方进行连接,并查看连接是否成功。EC2将VPC内的RDS DNS名称正确解析为专用IP。现在一切都好了。它似乎可以在公共访问设置为“否”或“是”的情况下工作。问题是我在为测试目的重新创建对等连接时忘记更新RDS VPC路由表(hum…)。谢谢你的建议!