置放群组是同一可用区中的多个EC2实例组成的逻辑分组,置放群组不可以跨可用区。
在置放群组中的实例之间具有低延迟性的网络连接,当需要自己的实例之间具有低延迟的网络性能的时候,可以考虑使用置放群组。为了使得置放群组中的实例之间具有高网络连接,置放群组中的实例必须使用具有增强联网(10G)性能的实例。当使用置放群组的时候,AWS会将置放群组中的实例尽可能的启动在同一台物理主机上,以获得实例之间的低延迟行网络连接。当置放群组中的某个实例停止后,一旦重新启动,它仍然属于该置放群组,不过由于在重启实例的时候,该实例可能会在别的物理主机上启动,从而和别的实例相分离,所以当置放群组中的实例出现问题,或者是由于容量不足不能启动实例的时候,最好把该置放群组中的所有实例都停止,并且重新启动所有实例,这样能最大程度保证置放群组中的实例都是启动在同一台物理主机上。同时最好所有的实例类型都相同,保证实例指尖的高网络性能。置放群组的名称在同一账户中必须是唯一的;不同的置放群组不能合并在一起;不能将现有的已经启动的实例移动到置放群组中。
用户数据:
一般情况下,当启动EC2实例之后,我们会手动的在这个EC2实例上安装很多软件,比如网页服务器,或者更新已安装的package。除了这种方法,还可以在启动EC2实例的时候,写安装软件,或者配置服务器的Shell脚本,将这些脚本以用户数据的形式传递给将要启动的实例。举个栗子:
#!/bin/bash
yum update -y
yum install httpd -y
cd /var/www/html
echo "Hello World" > index.html
service httpd start
chkconfig httpd on
上面的几行命令行要做的事情就是更新一下实例的已有的安装包,然后安装一个网页服务器,安装完成之后在生成的/var/www/html文件夹下生成一个index.html网页,并将Hello World这行文字写入网页中,最后启动网页服务器,并且将其设置为当实例启动的时候就自动启动(网页服务器)。这几行命令行可以在实例启动之后,一行一行的在实例上运行,也可以在启动实例的时候集中的将这几行写入到用户数据上,这样当实例启动之后,就会自动的执行我们写入的命令行。
元数据:
当启动EC2实例之后,该实例所拥有的私有IP地址,共有IP地址,使用的AMI的ID,该实例的ID等都属于该实例的元数据。想要查看实例的元数据的话,可以在实例上运行这样的命令行:
curl http://169.254.169.254/latest/meta-data/
这个也是考点,考试中曾经出现过。运行结果是有关这个实例的所有的元数据都会显示出来,如果要查看该实例使用的AMI的ID的话,就可以运行
curl http://169.254.169.254/latest/meta-data/ami-id,
如果要查看该实例使用的实例ID的话,可以运行
curl http://169.254.169.254/latest/meta-data/instance-id,
同样可以查看别的元数据。如果要查看启动实例时使用的用户数据,也就是事先写好的shell脚本,可以通过运行
curl http://169.254.169.254/latest/user-data/
来查看。这样有关实例的所有数据都可以通过命令行来查看。