为什么在对等后无法从另一个 VPC 中的 EC2 实例连接 AWS RDS 实例
Why can't I connect AWS RDS instance from EC2 instance in another VPC after peering
我是运行Tableau Server 在我们VPC A 的EC2 实例上。同时,我在另一个VPC B 中创建了一个postgres RDS。现在我想在Tableau Server 和RDS 之间建立连接。 RDS VPC的CIDR为172.31.0.0/16,EC2 VPC的CIDR为10.0.0.0/16.
根据 A DB Instance in a VPC Accessed by an EC2 Instance in a Different VPC,我在 VPC A 和 VPC B 之间创建了对等互连,pcx-xyz123。此外,我还为 VPC 创建了以下路由 tables。
RDS VPC
Destination Target
172.31.0.0/16 local
10.0.0.0/16 pcx-xyz123
EC2 VPC
Destination Target
10.0.0.0/16 local
172.31.0.0/16 pcx-xyz123
两条路线 table 都是主要路线。虽然每个都有 0 个子网(不确定这是否重要)。
但是我仍然无法从 Tableau Server 连接 RDS。
这两个实例是由同一个帐户创建的。它们都列在美国东部(俄亥俄州)下。所以我假设他们在同一个地区。另外,它们的主机名中都有 us-east-2
。在我的 PC 上,我可以使用 psql 命令或 pgAdmin 连接到 RDS。
为什么我无法连接两个实例?
编辑:
我在与 Tableau Server 相同的 VPC 的相同子网中创建了另一个 EC2 Linux 实例,仅用于调试目的。我以相同的方式配置了对等互连和路由 table,并将子网关联到路由 table。但是,我仍然无法连接到 EC2 Linux 实例上的 RDS。
VPC 对等互连的工作方式与 Public 子网连接到 Internet 网关的方式大致相同——路由 Tables 定义流量如何流动 in/out 个子网。
对于 VPC 对等工作:
- 邀请并接受 对等连接(完成)
- 在每个 VPC 中创建一个 路由 table,指向另一个 VPC 的 IP 范围的对等连接(完成)
- 将您希望能够对等的每个子网关联到路由Table
- 或者,编辑现有路由tables以包含对等条目
- 如果您的 RDS 数据库是 public,并且您正尝试使用数据库的 public DNS 进行连接,那么您将需要编辑 DNS 设置[= your peering connection 的 40=] 允许 DNS 解析。
路由工作如下:
- 当流量离开子网时,会查询路由 Table 以确定将流量发送到何处
- 首先评估最严格的(例如 /24),直到最不严格的(例如 /0)
- 根据适当的路由 Table 条目路由流量
这意味着您可以将 一些 子网配置为对等,而不必包括所有子网。传统上,对等的是 私有子网,并且可能只有 特定的 私有子网——但这完全是您的选择。
将其视为路线图上的方向,告诉交通应该去哪里。
VPC 对等是关于细节的。以下是我们必须 运行 才能让它工作的项目。
对等 VPC 1 到 VPC 2(很明显,但包括那些没有执行此步骤的人)。从 VPC 1 建立到 VPC 2 的对等连接。接受请求。如果不同区域,切换到VPC 2区域并接受对等请求。
示例:
VPC 1 CIDR = 10.0.0.0/16
VPC 2 CIDR = 172.16.0.0/16
VPC 1(带 RDS 实例的 VPC)
1. 路由 Table RDS 实例的服务子网 - 添加路由目标到 VPC 2 CIDR 块 (172.16.0.0/16) 和目标 VPC 2 对等连接(select 来自列表 - pcx-#### #).
2. RDS Security Group - 为源IP为VPC 2 CIDR块(172.16.0.0/16)的DB端口添加入站规则。因此,您将有两个数据库端口的入站规则。一个用于 VPC 1 (10.0.0.0/16) CIDR 块,一个用于 VPC 2 (172.16.0.0/16)。
3. 专用路由的网络访问控制列表 Table - 如果您只允许某些端口,请为数据库端口添加规则,source = VPC 2 CIDR block (172.16.0.0/16) and Allow.
专有网络 2
1.路由 Table EC2 实例的服务子网 - 添加路由目标到 VPC 1 CIDR 块 (10.0.0.0/16) 和目标 VPC 1 对等连接(select 来自列表 - pcx-#### #).
2. 实例安全组 - 添加源IP为VPC 1网段(10.0.0.0/16)的DB端口入站规则。
3. 路由的网络访问控制列表 Table - 如果您只允许某些端口,请为数据库端口添加规则,source = VPC 1 CIDR block (10.0.0.0/16) and Allow.
我想就是这样 - 但如果我找到其他设置,我会更新此消息。
只是一些历史,我们这样做是为了灾难恢复。我们的生产实例和 RDS MS SQL DB 在 us-east-1 (VPC 1) 中,我们的容灾热备实例在 us-west-2 (VPC 2) 中。我们主要从美国获取流量,但我们可能会考虑将备用站点作为真正的生产副本(缩放组),然后将 Route 5 记录更改为基于延迟的路由。
以下是通过 VPC 对等访问私有 RDS 的步骤:
假设您有 2 个 VPC:
- 生产 VPC:10.0.1.0/24
- RDS VPC:10.0.2.0/24
第一步:在两个VPC之间创建VPC对等连接。
然后接受建立连接的请求。您将获得一个连接 ID,例如:pcx-e8e8e8e8
第二步:在每个 VPC
中配置路由table
- 生产 VPC:将此路由添加到 RDS VPC:
10.0.2.0/24 —> pcx-e8e8e8e8
- RDS VPC:将此路由添加到生产 VPC:
10.0.1.0/24 —> pcx-e8e8e8e8
第 3 步:配置 RDS 的安全组以接受生产 VPC 的 IP 范围,通过添加此入站规则
- 端口(MS SQL: 1433, MySQL: 3306, etc)——允许来源:10.0.1.0/24
现在应该可以连接了。
注意:连接到 RDS 时,您应该使用提供的 DNS 名称以获得更好的弹性。 AWS VPC DNS 将负责将此名称解析为 RDS 实例的本地 IP 地址。
我遇到了类似的问题,我是这样做的:
已创建 VPC 对等互连,如上述线程中所述。
在RDS实例的安全组中,可以添加一条规则,允许端口5432(Postgres端口)Securitygroupid/hostIP/VPC_CIDR。
登录EC2实例安装psql(sudo yum install postgresql-server postgresql-contrib
),执行以下命令:
# this will ask for the password and connect.
psql --host=xxxxxx.us-west-2.rds.amazonaws.com --port=5432 --username=xxxxx --password --dbname=xxxxx
完成上述所有操作后,我在连接到 RDS 实例时仍然遇到问题。嗯,有史以来第一次,我实际上在 Reddit 上找到了不是这样的答案(这里:https://www.reddit.com/r/aws/comments/8hx28w/rds_access_from_a_different_vpc/dyn616i/)。
Tl;博士
如果您已经对等 VPC、修改路由表并打开数据库安全组以允许来自源 VPC CIDR 的连接(基本上,@John Rotenstein 的建议 ),那么请确保您的 RDS 实例未被标记作为 Public.
问题已经得到解答,但我想补充一下,如果您连接到 RDS 的 public DNS(例如 prod.upd9999upd.us-east-1.rds.amazonaws.com
),那么您必须启用私有 IP 的 DNS 解析。这是通过 AllowDnsResolutionFromRemoteVpc
.
完成的
示例:将Vpc EC2_PROD(172.0.0.0/16
)连接到Vpc RDS_PROD(30.0.0.0/16
).
1) 创建从 EC2 VPC(请求者)到 RDS VPC(接受者)的 Peering connection。
确保通过右键单击已创建的对等连接和 "Edit DNS Settings" 启用 AllowDnsResolutionFromRemoteVpc
和 UI。或者用 following command
aws ec2 modify-vpc-peering-connection-options --vpc-peering-connection-id "pcx-04a511409bb08ef16" --requester-peering-connection-options '{"AllowDnsResolutionFromRemoteVpc":true}' --accepter-peering-connection-options '{"AllowDnsResolutionFromRemoteVpc":true}' --region us-east-1
您最终的对等连接将如下所示:
aws ec2 describe-vpc-peering-connections --profile aws-work --region us-east-1
{
"VpcPeeringConnections": [
{
"Status": {
"Message": "Active",
"Code": "active"
},
"Tags": [
{
"Value": "ec2-to-rds-peering-connection",
"Key": "Name"
}
],
"AccepterVpcInfo": {
"PeeringOptions": {
"AllowEgressFromLocalVpcToRemoteClassicLink": false,
"AllowDnsResolutionFromRemoteVpc": true,
"AllowEgressFromLocalClassicLinkToRemoteVpc": false
},
"VpcId": "vpc-RDS",
"Region": "us-east-1",
"OwnerId": "?",
"CidrBlockSet": [
{
"CidrBlock": "30.0.0.0/16"
}
],
"CidrBlock": "30.0.0.0/16"
},
"VpcPeeringConnectionId": "pcx-04a511409bb08ef16",
"RequesterVpcInfo": {
"PeeringOptions": {
"AllowEgressFromLocalVpcToRemoteClassicLink": false,
"AllowDnsResolutionFromRemoteVpc": true,
"AllowEgressFromLocalClassicLinkToRemoteVpc": false
},
"VpcId": "vpc-ec2",
"Region": "us-east-1",
"OwnerId": "?",
"CidrBlockSet": [
{
"CidrBlock": "172.0.0.0/16"
}
],
"CidrBlock": "172.0.0.0/16"
}
}
]
}
2) 您的请求者 VPC (EC2 VPC) 路由 table 必须具有 接受者 IP 苹果酒(例如 30.0.0.0/16
) 添加。 (请参阅下面的 Routes
标签)
aws ec2 describe-route-tables --filters Name=tag:Name,Values=EC2_PROD --profile aws-work --region us-east-1
{
"RouteTables": [
{
"Associations": [
{
"RouteTableAssociationId": "rtbassoc-?",
"Main": true,
"RouteTableId": "rtb-?"
}
],
"RouteTableId": "rtb-?",
"VpcId": "vpc-EC2_PROD",
"PropagatingVgws": [],
"Tags": [
{
"Value": "EC2_PROD",
"Key": "Name"
}
],
"Routes": [
{
"GatewayId": "local",
"DestinationCidrBlock": "172.0.0.0/16",
"State": "active",
"Origin": "CreateRouteTable"
},
{
"Origin": "CreateRoute",
"DestinationCidrBlock": "30.0.0.0/16", // Accepter IP cider block
"State": "active",
"VpcPeeringConnectionId": "pcx-04a511409bb08ef16"
},
{
"GatewayId": "igw-???",
"DestinationCidrBlock": "0.0.0.0/0",
"State": "active",
"Origin": "CreateRoute"
}
]
}
]
}
3) 同样地 Acceptor VPC (RDS VPC) route table must have Requester IP cider(eg. 172.0.0.0/16
) 添加。 (请参阅下面的 Routes
标签)
aws ec2 describe-route-tables --filters Name=tag:Name,Values=RDS_PROD --profile aws-work --region us-east-1
{
"RouteTables": [
{
"Associations": [
{
"SubnetId": "subnet-?",
"RouteTableAssociationId": "rtbassoc-?",
"Main": false,
"RouteTableId": "rtb-?"
}
],
"RouteTableId": "rtb-?",
"VpcId": "vpc-RDS",
"PropagatingVgws": [],
"Tags": [
{
"Value": "RDS_PROD",
"Key": "Name"
}
],
"Routes": [
{
"Origin": "CreateRoute",
"DestinationCidrBlock": "172.0.0.0/16", // Requester IP cider block
"State": "active",
"VpcPeeringConnectionId": "pcx-04a511409bb08ef16"
},
{
"GatewayId": "local",
"DestinationCidrBlock": "30.0.0.0/16",
"State": "active",
"Origin": "CreateRouteTable"
},
{
"GatewayId": "igw-???",
"DestinationCidrBlock": "0.0.0.0/0",
"State": "active",
"Origin": "CreateRoute"
}
]
}
]
}
4) 最后还 更新 Accepter VPC (RDS) 上的防火墙/安全组 以允许从端口 3306 上的 Ec2 VPC 连接,如果它 mysql.
aws ec2 describe-security-groups --filters Name=tag:Name,Values=RDS_FIREWALL --profile aws-work --region us-east-1
{
"SecurityGroups": [
{
"IpPermissionsEgress": [
{
"IpProtocol": "-1",
"PrefixListIds": [],
"IpRanges": [
{
"CidrIp": "0.0.0.0/0"
}
],
"UserIdGroupPairs": [],
"Ipv6Ranges": []
}
],
"Description": "Dev",
"Tags": [
{
"Value": "RDS_FIREWALL",
"Key": "Name"
}
],
"IpPermissions": [
{
"PrefixListIds": [],
"FromPort": 3306,
"IpRanges": [
{
"Description": "EC2_VPC_IP_CIDER",
"CidrIp": "172.0.0.0/16"
}
],
"ToPort": 3306,
"IpProtocol": "tcp",
"UserIdGroupPairs": [],
"Ipv6Ranges": []
}
],
"GroupName": "RDS_FIREWALL",
"VpcId": "vpc-???",
"OwnerId": "???",
"GroupId": "sg-???"
}
]
}
如果您拥有相同的 CIDR,则对等互连将不起作用。如果您将实例从一个区域克隆到另一个区域,则会出现相同的 CIDR。在路由中,您将无法定义相同的 CIDR。
我是运行Tableau Server 在我们VPC A 的EC2 实例上。同时,我在另一个VPC B 中创建了一个postgres RDS。现在我想在Tableau Server 和RDS 之间建立连接。 RDS VPC的CIDR为172.31.0.0/16,EC2 VPC的CIDR为10.0.0.0/16.
根据 A DB Instance in a VPC Accessed by an EC2 Instance in a Different VPC,我在 VPC A 和 VPC B 之间创建了对等互连,pcx-xyz123。此外,我还为 VPC 创建了以下路由 tables。
RDS VPC
Destination Target
172.31.0.0/16 local
10.0.0.0/16 pcx-xyz123
EC2 VPC
Destination Target
10.0.0.0/16 local
172.31.0.0/16 pcx-xyz123
两条路线 table 都是主要路线。虽然每个都有 0 个子网(不确定这是否重要)。
但是我仍然无法从 Tableau Server 连接 RDS。
这两个实例是由同一个帐户创建的。它们都列在美国东部(俄亥俄州)下。所以我假设他们在同一个地区。另外,它们的主机名中都有 us-east-2
。在我的 PC 上,我可以使用 psql 命令或 pgAdmin 连接到 RDS。
为什么我无法连接两个实例?
编辑: 我在与 Tableau Server 相同的 VPC 的相同子网中创建了另一个 EC2 Linux 实例,仅用于调试目的。我以相同的方式配置了对等互连和路由 table,并将子网关联到路由 table。但是,我仍然无法连接到 EC2 Linux 实例上的 RDS。
VPC 对等互连的工作方式与 Public 子网连接到 Internet 网关的方式大致相同——路由 Tables 定义流量如何流动 in/out 个子网。
对于 VPC 对等工作:
- 邀请并接受 对等连接(完成)
- 在每个 VPC 中创建一个 路由 table,指向另一个 VPC 的 IP 范围的对等连接(完成)
- 将您希望能够对等的每个子网关联到路由Table
- 或者,编辑现有路由tables以包含对等条目
- 如果您的 RDS 数据库是 public,并且您正尝试使用数据库的 public DNS 进行连接,那么您将需要编辑 DNS 设置[= your peering connection 的 40=] 允许 DNS 解析。
路由工作如下:
- 当流量离开子网时,会查询路由 Table 以确定将流量发送到何处
- 首先评估最严格的(例如 /24),直到最不严格的(例如 /0)
- 根据适当的路由 Table 条目路由流量
这意味着您可以将 一些 子网配置为对等,而不必包括所有子网。传统上,对等的是 私有子网,并且可能只有 特定的 私有子网——但这完全是您的选择。
将其视为路线图上的方向,告诉交通应该去哪里。
VPC 对等是关于细节的。以下是我们必须 运行 才能让它工作的项目。
对等 VPC 1 到 VPC 2(很明显,但包括那些没有执行此步骤的人)。从 VPC 1 建立到 VPC 2 的对等连接。接受请求。如果不同区域,切换到VPC 2区域并接受对等请求。
示例:
VPC 1 CIDR = 10.0.0.0/16
VPC 2 CIDR = 172.16.0.0/16
VPC 1(带 RDS 实例的 VPC)
1. 路由 Table RDS 实例的服务子网 - 添加路由目标到 VPC 2 CIDR 块 (172.16.0.0/16) 和目标 VPC 2 对等连接(select 来自列表 - pcx-#### #).
2. RDS Security Group - 为源IP为VPC 2 CIDR块(172.16.0.0/16)的DB端口添加入站规则。因此,您将有两个数据库端口的入站规则。一个用于 VPC 1 (10.0.0.0/16) CIDR 块,一个用于 VPC 2 (172.16.0.0/16)。
3. 专用路由的网络访问控制列表 Table - 如果您只允许某些端口,请为数据库端口添加规则,source = VPC 2 CIDR block (172.16.0.0/16) and Allow.
专有网络 2
1.路由 Table EC2 实例的服务子网 - 添加路由目标到 VPC 1 CIDR 块 (10.0.0.0/16) 和目标 VPC 1 对等连接(select 来自列表 - pcx-#### #).
2. 实例安全组 - 添加源IP为VPC 1网段(10.0.0.0/16)的DB端口入站规则。
3. 路由的网络访问控制列表 Table - 如果您只允许某些端口,请为数据库端口添加规则,source = VPC 1 CIDR block (10.0.0.0/16) and Allow.
我想就是这样 - 但如果我找到其他设置,我会更新此消息。
只是一些历史,我们这样做是为了灾难恢复。我们的生产实例和 RDS MS SQL DB 在 us-east-1 (VPC 1) 中,我们的容灾热备实例在 us-west-2 (VPC 2) 中。我们主要从美国获取流量,但我们可能会考虑将备用站点作为真正的生产副本(缩放组),然后将 Route 5 记录更改为基于延迟的路由。
以下是通过 VPC 对等访问私有 RDS 的步骤:
假设您有 2 个 VPC:
- 生产 VPC:10.0.1.0/24
- RDS VPC:10.0.2.0/24
第一步:在两个VPC之间创建VPC对等连接。 然后接受建立连接的请求。您将获得一个连接 ID,例如:pcx-e8e8e8e8
第二步:在每个 VPC
中配置路由table- 生产 VPC:将此路由添加到 RDS VPC: 10.0.2.0/24 —> pcx-e8e8e8e8
- RDS VPC:将此路由添加到生产 VPC: 10.0.1.0/24 —> pcx-e8e8e8e8
第 3 步:配置 RDS 的安全组以接受生产 VPC 的 IP 范围,通过添加此入站规则
- 端口(MS SQL: 1433, MySQL: 3306, etc)——允许来源:10.0.1.0/24
现在应该可以连接了。
注意:连接到 RDS 时,您应该使用提供的 DNS 名称以获得更好的弹性。 AWS VPC DNS 将负责将此名称解析为 RDS 实例的本地 IP 地址。
我遇到了类似的问题,我是这样做的:
已创建 VPC 对等互连,如上述线程中所述。
在RDS实例的安全组中,可以添加一条规则,允许端口5432(Postgres端口)Securitygroupid/hostIP/VPC_CIDR。
登录EC2实例安装psql(
sudo yum install postgresql-server postgresql-contrib
),执行以下命令:# this will ask for the password and connect. psql --host=xxxxxx.us-west-2.rds.amazonaws.com --port=5432 --username=xxxxx --password --dbname=xxxxx
完成上述所有操作后,我在连接到 RDS 实例时仍然遇到问题。嗯,有史以来第一次,我实际上在 Reddit 上找到了不是这样的答案(这里:https://www.reddit.com/r/aws/comments/8hx28w/rds_access_from_a_different_vpc/dyn616i/)。
Tl;博士
如果您已经对等 VPC、修改路由表并打开数据库安全组以允许来自源 VPC CIDR 的连接(基本上,@John Rotenstein 的建议
问题已经得到解答,但我想补充一下,如果您连接到 RDS 的 public DNS(例如 prod.upd9999upd.us-east-1.rds.amazonaws.com
),那么您必须启用私有 IP 的 DNS 解析。这是通过 AllowDnsResolutionFromRemoteVpc
.
示例:将Vpc EC2_PROD(172.0.0.0/16
)连接到Vpc RDS_PROD(30.0.0.0/16
).
1) 创建从 EC2 VPC(请求者)到 RDS VPC(接受者)的 Peering connection。
确保通过右键单击已创建的对等连接和 "Edit DNS Settings" 启用 AllowDnsResolutionFromRemoteVpc
和 UI。或者用 following command
aws ec2 modify-vpc-peering-connection-options --vpc-peering-connection-id "pcx-04a511409bb08ef16" --requester-peering-connection-options '{"AllowDnsResolutionFromRemoteVpc":true}' --accepter-peering-connection-options '{"AllowDnsResolutionFromRemoteVpc":true}' --region us-east-1
您最终的对等连接将如下所示:
aws ec2 describe-vpc-peering-connections --profile aws-work --region us-east-1
{
"VpcPeeringConnections": [
{
"Status": {
"Message": "Active",
"Code": "active"
},
"Tags": [
{
"Value": "ec2-to-rds-peering-connection",
"Key": "Name"
}
],
"AccepterVpcInfo": {
"PeeringOptions": {
"AllowEgressFromLocalVpcToRemoteClassicLink": false,
"AllowDnsResolutionFromRemoteVpc": true,
"AllowEgressFromLocalClassicLinkToRemoteVpc": false
},
"VpcId": "vpc-RDS",
"Region": "us-east-1",
"OwnerId": "?",
"CidrBlockSet": [
{
"CidrBlock": "30.0.0.0/16"
}
],
"CidrBlock": "30.0.0.0/16"
},
"VpcPeeringConnectionId": "pcx-04a511409bb08ef16",
"RequesterVpcInfo": {
"PeeringOptions": {
"AllowEgressFromLocalVpcToRemoteClassicLink": false,
"AllowDnsResolutionFromRemoteVpc": true,
"AllowEgressFromLocalClassicLinkToRemoteVpc": false
},
"VpcId": "vpc-ec2",
"Region": "us-east-1",
"OwnerId": "?",
"CidrBlockSet": [
{
"CidrBlock": "172.0.0.0/16"
}
],
"CidrBlock": "172.0.0.0/16"
}
}
]
}
2) 您的请求者 VPC (EC2 VPC) 路由 table 必须具有 接受者 IP 苹果酒(例如 30.0.0.0/16
) 添加。 (请参阅下面的 Routes
标签)
aws ec2 describe-route-tables --filters Name=tag:Name,Values=EC2_PROD --profile aws-work --region us-east-1
{
"RouteTables": [
{
"Associations": [
{
"RouteTableAssociationId": "rtbassoc-?",
"Main": true,
"RouteTableId": "rtb-?"
}
],
"RouteTableId": "rtb-?",
"VpcId": "vpc-EC2_PROD",
"PropagatingVgws": [],
"Tags": [
{
"Value": "EC2_PROD",
"Key": "Name"
}
],
"Routes": [
{
"GatewayId": "local",
"DestinationCidrBlock": "172.0.0.0/16",
"State": "active",
"Origin": "CreateRouteTable"
},
{
"Origin": "CreateRoute",
"DestinationCidrBlock": "30.0.0.0/16", // Accepter IP cider block
"State": "active",
"VpcPeeringConnectionId": "pcx-04a511409bb08ef16"
},
{
"GatewayId": "igw-???",
"DestinationCidrBlock": "0.0.0.0/0",
"State": "active",
"Origin": "CreateRoute"
}
]
}
]
}
3) 同样地 Acceptor VPC (RDS VPC) route table must have Requester IP cider(eg. 172.0.0.0/16
) 添加。 (请参阅下面的 Routes
标签)
aws ec2 describe-route-tables --filters Name=tag:Name,Values=RDS_PROD --profile aws-work --region us-east-1
{
"RouteTables": [
{
"Associations": [
{
"SubnetId": "subnet-?",
"RouteTableAssociationId": "rtbassoc-?",
"Main": false,
"RouteTableId": "rtb-?"
}
],
"RouteTableId": "rtb-?",
"VpcId": "vpc-RDS",
"PropagatingVgws": [],
"Tags": [
{
"Value": "RDS_PROD",
"Key": "Name"
}
],
"Routes": [
{
"Origin": "CreateRoute",
"DestinationCidrBlock": "172.0.0.0/16", // Requester IP cider block
"State": "active",
"VpcPeeringConnectionId": "pcx-04a511409bb08ef16"
},
{
"GatewayId": "local",
"DestinationCidrBlock": "30.0.0.0/16",
"State": "active",
"Origin": "CreateRouteTable"
},
{
"GatewayId": "igw-???",
"DestinationCidrBlock": "0.0.0.0/0",
"State": "active",
"Origin": "CreateRoute"
}
]
}
]
}
4) 最后还 更新 Accepter VPC (RDS) 上的防火墙/安全组 以允许从端口 3306 上的 Ec2 VPC 连接,如果它 mysql.
aws ec2 describe-security-groups --filters Name=tag:Name,Values=RDS_FIREWALL --profile aws-work --region us-east-1
{
"SecurityGroups": [
{
"IpPermissionsEgress": [
{
"IpProtocol": "-1",
"PrefixListIds": [],
"IpRanges": [
{
"CidrIp": "0.0.0.0/0"
}
],
"UserIdGroupPairs": [],
"Ipv6Ranges": []
}
],
"Description": "Dev",
"Tags": [
{
"Value": "RDS_FIREWALL",
"Key": "Name"
}
],
"IpPermissions": [
{
"PrefixListIds": [],
"FromPort": 3306,
"IpRanges": [
{
"Description": "EC2_VPC_IP_CIDER",
"CidrIp": "172.0.0.0/16"
}
],
"ToPort": 3306,
"IpProtocol": "tcp",
"UserIdGroupPairs": [],
"Ipv6Ranges": []
}
],
"GroupName": "RDS_FIREWALL",
"VpcId": "vpc-???",
"OwnerId": "???",
"GroupId": "sg-???"
}
]
}
如果您拥有相同的 CIDR,则对等互连将不起作用。如果您将实例从一个区域克隆到另一个区域,则会出现相同的 CIDR。在路由中,您将无法定义相同的 CIDR。