我了解VPC的主要概念和高级体系结构。据我了解,VPC主要用于网络的底层详细信息。这主要用于ec2实例。我知道ec2实例是IAAS。
我的问题是VPC如何与PAAS或FAAS的其他资源一起使用。在VPC中拥有RDS,EB,Lambda之类的资源与不在VPC中拥有该资源有什么区别?如果这些资源在VPC中使用,是否通过ec2实例显示它们?还是在VPC中拥有它能够控制该资源的网络详细信息的要点?
答案 0 :(得分:4)
VPC是物理网络的虚拟版本。
考虑您的家庭网络。家里的每个设备都需要物理连接到路由器,或通过wifi连接到路由器。让我们暂时忽略wifi。
如果家中的两个设备要互相通信,则需要将它们连接到同一网络。您无法连接到邻居的设备,因为它们在不同的网络上。
您的路由器还可以连接到Internet,从而使设备可以访问家外的计算机。
VPC也是如此。希望彼此通信的任何资源(例如EC2,RDS)必须位于同一VPC上。如果VPC是通过Internet网关连接到Internet的,则它们也可以与通过Internet访问的任何内容进行通信。
VPC纯粹用于为资源提供“物理”连接,就像将资源插入同一路由器一样。它不授予资源本身的访问权限。就像将笔记本电脑插入我的家庭网络一样-除非您将笔记本电脑配置为允许访问(例如,访问磁盘共享),否则它不会授予我访问笔记本电脑的权限。
答案 1 :(得分:0)
您已经知道,VPC是完全私有的虚拟网络服务。在此专用网络中,您将能够根据需要创建子网并组织它们,例如,某些网络可以具有公共IP地址(例如前端服务),而另一些完全私有(例如RDS)。 / p>
现在,公用子网仅称为公用子网,因为它已连接到称为Internet Gateway的AWS资源,因此您的公用IP将被路由。这意味着,即使您的子网中的EC2实例上的公用IP没有通过路由表连接到Internet网关,您也将无法连接到Internet。
如果您希望私有子网中的实例能够与世界其他地方进行通信,则必须添加一个AWS NAT网关来为您完成数据包转换(最简单的方法)。
现在拥有VPC的目的是拥有堆栈中正在进行的数据,例如,即使您可以用安全组保护它们,也不想在Internet上公开关键数据库和后端服务。< / p>
VPC中的lambda函数将是在您指定的子网中执行网络接口(ENI)期间将提供给该资源的资源。这将使您可以连接到未公开到Internet的资源(RDS,Elasticache等)
通常,如果不需要访问留在VPC内的私有资源,则希望在不使用VPC的情况下使用lambda。