2016-04-18 32 views
0

我已经启动的EC2实例有两个地址1个私有地址和1个公有地址。只能在AWS安全组中使用ec2私有地址

我有一个Redshift集群正在运行,并且想要指定它,以便它可以从EC2访问。

所以我把EC2的公网地址为安全组,

Customized TCP/IP port 5439 Source: private-ip-address 

这是行不通的。如果我使用私人地址,它可以工作。

这是为什么? 我想使用公有IP地址,即弹性IP地址。以便它可以保持不变,如果我的实例停止。

+0

上需要正确的安全组规则,才能引用源安全组而不是源ip? – Tom

回答

2

它的工作方式是因为所有流量都停留在VPC中,而不是返回到互联网并返回。出于安全和性能的目的,您希望这样做。 VPC内部的所有流量都将使用私有IP地址。

你可以认为它像这样:

私有IP地址= IP地址内部外部的VPC

0

假设你正在使用VPC(不是VPC

公共IP地址= IP地址ec2-classic) 即使您停止并重新开始,私有IP也会保持不变。

http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-instance-addressing.html

对于在VPC推出的情况下,当实例停止和重新启动,当实例终止释放私有IP地址保持与网络接口关联。

它很难说为什么EIP测绘心不是不检查你的红移子网配置工作,你可能没有正确的路由,或者你的私有IP打红移,所以它不会使用外部接口/ EIP达到红移,而是它的内部知识产权并被拒绝连接,因为SG只允许EIP。

0

在您的VPC中,地址位于“私人”范围内。它们是RFC-1918(请参阅https://tools.ietf.org/html/rfc6761)专用地址范围IP号码

为了访问“公共”地址(例如您的服务器上的公用地址),您需要为正在发送的VPC中的客户端执行其中一项操作请求到红移集群

  1. 建立一个NAT EC2实例
  2. 设立VPC NAT网关上的VPC
  3. 附加一个公共IP

所有这些事情都在AWS文档中有详细描述,所以我不会在这里解释它们。一旦他们设置了适当的路由,他们将允许客户端与服务器通话。您还需要在服务器配置