EC2实例的IP地址,私有,共有,弹性IP地址
私有IPv4地址
当我们启动ec2实例的时候,我们需要指定将这个ec2实例启动在哪个VPC的哪个子网中,系统会将子网的地址范围中的一个IP地址分配给该实例,或者我们也可以自己指定该实例的私有ip地址,虽然利用这个私有ip地址是不能访问internet网的,但是可以用于vpc中ec2实例之间的通信。vpc中的子网之间都是可以相互通信的,后面会介绍到通过nat实例,利用私有ip地址是可以访问另一个实例的。
共有IPv4地址
每个子网都有一个确定在该子网中启动的ec2实例是否具有自动接收共有IP地址的属性,其实在向ec2实例分配IP地址的时候,无论是私有ip还是共有ip,都是将ip地址分配给一个网络接口中,然后这个网络接是和该实例结合使用的。所以实例就具有了私有或共有ip地址。
当我们启动实例的时候,我们可以使用子网中是否接受共有IP地址的属性来决定实例是否会被分配共有ip地址,或者是手动决定这个实例是否应该被分配共有ip地址,公有IP地址将从Amazon的公有IP地址池分配,当共有ip地址和实例的关联性取消后,该地址就会被释放会amazon的共有ip地址池。启动实例后,无法手动将该公有IPv4地址与实例取消关联。
想让我们的ec2实例访问到internet网的话,有两个条件,首先ec2实例启动时利用的子网必须是共有子网,其次,这个ec2实例必须得具有共有ip地址,或者是弹性ip地址。
比如说我们有个使用场景,我在共有子网中启动了一个ec2实例,在这个实例上搭建了一个网站,将这个实例的共有ip地址和域名绑定,可以让所有人通过域名来访问的到这个网站,如果我暂时停止了实例,再重启之后,这个实例的私有ip地址不会改变,但是系统会将实例的共有ip地址释放会ip地址池,然后再分配一个新的ip地址给这个实例,那我还得再将这个更改的ip绑定到域名上,那有没有一种方法,无论我们怎么操作这个实例,让这个实例的共有ip地址都不变,那我们就需要弹性ip地址。
我们可以根据需求自由的把ip地址绑定到实例,或取消绑定,当然了,当我们对自己的实例绑定一个弹性ip地址的时候,这个实例的共有ip地址就会释放到amazon的共有ip地址池
弹性ip地址
利用弹性ip地址,我们可以快速转移实例上的流量,比如说我们正在使用一个ec2实例,由于ec2实例所在的物理主机出现了问题,实例出现故障不能用了,这时候,我们可以快速的再启动一个实例,将我们的弹性ip地址和原来的实例取消关联,然后绑定到新启动的实例上,那这个ip指向的流量也就自然转移到了新的实例上。
关于费用,当我们正常的使用一个弹性ip,也就是将它和别的实例绑定使用的时候,是免费的,但是如果我们生成了一个弹性ip地址,但是没有使用,或者绑定的实例已经停止了,那么aws就会向我们收取弹性ip地址的费用。