全文共2834字,预计学习时长6分钟
图片来源:https://pixabay.com/illustrations/network-ear
作为开发人员,基本上其所有的注意力都集中于开发产品。不过一旦完成开发,还需要将该应用程序放在互联网平台上,提供给大众使用。
如果在团队中工作,这个过程就不是问题,运营部有人会处理这项任务。
但是,如果你是独自一人,或者初次使用云端,这项工作可能会引起很多困惑。毕竟存在着很多此前不知道的术语。因此,本文将特别讨论非常受欢迎的AWS。
让应用程序在AWS Cloud中运行
要在AWS云端启动并运行应用程序,至少需要了解AWS资源中的两件事:弹性计算云(EC2)和虚拟私有云 (VPC)。
EC2
EC2是一个虚拟计算环境。它与现在手中的笔记本电脑大致相同。
VPC
概述为:通过亚马逊虚拟私人云端Amazon Virtual Private Cloud(Amazon VPC)配置AWS Cloud的逻辑隔离部分,可以在其中启动所定义虚拟网络中的AWS资源。
或者,简单地说,VPC允许你从网络角度管理AWS资源。
本文将解释组成VPC的构建块,同时提供每个组件的解释。
本文假设读者已经知道IP地址基本上的操作方式以及公共和私有IP之间的区别,因此不会介绍有关网络的所有内容。
在结尾,本文会介绍一个正在运行的EC2实例,通过SSH连接以证明它可以从Internet访问。
默认情况下,AWS在创建帐户后已在每个区域为用户提供默认VPC。虽然这些默认VPC将满足大多数需求,但仍需要了解它的工作原理。
创建一个 VPC
在此将它命名为vpc-quickstart。
什么是IPv4 CIDR块?
它是无类别域间路由 (Classless Inter-Domain Routing) 的缩写。
这就是要指定IP范围的方式。
符号是<ip notation> / <number>。
先以10.0.0.0/16为例。
这里的重要部分是数字16。这就决定了IP范围。
这里的IP是IPv4。它由32位组成,每次按8位(八位位组)分组,用点分隔。因此,如果进行转换,例如,一个255.255.255.255的IP地址,将获得二进制格式的11111111.11111111.11111111.11111111。
如果不知道如何阅读二进制数字,建议先进行学习。
在示例10.0.0.0中,将获得00001010.00000000.00000000.00000000。
然后有数字16,它作为一个掩码,从左到右用数字“1”表示,形成一个IP地址格式。结果是11111111.11111111.00000000.00000000。
可以在网络内使用掩码上有0的位置。这意味着,如果将最后两个八位字节中的所有剩余位用于网络,如果掩码为24或11111111.11111111.11111111.00000000,则只获取最后一个八位字节。
因此,IP范围将是00001010.00000000.00000000.00000000至00001010.00000000.11111111.11111111,或小数位10.0.0.0至10.0.255.255。
互联网网关
顾名思义,为了使VPC能够访问互联网,就必须将其连接上互联网的网关。下面将创建一个互联网网关,并将其命名为igw-quickstart:
子网
子网是网络的逻辑组,根据要求而异。
子网可把网络分成更小的部分。把它想象成一个巨大的建筑中的网络,有100个不同的公司和100个部门,每个部门都各有网络组。
子网的示例是从192.168.1.1到192.168.1.255的范围。
还必须为每个子网指定CIDR块。
下面将创建三个子网,public1 public2和private1,因为将创建两个公共子网和一个私有子网。
公共子网意味着子网可以访问互联网,而私有子网则无法访问互联网。将在稍后解释如何做到这一点。
先创建一个子网,其中包含之前创建的一些VPC。
请注意,这次指定掩码“24”。
转换为二进制的24掩码是11111111.11111111.11111111.00000000。因此,前三个八位字节已经保留,唯一的空间是最后一个八位字节。
因此,如果平均创建子网,最终会得到10.0.<0-255>。*子网。
网络访问控制列表 (NACL)
NACL允许用户指定网络的入站和出站流量规则。
入站意味着进入的流量,而出站意味着流出的流量。
可以根据协议类型(如HTTP,TCP,UDP等)和端口号为网络设置任何规则。
由最低到最高给每个规则一个数字。
创建一个并将其命名为ACL-Quickstart。
默认情况下,允许所有流量。为了本课程的目的,在此保持原样。但是,建议大家不要在生产环境中这样做。
在“子网关联选项卡”中,单击“编辑子网关联”并添加之前创建的子网。
路由表
这类似于应用程序中的路由。例如,如果IP目标是10.0.0.14,那么将其路由到service-a,就这么简单。
创建两个路由表,将其命名为RT1和RT2。
对于RT1,打开“路线选项卡”,然后单击“编辑路线”。添加目标为0.0.0.0/0的路由,目标是刚创建的互联网网关。
这意味着0.0.0.0/0将其他流量引导到互联网网关,以便它可以访问互联网。单击“保存路由”,然后转到“子网关联选项卡”。
单击“编辑子网关联”并添加之前创建的名为public1和public2的两个子网。
这就是如何使子网公开;将它与一个路由表关联,该路由表的目的地是互联网网关。
对于RT2,对其进行编辑,使其与子网private1相关联,以使其成为私有子网。
启动EC2实例
最后,测试一下网络是否正常运行。
启动EC2实例 - 使用“t2.micro”实例类型,因为它符合免费方案资格。
转到步骤#3配置实例。这是配置实例将要使用的网络的地方。
选择VPC和刚刚创建的其中一个公共子网。然后,转到步骤#6配置安全组并启用自动分配公共IP。
安全组
安全组允许用户实例级别配置入站和出站流量,而NACL处于网络级别。
这次,只允许来自所有传入IP源的端口22的SSH连接。
单击“查看并启动”并启动实例,但不要忘记下载密钥对 - 该实例将需要一些时间来配置。
完成后,使用SSH连接到它。单击实例,然后单击表顶部的“连接”。它将提供使用SSH连接的说明。
按照说明操作然后...成功啦!
SSH连接到EC2实例。
现在有了一个连接到互联网的EC2实例,而且还知道它的每个步骤。
在此之后,可以通过向安全组添加更多规则以打开HTTP端口80,轻松安装应用程序并通过浏览器访问它。
还有很多有关VPC的信息值得去学习,试试更改所创建的配置并查看会发生什么,例如从路由表中删除互联网网关,更改NACL中的规则,等等。
留言 点赞 关注
我们一起分享AI学习与发展的干货
,