EC2(AWS)配置升级教程
随着公司网站的请求量不断增长,作为公司图片服务器的EC2的负载日益增高。load average经常能够达到>3的水平。CPU负载也经常会达到>80%,所以需要对服务器进行一些配置上的升级了。
于是,我们就开始跟着官方文档的说明开始升级AWS配置。在这个文档里,主要说了三件事:
- 升级配置需要关机
- EBS volume(EBS卷)才可以直接升级,如果是instance store volume(实例存储卷),则升级的同时会抹掉其中的数据,所以要事先备份
- 如果是Public IP(公共IP),则实例升级后将会更换IP;如果是Elastic IP(弹性IP),则升级后可以重新将实例与弹性IP绑定,这样IP就不会更换。
先解释以下以上信息中的几个名词:
卷类型:EBS卷,实例存储卷。这个是在创建实例的时候确定的,一般来说像AWS提供的T2, M3, M4, C2 等等这些实例要么是默认EBS卷,要么是强制EBS卷,所以都可以直接升级。具体确定可以在EC2控制面板页面左侧选项中选择INSTANCES -> Instances -> 选中你的实例 > Description,这里的信息中有一条是Root device type,如果显示ebs,则为EBS卷。
IP类型:公共IP,弹性IP。实例创建后,都会自动分配一个公共IP,所以不做配置的情况下是只有公共IP的。如果购买了弹性IP,则需要在升级实例后在NETWORK & SECURITY -> Elastic IPs页面重新绑定IP和实例。
对于这次升级,公司的服务器是使用的M3.large型号,没有配置弹性IP,额外挂载了一个500G的外部存储磁盘。考虑到实际情况,最后的升级方案是:
- 将实例从M3.large升级到M3.xlarge
- 升级后IP被替换,需要重新在CloudFlare中绑定IP
- 重新挂载500G的外部存储磁盘
下面开始执行升级:
首先,为了防止在备份过程中出现意外导致数据丢失,先对数据进行备份(磁盘快照)。选择ELASTIC BLOCK STORE -> Volume,选择系统磁盘创建快照。由于500G的磁盘只是卸载和挂载操作,所以就不备份了。
备份完成后,在Instances中选中我们需要升级的实例,Actions -> Instance State -> Stop。关机后,再选择Actions -> Instance Settings -> Change Instance Type,选择需要升级到的实例配置,重新启动。这个选项在机器没有关机时候是灰色不可选状态,所以升级需要关机。
重新启动后,实例升级就已经完成了。现在还需要做两件事:1. 挂载外部存储磁盘;2. 修改DNS解析中使用的服务器IP。
我们先进行磁盘挂载,在ELASTIC BLOCK STORE -> Volumes 中选择我们的外部存储磁盘(500G),执行Actions -> Detach Volume。执行完后,外部存储磁盘便取消了与升级前实例之间的挂载。
然后,我们执行Actions -> Attach Volume,在弹出的操作框中,选择我们升级后的实例ID进行挂载。完成后,我们就可以在服务器上看到这个磁盘了。
上图是后截的,所以这里显示已经被mount到了/data目录,刚挂载上的时候应该是空的。
然后我们删除掉之前的挂载链接,重新挂载:
1
2
3
4
|
<span style=“color: #999999;”># 这里直接是用root用户演示,实际操作中加sudo执行</span>
rm –rf /data
mkdir /data
mount /dev/xvdf /data
|
这样外部磁盘挂载就完成了。服务器已经Ready。最后在DNS解析处更改一下IP地址绑定就完成了整个升级操作。