VPC是在AWS架构服务的基础,有点类似于我们在机房里拉网线和设置路由器等。等这些设施完备后,我们才能考虑给机器部署服务。而很多初识AWS的同学,可能连机房都没进去过,对网络这块更是停留在课本上。于是VPC成了横亘在征服者面前的一座大山。本系列将由浅入深讲解VPC的基础知识,希望可以修筑一条清晰的捷径,辅助征服者跨过这座大山。(另外一座大山是IAM,可以参阅 《AWS攻略——一文看懂AWS IAM设计和使用》)
我们以需求/解决方案的形式一步步深入了解VPC,同时尽量少接触其他服务,比如EC2等。于是如果牵涉其他服务时,我们将采用“可用即可”的原则,不会过多讨论其合理性。
在网络里启动一台可以ssh上去的机器
这个环节涉及的VPC知识点只有一个:子网。VPC可以理解为一个大大的网络,我们需要对这个网络进行切分为若干个小的网络。最后启动的机器会落在这个小的网络里。
为了降低初学者的难度,AWS在每个区域(Region)下创建了一个默认的VPC,并在VPC下创建了若干子网。
Region:区域,可以认为机房部署的地理位置。比如北京、上海和东京等。
这个需求我们就直接在默认区域(美国东部 (弗吉尼亚北部)us-east-1)的默认VPC下的默认子网中进行。
查看区域、VPC和子网
登录到https://us-east-1.console.aws.amazon.com/vpc/home?region=us-east-1可以看到下面信息
进入子网页面查看https://us-east-1.console.aws.amazon.com/vpc/home?region=us-east-1
我们随便选择一个子网,复制下来它的名字以备用。
创建EC2
进入EC2的“实例”页面,点击“启动新实例”。本例中我们使用AWS免费套餐配置。
网络设置这块,我们也使用默认的配置。可以看到AWS已经帮我们选择了该区域下默认的VPC,并且允许任何位置来源的SSH流量。这儿需要注意下,在“密钥对”这块,我们创建了一个名叫“test”的密钥对。同步的其对应的pem文件也会被下载下来,这个文件要妥善保存,丢了就无法在外网登录这台机器了。
连接
Web端连接
待机器创建完成,可以勾选该实例,然后点击“连接”按钮。
我们直接使用Web端的SSH
只要能看到下面的页面,就代表我们可以ssh到这台机器上了。
上述操作中,我们没看到“子网”的配置过程。实际AWS默认帮我们选择了一个子网,这个信息我们可以在实例详情中看到。
客户端连接
我们使用SecureCRT连接。Hostname填入上图中“共有IPv4地址”,Username填入“ec2-user”。
创建好Seesion后,右击其属性。将在创建EC2时下载的pem文件路径填入到PublicKey下的certificate file路径下。
然后就可以登录到系统中。
知识点
- 区域(Region):一个单独的地理区域。
AWS 设定了区域的概念,即我们在世界各地聚集数据中心的物理位置。我们将每个逻辑数据中心组称为可用区。每个 AWS 区域由一个地理区域内的多个隔离的且在物理上分隔的可用区组成。与其他通常将区域定义为一个数据中心的云提供商不同的是,为每个 AWS 区域设计多个可用区可为客户提供优势。每个可用区都有独立的电力、冷却和物理安全性,并通过冗余的超低延迟网络连接。专注于高可用性的 AWS 客户可以将他们的应用程序设计为在多个可用区中运行,以实现更大的容错能力。AWS 基础设施区域可满足最高级别的安全性、合规性和数据保护要求。
- 可用区(Availability Zone): 区域中多个相互隔离的位置。
一个可用区 (AZ) 是指一个 AWS 区域中的一个或多个离散的数据中心,具有冗余电源、联网和连接。可用区让客户能够运行在可用性、容错能力和可扩展性方面比单个数据中心更强的生产应用程序和数据库。一个 AWS 区域中的所有可用区都通过高带宽、低延迟网络与完全冗余的专用城域光纤互连,为可用区之间提供高吞吐量和低延迟的联网。可用区之间的所有流量都进行了加密。网络性能足以确保可用区之间的同步复制。可用区使分区应用程序更容易获得高可用性。如果应用程序在可用区之间进行分区,则可以更好地隔离公司并防止断电、雷击、龙卷风、地震等问题的影响。可用区与任何其他可用区都间隔一定距离,不过彼此都在 100 公里(60 英里)以内。
- VPC:VPC 是一个虚拟网络,与您在自己的数据中心中运行的传统网络极为相似。创建 VPC 后,您可以添加子网。
- 子网(subnet): VPC 内的 IP 地址范围。子网必须位于单个可用区中。在添加子网后,您可以在 VPC 中部署 AWS 资源。
简单来说,区域是一个物理地址,比如北京;可用区是区域的子集,比如北京西城区,北京东城区;VPC是一个物理区域内的大网络,即它可以跨可用区;子网是在单个可用区内的IP地址分配,它不可以跨可用区。