APC 技術ブログ

株式会社エーピーコミュニケーションズの技術ブログです。

株式会社 エーピーコミュニケーションズの技術ブログです。

EC2でインスタンスを再起動せずディスク領域を拡張する(Amazon Linux)

はじめに

先進サービス開発事業部の山岡です。

1年半ほど前に趣味でソリューションアーキテクト・プロフェッショナルを取得したものの最近とんとAWSと戯れていなかったのですが、再起動無しでEC2の拡張ができることをClassmethodさんの記事 *1 で知り興味を引かれたのでLinux版の手順を試してみました。

手順

基本的な流れは上記リンク先と同じなので割愛しLinuxで必要な手順を書きます。使用したインスタンスは t2.microAmazon Linux 2 AMI (HVM), SSD Volume Type - ami-00d101850e971728d です。

拡張前

[root@ip-172-16-2-142 ~]# df -h
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        475M     0  475M   0% /dev
tmpfs           492M     0  492M   0% /dev/shm
tmpfs           492M  388K  492M   1% /run
tmpfs           492M     0  492M   0% /sys/fs/cgroup
/dev/xvda1      8.0G  1.2G  6.9G  15% /
tmpfs            99M     0   99M   0% /run/user/1000
[root@ip-172-16-2-142 ~]# 
[root@ip-172-16-2-142 ~]# lsblk
NAME    MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvda    202:0    0   8G  0 disk
└─xvda1 202:1    0   8G  0 part /

GUIでのEBS拡張

EBSを8GBから30GBに拡張し「Modify」を押します。まだ処理中ですがすぐにOSからは30GBのディスクとして認識されました。しかしパーティションとファイルシステムは8GBのままなのでこれも拡張する必要があります。

[root@ip-172-16-2-142 ~]# lsblk
NAME    MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvda    202:0    0  30G  0 disk
└─xvda1 202:1    0   8G  0 part /

パーティションの拡張

growpart コマンドを実行します。紛らわしいのですが /dev/xvda1 の間にはスペースが入ります。

[root@ip-172-16-2-142 ~]# growpart /dev/xvda 1
CHANGED: partition=1 start=4096 old: size=16773087 end=16777183 new: size=62910431,end=62914527
[root@ip-172-16-2-142 ~]# 
[root@ip-172-16-2-142 ~]# lsblk
NAME    MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvda    202:0    0  30G  0 disk
└─xvda1 202:1    0  30G  0 part /

ファイルシステムの拡張

最後にファイルシステムの拡張です。Amazon Linux 2からはファイルシステムがXFSになったので resize2fs ではなく xfs_growfs コマンドを使います。

[root@ip-172-16-2-142 ~]# xfs_growfs -d /
meta-data=/dev/xvda1             isize=512    agcount=4, agsize=524159 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1 spinodes=0
data     =                       bsize=4096   blocks=2096635, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal               bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 2096635 to 7863803
[root@ip-172-16-2-142 ~]# 
[root@ip-172-16-2-142 ~]# df -h
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        475M     0  475M   0% /dev
tmpfs           492M     0  492M   0% /dev/shm
tmpfs           492M  444K  492M   1% /run
tmpfs           492M     0  492M   0% /sys/fs/cgroup
/dev/xvda1       30G  1.3G   29G   5% /
tmpfs            99M     0   99M   0% /run/user/1000
tmpfs            99M     0   99M   0% /run/user/0

無事に拡張することができました。

参考資料