数据库 (RDS) 等资源必须与 EC2 实例位于同一 VPC 中才能访问。
如果EC2实例在不同的CIDR块中,它们可以到达同一个VPC中的RDS实例吗?
即 VPC 有 2 个 CIDR 块,a 和 b。块 a 中的实例,块 b 中的数据库。
EC2 实例到 Neptune 呢?
数据库 (RDS) 等资源必须与 EC2 实例位于同一 VPC 中才能访问。
如果EC2实例在不同的CIDR块中,它们可以到达同一个VPC中的RDS实例吗?
即 VPC 有 2 个 CIDR 块,a 和 b。块 a 中的实例,块 b 中的数据库。
EC2 实例到 Neptune 呢?
是的,这可以通过将正确的安全组附加到您的资源来实现。只要您通过安全组设置了有效的配置,您的源和目标是否在同一个子网中都没有关系。例如,采用以下设置:
instance-1
在subnet-1
(CIDR: 10.0.0.0/16
) 在vpcA
instance-2
在subnet-2
(CIDR: 10.1.0.0/16
) 在vpcA
(相同的 VPC)
创建以下安全组:
security-group-client
(没有具体规定)
security-group-target
(具有允许来自security-group-client
所需端口的传入请求的入站规则)
现在附加security-group-client
到您的客户端实例(例如 instance-1)和security-group-target
您的目标(instance-2
)
您的实例位于不同的 CIDR 块(或子网)中这一事实并不重要。默认情况下,他们无权访问,但您始终可以进行设置。
您应该能够将相同的逻辑应用于 Amazon Neptune 之类的东西。您在数据库子网组中配置一个实例,该组只是一组子网。每个子网都有一个与之关联的 CIDR。您的数据库实例在您的子网之一中进行配置。(您可以在创建期间强制选择子网/可用区,但这与本讨论无关)。
拥有数据库后,如上所述创建 2 个安全组,一个用于客户端,一个用于数据库。db 的安全组应该允许来自另一个的入站连接。然后,您可以通过发出modify-db-cluster
请求(或通过控制台,或者只是预先创建安全组并在创建工作流程本身期间将其与数据库关联)将安全组附加到您的数据库集群。
希望这可以帮助。