通俗解读“AWS VPC子网”

关键要点:

  • AWS VPC现在是运行云VM的默认方案。
  • 你的VPC依然可以像传统的本地部署网络一样,只是会有更多的自动化和缩放功能。
  • VPC可以包含所有公共子网或公/私子网的组合。

Amazon VPC是AWS云主机的核心,它是一个比较难理解的复杂概念,尤其是对于那些缺乏基础设施运维经验的开发者来说。开发者是云项目涉及最多的队伍成员,但在大多数的项目里,他们还是缺乏基础设施运维知识。

在本文中,我们将讨论AWS中可用的、不同类型的VPC设置。然后,我们将一起理解VPC中的技术用语,并将这些技术用语翻译成非专业用语,以便于大家更容易理解VPC。

AWS通过引进“EC2经典版”开始了“虚拟网络”之旅,这是AWS在“虚拟网络”中创建EC2实例的第一代方法。然而最终,AWS不再支持EC2经典版。AWS停止支持EC2经典版转而引进“EC2 VPC”(也就是AWS VPC网络)。

AWS抛弃“EC2经典版”的原因之一是:你的AWS网络是与其他AWS租户共享的。这意味着“虚拟网络”并不是你的私人网络(针对你的账户来说)。对于那些在本地托管服务器时习惯于独立运维自己网络的团队来说,这种限制有点违背实际需求。这一需求促使AWS提出了他们的第二代“虚拟网络”:EC2-VPC。

当你在AWS账户中启动一个实例时,默认情况下它将在一个默认的VPC上启动,并获得公共IP和私有IP。这是怎么实现的呢?

什么是EC2-VPC?

Amazon VPC使你能够在你自己的逻辑隔离区域里(AWS云中)定义一个虚拟网络,即所谓的虚拟私有云(VPC)。你可以在你的VPC中启动AWS资源(例如实例)。你的VPC和一个传统的网络非常相似,你可以在自己的数据中心中操作(有了使用AWS可伸缩基础设施的好处之后)。

如果你的AWS账户是在2013年12月04日之后创建的,它仅支持EC2-VPC。在这种情况下,AWS会为你在每个AWS区域中创建一个默认的VPC。因此,除非你自己创建了一个非默认的VPC,并在启动一个实例时指定它,否则AWS将在默认的VPC中启动你的实例。

在默认的VPC创建过程中会发生什么?

AWS创建默认的VPC时,它会:

  • 创建IPv4 CIDR块大小为/16的VPC(172.31.0.0/16),最多可提供65,536个私有IPv4地址。
  • 在每个可用区中创建一个大小为/20的默认子网,还将为每个子网提供多达4,096个地址,其中一些被预留下来供我们使用。
  • 创建一个Internet网关,并将其连接到你的默认VPC。
  • 为你的默认VPC创建一个主路由表,设置将所有的IPv4流量发送到Internet网关的规则。设置将所有前往Internet的IPv4流量发送到Internet网关的规则。
  • 创建一个默认安全组并将其与你的默认VPC相关联。
  • 创建一个默认的网络访问控制列表(ACL),并将其与你的默认VPC相关联。
  • 将你的AWS账户的默认DHCP选项与你的默认VPC相关联。

VPC可以有公共子网或私有子网。你可以从这儿了解更多关于这些场景的信息。

子网是VPC的关键组件。VPC可以包含所有公共子网或公/私子网的组合。私有子网是一个没有路由到Internet网关的子网。通过虚拟专用网关路由流量,子网可以配置成仅限VPN的子网。你可以从这儿了解更多关于启用VPN的信息。

EC2实例启动时,VPC如何连上子网?

如上所述,分配到你账户的VPC是一个逻辑隔离的网络。每个计算资源(换句话说,就是AWS EC2实例)将会在“一个”VPC中启动。

在VPC中启动实例:

当你启动一个实例并指定一个VPC时,首先要做的是,确定启动该实例需要的子网。如果没有选择子网,AWS将在选定的VPC中选择默认子网。一旦确定出你的子网,下一步是确定一个可用区。用户可以自己选择这个区域,或让AWS为其选择一个区域。

一旦在VPC/子网/可用区中创建了一个实例,该子网IPv4地址范围内的一个主私有IP地址将被分配给该实例的默认网络接口(eth0)。每个实例还被赋予一个私有的(内部)DNS主机名(解析后是该实例的私有IP地址)。如果你没有指定主私有IP地址,我们将为你选择一个子网范围内的可用IP地址。

当你将一个实例启动到一个已经启用了公共IP地址属性的子网时,一个公共IP地址将被分配给为该实例创建的主网络接口(eth0)。一个公共IP地址通过网络地址转换(NAT)映射到主私有IP地址。当你停止EC2实例并重新启动时,之前分配的公共地址将会发生变化。

当我们讨论IP地址时,需要理解的一个细节是,公共IP地址不同于AWS弹性IP地址(EIP)。分配给一个实例的公共IP地址来自于Amazon的公共IPv4地址池。当你停止和启动(或终止)一个实例时(但不是在重启期间),分配给该实例的公共IP地址将会发生变化。EIP先被分配给一个用户账户,再被分配给一个实例。除非你将它从实例中分离或将其从你的帐户中释放出来,否则EIP将保持不变。在使用EIP时,你需要知道,如果这个IP没有分配给正在运行的实例,你也需要付费。你可以从这儿了解更多的细节。

[<img src=“https://res.infoq.com/articles/aws-vpc-explained/zh/resources/6531-1528820299655.png)](https://link.juejin.cn/?target=https%3A%2F%2Fs3.amazonaws.com%2Finfoq.content.live.0%2Farticles%2Faws-vpc-explained%2Fzh%2Fresources%2F6531-1528820299655.png “https://s3.amazonaws.com/infoq.content.live.0/articles/aws-vpc-explained/zh/resources/6531-1528820299655.png”” style=“margin: auto” />

除非你有配置或搭建数据中心网络的前期经验,否则理解所有这些潜在的工作细节会让你觉得难于上青天。如果你不信,那请继续读下去。

既然我们已经了解了VPC的内部工作原理,以及如何启动一个实例,现在就让我们试着理解技术定义,然后尝试用办公大楼的类比将这些定义转换为非专业术语。

以下是我们目前讨论的AWS资源的技术定义:

VPC定义

Amazon VPC允许你在AWS云中获得一个逻辑隔离的部分,你可以在你定义的虚拟网络中启动AWS资源。你对你的虚拟网络环境有完全控制权,包括你自己的IP地址范围的选择、子网的创建以及路由表和网络网关的配置。你可以在VPC中同时使用IPv4和IPv6,以确保安全方便地访问资源和应用程序。

区域和可用区

Amazon EC2托管在全球多个位置。这些位置由区域和可用区构成。每个区域 都是一个独立的地理区域。每个区域都有多个相互隔离的位置,称为可用区。

子网

子网是“网络的一部分”,换句话说,它是整个可用区的一部分。每个子网必须完全托管在一个可用区中,并且不能跨区。

IP地址

一组由时间间隔来分离的独特的数字:通过使用互联网协议在网络上进行通信来识别每台计算机。AWS中的每个实例都有2个IP地址,一个私有IP地址和一个公共IP地址。

安全组

一个安全组相当于一个虚拟防火墙,它可以控制一个或多个实例的流量。当你启动一个实例时,你将一个或多个安全组与实例关联起来。你可以为每个安全组设置规则,以控制进出它的相关实例的流量。

非专业术语

为了使这些概念更容易理解,我们将使用一个办公大楼进行类比:

  • 把你的办公室想象成一个多层建筑
  • 每个楼层都有多个套房
  • 每个部门(比如人力资源部门,工薪部门)可以在同一层楼或多层楼
  • 每个套房都有几个房间
  • 每个房间都有几张员工们用于办公的办公桌

**区域:**把办公楼想象成一个区域。就像AWS区域如何包含其他组件一样,办公大楼是一个包含许多东西的建筑主体。

**可用区:**把每一层想象成一个可用区。就像一个区域可以有多个可用区一样,我们的建筑也不止一层。

**VPC:**办公室里的每个部门都像一个VPC。如同VPC中跨区域的可用区,办公室的每个部门都可以跨越不同的楼层。

**子网:**每个套间代表一个子网。就像每个子网在一个可用区的情况一样,每个套间都只是该层的一部分,并且它不会跨楼层。

**IP地址:**套间中的一个桌子代表一个IP地址。

当公司给员工分配办公桌时,他们首先会判断:

  • 这个员工属于哪个部门
  • 然后确定部门跨哪些楼层
  • 然后确定哪些套间有可用的桌子
  • 向员工分配一个可用的办公桌

同样,当人们启动AWS EC2实例时:

  • 我们需要选择这个实例应该部署到哪个VPC上
  • 然后我们选择用哪个可用区(如果未选择,就是默认可用区)
  • 接着我们选择子网(如果未选择,就是默认子网)
  • 最后这个子网的IP被分配给我们的EC2实例(作为私有IP)

其他相关的术语

在学习AWS VPC和启动EC2实例时,你需要理解的术语其实不多。

安全组:

一个安全相当于一个虚拟防火墙,它控制一个或多个实例的流量。当你启动一个实例时,你将一个或多个安全组与实例关联起来。你可以为每个安全组设置规则,以控制进出它的相关实例的流量。

针对“安全组”,我们可以联想到办公室的门禁卡。根据你预期的安全系数,你可以在AWS中中应用不同级别的安全组。同样类比到办公大楼。你可以将门禁卡设为入楼级别、入层级别或应用到其他一些安全措施上。

开放安全组的公共VPC:

在这种情况下,你将实例放入VPC之后,VPC/实例关联的安全组将允许开放所有端口,这是一种非常糟糕的做法。类比到我们的办公楼,就是一栋没有任何门禁的建筑。每个人都可以到任何楼层或套间。

公共VPC与受限安全组:

在这种情况下,你在VPC中启动实例时,VPC/实例关联的安全组将限制开放端口,这是一个很好的举措。类比到我们的办公大楼,类似一个有访问卡的建筑。只有拥有门禁卡的人才能进入大楼,并在里面四处走动。

私有VPC:

私有VPC是一个只有私有子网的VPC。如果没有特殊工具或VPC窥视,那么在一个私有的VPC中,这些资源都是不可访问的。

虽然这不是一个完美的类比,但我们可以把你办公楼里的“洗手间”想象成私有VPC(换句话说,就是带私有子网的VPC)。不能进入大楼的人就不能进入洗手间。

总而言之,VPC+可用区+子网+私有/公共IP地址+安全组的组合就是AWS资源,这些AWS资源组成了基础设施,以提供用户在安全可伸缩环境中运行EC2实例所需的支持。了解这些资源的工作原理将帮助用户正确配置和利用这些资源。

关于作者:

Prasad Vara 是INVOKE Cloud(专注于云计算成本优化解决方案)的联合创始人。Prasad 以软件开发人员的身份开始了他的职业生涯,并在经营数百万美元项目的过程中收获了十多年的经营经验。他既是DevOps也是云的狂热者。工作之余,他喜欢跑步或骑自行车。

查看英文原文:AWS VPC Subnets – In Layperson’s Terms

Terms](https://link.juejin.cn/?target=https%3A%2F%2Fwww.infoq.com%2Farticles%2Faws-vpc-explained “https://www.infoq.com/articles/aws-vpc-explained”)

感谢冬雨对本文的审校。## 题外话

初入计算机行业的人或者大学计算机相关专业毕业生,很多因缺少实战经验,就业处处碰壁。下面我们来看两组数据:

2023届全国高校毕业生预计达到1158万人,就业形势严峻;

国家网络安全宣传周公布的数据显示,到2027年我国网络安全人员缺口将达327万。

一方面是每年应届毕业生就业形势严峻,一方面是网络安全人才百万缺口。

6月9日,麦可思研究2023年版就业蓝皮书(包括《2023年中国本科生就业报告》《2023年中国高职生就业报告》)正式发布。

2022届大学毕业生月收入较高的前10个专业

本科计算机类、高职自动化类专业月收入较高。2022届本科计算机类、高职自动化类专业月收入分别为6863元、5339元。其中,本科计算机类专业起薪与2021届基本持平,高职自动化类月收入增长明显,2022届反超铁道运输类专业(5295元)排在第一位。

具体看专业,2022届本科月收入较高的专业是信息安全(7579元)。对比2018届,电子科学与技术、自动化等与人工智能相关的本科专业表现不俗,较五年前起薪涨幅均达到了19%。数据科学与大数据技术虽是近年新增专业但表现亮眼,已跻身2022届本科毕业生毕业半年后月收入较高专业前三。五年前唯一进入本科高薪榜前10的人文社科类专业——法语已退出前10之列。
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

“没有网络安全就没有国家安全”。当前,网络安全已被提升到国家战略的高度,成为影响国家安全、社会稳定至关重要的因素之一。

网络安全行业特点

1、就业薪资非常高,涨薪快 2022年猎聘网发布网络安全行业就业薪资行业最高人均33.77万!

img

2、人才缺口大,就业机会多

2019年9月18日《中华人民共和国中央人民政府》官方网站发表:我国网络空间安全人才 需求140万人,而全国各大学校每年培养的人员不到1.5W人。猎聘网《2021年上半年网络安全报告》预测2027年网安人才需求300W,现在从事网络安全行业的从业人员只有10W人。
img

行业发展空间大,岗位非常多

网络安全行业产业以来,随即新增加了几十个网络安全行业岗位︰网络安全专家、网络安全分析师、安全咨询师、网络安全工程师、安全架构师、安全运维工程师、渗透工程师、信息安全管理员、数据安全工程师、网络安全运营工程师、网络安全应急响应工程师、数据鉴定师、网络安全产品经理、网络安全服务工程师、网络安全培训师、网络安全审计员、威胁情报分析工程师、灾难恢复专业人员、实战攻防专业人员…

职业增值潜力大

网络安全专业具有很强的技术特性,尤其是掌握工作中的核心网络架构、安全技术,在职业发展上具有不可替代的竞争优势。

随着个人能力的不断提升,所从事工作的职业价值也会随着自身经验的丰富以及项目运作的成熟,升值空间一路看涨,这也是为什么受大家欢迎的主要原因。

从某种程度来讲,在网络安全领域,跟医生职业一样,越老越吃香,因为技术愈加成熟,自然工作会受到重视,升职加薪则是水到渠成之事。

黑客&网络安全如何学习

今天只要你给我的文章点赞,我私藏的网安学习资料一样免费共享给你们,来看看有哪些东西。

1.学习路线图

行业发展空间大,岗位非常多

网络安全行业产业以来,随即新增加了几十个网络安全行业岗位︰网络安全专家、网络安全分析师、安全咨询师、网络安全工程师、安全架构师、安全运维工程师、渗透工程师、信息安全管理员、数据安全工程师、网络安全运营工程师、网络安全应急响应工程师、数据鉴定师、网络安全产品经理、网络安全服务工程师、网络安全培训师、网络安全审计员、威胁情报分析工程师、灾难恢复专业人员、实战攻防专业人员…

职业增值潜力大

网络安全专业具有很强的技术特性,尤其是掌握工作中的核心网络架构、安全技术,在职业发展上具有不可替代的竞争优势。

随着个人能力的不断提升,所从事工作的职业价值也会随着自身经验的丰富以及项目运作的成熟,升值空间一路看涨,这也是为什么受大家欢迎的主要原因。

从某种程度来讲,在网络安全领域,跟医生职业一样,越老越吃香,因为技术愈加成熟,自然工作会受到重视,升职加薪则是水到渠成之事。

黑客&网络安全如何学习

今天只要你给我的文章点赞,我私藏的网安学习资料一样免费共享给你们,来看看有哪些东西。

1.学习路线图

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

攻击和防守要学的东西也不少,具体要学的东西我都写在了上面的路线图,如果你能学完它们,你去就业和接私活完全没有问题。

2.视频教程

网上虽然也有很多的学习资源,但基本上都残缺不全的,这是我自己录的网安视频教程,上面路线图的每一个知识点,我都有配套的视频讲解。

内容涵盖了网络安全法学习、网络安全运营等保测评、渗透测试基础、漏洞详解、计算机基础知识等,都是网络安全入门必知必会的学习内容。
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

(都打包成一块的了,不能一一展开,总共300多集)

因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

如果你对网络安全入门感兴趣,那么你需要的话可以点击这里👉网络安全重磅福利:入门&进阶全套282G学习资源包免费分享!

3.技术文档和电子书

技术文档也是我自己整理的,包括我参加大型网安行动、CTF和挖SRC漏洞的经验和技术要点,电子书也有200多本,由于内容的敏感性,我就不一一展示了。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

如果你对网络安全入门感兴趣,那么你需要的话可以点击这里👉网络安全重磅福利:入门&进阶全套282G学习资源包免费分享!

4.工具包、面试题和源码

“工欲善其事必先利其器”我为大家总结出了最受欢迎的几十款款黑客工具。涉及范围主要集中在 信息收集、Android黑客工具、自动化工具、网络钓鱼等,感兴趣的同学不容错过。

还有我视频里讲的案例源码和对应的工具包,需要的话也可以拿走。

因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取
如果你对网络安全入门感兴趣,那么你需要的话可以点击这里👉网络安全重磅福利:入门&进阶全套282G学习资源包免费分享!

最后就是我这几年整理的网安方面的面试题,如果你是要找网安方面的工作,它们绝对能帮你大忙。

这些题目都是大家在面试深信服、奇安信、腾讯或者其它大厂面试时经常遇到的,如果大家有好的题目或者好的见解欢迎分享。

参考解析:深信服官网、奇安信官网、Freebuf、csdn等

内容特点:条理清晰,含图像化表示更加易懂。

内容概要:包括 内网、操作系统、协议、渗透测试、安服、漏洞、注入、XSS、CSRF、SSRF、文件上传、文件下载、文件包含、XXE、逻辑漏洞、工具、SQLmap、NMAP、BP、MSF…

img

因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

如果你对网络安全入门感兴趣,那么你需要的话可以点击这里👉网络安全重磅福利:入门&进阶全套282G学习资源包免费分享!

  • 15
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要连接 AWS VPC,您可以使用 AWS 提供的 AWS SDK for Java。以下是一些步骤: 1. 首先,您需要在 AWS 控制台上创建一个 VPC,并在其中创建一个或多个子网。 2. 然后,您需要创建一个 Amazon EC2 实例,并确保该实例位于您创建的 VPC 中的某个子网中。 3. 接下来,您需要在您的 Java 项目中添加 AWS SDK for Java 依赖项。 4. 在您的 Java 代码中,您可以使用 AWS SDK for Java 提供的 AmazonEC2Client 类来连接您的 VPC。 5. 请确保在您的代码中使用正确的 AWS 访问密钥和密钥 ID。 以下是一个简单的示例代码,演示如何连接 AWS VPC: ``` import com.amazonaws.auth.AWSCredentials; import com.amazonaws.auth.AWSStaticCredentialsProvider; import com.amazonaws.auth.BasicAWSCredentials; import com.amazonaws.regions.Regions; import com.amazonaws.services.ec2.AmazonEC2; import com.amazonaws.services.ec2.AmazonEC2ClientBuilder; import com.amazonaws.services.ec2.model.DescribeVpcsRequest; import com.amazonaws.services.ec2.model.DescribeVpcsResult; import com.amazonaws.services.ec2.model.Vpc; public class AwsVpcConnectionExample { public static void main(String[] args) { // AWS 访问密钥和密钥 ID AWSCredentials credentials = new BasicAWSCredentials("ACCESS_KEY", "SECRET_KEY"); // 创建 AmazonEC2Client 实例 AmazonEC2 ec2 = AmazonEC2ClientBuilder.standard() .withCredentials(new AWSStaticCredentialsProvider(credentials)) .withRegion(Regions.US_WEST_2) .build(); // 查询 VPC DescribeVpcsRequest request = new DescribeVpcsRequest(); DescribeVpcsResult result = ec2.describeVpcs(request); for (Vpc vpc : result.getVpcs()) { System.out.println(vpc.getVpcId()); } } } ``` 在此示例中,我们使用 AWSStaticCredentialsProvider 类来提供 AWS 访问密钥和密钥 ID。我们还指定了 AWS 区域(在此示例中为 US_WEST_2)。最后,我们使用 describeVpcs 方法查询 VPC,并打印出每个 VPC 的 ID。 请注意,此示例仅用于演示如何连接 AWS VPC,并查询其中的 VPC。您可以根据自己的需求修改此示例。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值