亚马逊AWS学习——多网络接口下配置EC2实例连接公网的一个“bug”

之前在《亚马逊AWS学习——EC2的自定义VPC配置》这篇文章中讲述了如何设置自定义VPC并使自己的EC2实例能够连接公网。本篇说一下连接公网时会出现的一个小问题。

如题所示,在一个EC2实例具有多个网络接口的环境下,如果为其配置公网连接会有一个“bug”。其实也不能说是“bug”,而是AWS网络环境的限制。

1. 主网络接口

我们知道,很多时候我们的一台主机需要有多个网络接口,以使其同时架设在不同的网络中。EC2实例创建时会有一个主网络接口,默认描述为“Primary network interface”,每台EC2实例至少有一个网络接口,就是这个主网络接口。主网络接口,对应一个默认的子网,不能与EC2实例进行分离操作,当然也就不能被删除。

2. 弹性网络接口(ENI)

“Elastic Network Interface”即弹性网络接口,简称ENI。AWS的官网上对弹性网络接口(ENI)是这样解释的:弹性网络接口 (ENI) 是可以包含以下属性的虚拟网络接口:

  • 主要私有 IP 地址
  • 一个或多个次要私有 IP 地址
  • 每个私有 IP 地址一个弹性 IP 地址
  • 一个公有 IP 地址,可在您启动实例时自动分配给 eth0 的网络接口,但是仅当您为 eth0 创建网络接口而不是使用现有的网络接口时才能实现此自动分配
  • 一个或多个安全组
  • MAC 地址
  • 源/目标检查标记
  • 描述

说得太正规了啊,小鱼也有些望而生畏。不过世间一切奇怪之物的第一特点不是奇怪,而是看起来奇怪。大的是看起来好大,小的是看起来很小。否则《冰河世纪》里的猛犸象妹妹也不用躲在小树后面以为自己是只鼹鼠,蚂蚁看到自己的写真照片也要代替螳螂去做劫匪了。这ENI再具有弹性,也还是个网络接口而已,说白了就是一块网卡。由于EC2是虚拟设备,网卡的环境也被虚拟了出来。当我们需要自己的EC2实例同时处于多个子网中时,就需要为其增加ENI。增加了ENI之后还要将其附加到EC2实例上,选择“EC2”服务,点击左导航“网络接口”,在列表中选中一项,再点击“附加”,如图:

如果该网络接口是“in-use”状态,“附加”按钮就不能再点击。

3. EC2实例连接公网的必要条件

要让EC2实例连接公网有一些必要的条件:

  • 所在子网必须选择了”自动分配公有IP“

    设置步骤是这样的:

    1.打开 Amazon VPC 控制台。

    2.在导航窗格中,单击 Subnets (子网)。

    3.选择您的子网,单击 Subnet Actions,并选择 Modify Auto-Assign Public IP(修改自动分配公有IP)。

    4.如果选中,则 Enable Auto-assign Public IP (启用自动分配公有 IP) 复选框会为在所选子网中启动的所有实例都请求公有 IP 地址。选中复选框,然后单击 Save (保存)。

    如图:

  • 必须创建了公网网关(igw)并且关联到VPC的路由表

    选中对应的路由表项,可以看到如图:

4. 多网络接口的限制

好了,卖关子卖了这么久,现在该说重点了。如果你为自己的一台EC2实例事先设置好了多个网络接口,又把什么”自动分配公有IP“啊,igw啊都设置好了,实例一启动,呀!竟然还是没有公有IP,当然也就不能上网,这是为嘛呢?

因为这是AWS EC2的一个限制,正常情况下一个实例只会分配一个公网IP,除非使用EIP。

对于多个网卡的实例,启动的时候,一个公网IP不能分配给两个网卡ENI,因此分配IP失败。

有的同学说,我虽然有两块网卡,但只有一个设置了公网IP,但实例启动之后发现还是没有成功。是的,这也是不行的,由于虚拟化和底层架构的设计,AWS EC2会限制只要网络接口有多个就不去分配公网IP,而不管你是不是只有一个网络接口设置了公网IP。

5. 解决办法

很多时候我们就是需要一台实例对应多个网络接口(要不然要ENI干嘛),这该怎么办呢?

  • 方法一——投机取巧法

    有一个稍稍取巧的办法,在EC2实例启动之前,先只保留一个网络接口,并保证其设置了公有IP,然后启动实例,这时候你会发现实例公有IP设置成功!这时候再将其他ENI附加上去,就可以啦!

    不过这个方法还有一个限制,如果你停止,然后启动了实例,这时候AWS会尝试重新分配公有IP,但是检测到多个ENI,所以仍然不能分配公有IP。公有IP分配又会失败。

  • 方法二——土豪法

    配置EIP。是的就这么简单。不过停机是要付费的。哎,这让我又爱又恨的AWS。。。

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-17 08:11:30

亚马逊AWS学习——多网络接口下配置EC2实例连接公网的一个“bug”的相关文章

亚马逊AWS学习——创建RDS实例

RDS是什么呢?AWS官网上说Amazon Relational Database Service (Amazon RDS) "是一种 Web 服务,可让用户更轻松地在云中设置.操作和扩展关系数据库.它可以为行业标准关系数据库提供经济高效且可以调节大小的容量,并管理常见数据库管理任务".其实RDS就是AWS托管的数据库服务.正常情况下,数据库需要自己维护.为了使用数据库,你需要准备安装机器,配置安装环境,安装数据库,为数据库打补丁等等.当然这个过程对于DBA工程师有两个结果,要么累成狗

亚马逊AWS学习-创建EC2 windows

亚马逊AWS学习-创建EC2 windows 亚马逊AWS学习-创建EC2 windows 1. 在EC2中启动实例 2. 选择免费windows 3. 查看相关硬件 4. 选择安全组 5. 选择密钥对 6. 获取登录密码 最近刚换工作,也是第一次接触AWS,在此记录学习AWS. 1. 在EC2中启动实例 2. 选择免费windows 3. 查看相关硬件 4. 选择安全组 5. 选择密钥对 6. 获取登录密码 得到密码后,就可以用远程桌面连接了. 相关文档: http://docs.aws.am

亚马逊AWS学习——EC2的自己定义VPC配置

转载请注明出处:http://blog.csdn.net/dongdong9223/article/details/47153421 本文出自[我是干勾鱼的博客] 1 网络配置 EC2即亚马逊AWS云服务中的虚拟主机.创建EC2实例时假设使用的默认VPC并分配了公有IP是能够上网的. 但我们常常须要自定义的网络环境.这时就须要自定义VPC和子网了. 1.1 配置VPC 假设你须要自己的VPC而不是系统默认的,一般须要提前建好. 在服务导航中选择VPC. 然后创建一个VPC: 注意CIDR块要设计

亚马逊AWS学习——为oracle类型的RDS数据库部署数据

关于为RDS部署数据,导入导出等操作,更多详细内容可参见[官方文档]. 为RDS部署数据,有一点需要注意,RDS数据库只打开了1521端口,所以所有操作都只能通过1521端口的数据库连接进行. 1 导出数据 在源数据库中: --查看数据库目录: select * from dba_directories t; --数据导出(操作系统命令行执行,而不是数据库SQL命令行): expdp TESTDB/TESTDB schemas=TESTDB dumpfile=expdp.dmp director

亚马逊AWS学习——VPC里面几个概念的关系

VPC中涉及几个概念: VPC 子网 路由表 Internet网关 安全组 今天来讲讲这几个概念之间的关系. 1. VPC 说的就是VPC,当然VPC范围是最大的,VPC即virtual private cloud,是个虚拟的局域网. 2. 子网 VPC是为了将你的所有服务与外界隔离开来,但是范围比较大,如果你的局域网内部还需要进一步的网络划分,那么需要设置子网.子网位于VPC内部. 3. 路由表 路由表是创建在VPC上的,创建时需要选择一个对应的VPC,如图: 在VPC内创建的所有路由表都会包

亚马逊AWS林家伟:怎么利用云来做颠覆性的事

<--------- LEFT--<) 导语:6月7日,创新中国成都赛区在成都世纪城娇子国际会议中心举行.亚马逊AWS跨国企业及市场营销拓展部主管林家伟介绍怎么利用云来做颠覆性的事. 亚马逊AWS跨国企业及市场营销拓展部主管 林家伟 6月7日,以发现国内锐公司.扶持有梦想的创业者,并为其提供展示平台的"创新中国"成都赛区在成都世纪城娇子国际会议中心举行.大赛由创业邦联合创业场.天府软件园共同举办.亚马逊AWS跨国企业及市场营销拓展部主管林家伟介绍怎么利用云来做颠覆性的事情.

亚马逊AWS中国 VPC 流日志怎么看?

亚马逊AWS中国 VPC 流日志怎么看?看下面的表格 version account-id interface-id srcaddr  dstaddr srcport dstport 流日志版本 AWS账号ID 网络接口ID 源IP地址 目标IP地址 源端口 目标端口 2 996523123 eni-456 101.36.73.152 172.1.1.111 62864 80 protocol packets bytes start end action log-status IANA协议编号

远景能源如何搞定美国的第一个客户?亚马逊AWS你一定知道底细吧

提到能源企业,你脑海里最先浮现的影像是什么?笨重的设备.恶劣的现场操作环境--这都是老黄历了.记者在与远景能源IT总监龚迅交流后发现,虽然远景能源是目前国内装机量最大的智能风机设备提供商之一,传统的风机研发和制造业务仍占据相当重要的地位,但远景能源最擅长的还是风场的全生命周期监控和管理.从业务思路.IT建设.对云服务的理解和使用等角度来衡量,远景能源更像是一家能源领域的互联网公司. 远景能源位于美国硅谷,其全球数字能源创新中心总裁是原思科公司的高管,员工平时工作中可自由地使用云服务,其风电系统的

亚马逊AWS在线系列讲座——如何在AWS云平台上构建千万级用户应用

用户选择云计算平台来构建应用的一个重要原因是云平台的高弹性和高扩展性.面向互联网的应用往往需要支撑大量用户的使用,但是构建一个高扩展性的.高可用的应用具有一一定的挑战,不过基于AWS云平台来构建应用可以相对简化这个事情.这个在线讲座将讨论如何如何充分利用云平台的特性和AWS的相关服务来构建一个可以支撑千万级用户的应用.通过讨论不同用户数量级别的应用需求和架构特点,然后结合不同的AWS的服务来满足用户访问,并最终逐渐把架构优化成为可以支持千万级用户的设计.这个演讲的目的是帮助对AWS服务有一定基础