인프라 EC2에 LogStash를 Docker로 띄우는 도중에 인스턴스의 용량이 부족한 문제가 발생하였다.
no space left on device
아래의 명령어를 통해서 현재 EC2 인스턴스의 용량 정보를 확인할 수 있다.
df -hTOutput
Filesystem Type Size Used Avail Use% Mounted on
devtmpfs devtmpfs 4.0M 0 4.0M 0% /dev
tmpfs tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs tmpfs 766M 1.1M 765M 1% /run
/dev/nvme0n1p1 xfs 12G 11G 1.5G 88% /
tmpfs tmpfs 1.9G 0 1.9G 0% /tmp현재 해당 EC2에서 사용하지 않는 도커 이미지를 삭제해서 용량을 확보할 수 있지만 확인해 보니 모두 사용중인 상태였고 EC2의 볼륨을 늘리는 방향으로 진행하였다.
EBS의 용량의 비용은 1GB 당 0.0057달러(약 119원)정도로 4기가 정도는 늘렸을 때 크게 부담이 없는 정도로 판단 되었다.
EC2의 스토리지로 들어가서 볼륨을 아래와 같이 원하는 용량으로 변경해준다.

아래의 명령어를 통해서 늘어난 볼륨을 확인할 수 있다.
lsblkOutput
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
nvme0n1 259:0 0 16G 0 disk
├─nvme0n1p1 259:1 0 12G 0 part /
├─nvme0n1p127 259:2 0 1M 0 part
└─nvme0n1p128 259:3 0 10M 0 part /boot/efigrowpart 명령어를 사용해서 내부 파티션의 크기를 증가시킨다.
sudo growpart {볼륨이름} {파티션 이름}Output
[ec2-user@ip-172-31-16-67 ~]$ sudo growpart /dev/nvme0n1 1
CHANGED: partition=1 start=24576 old: size=25141215 end=25165791 new: size=33529823 end=33554399
[ec2-user@ip-172-31-16-67 ~]$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
nvme0n1 259:0 0 16G 0 disk
├─nvme0n1p1 259:1 0 16G 0 part /
├─nvme0n1p127 259:2 0 1M 0 part
└─nvme0n1p128 259:3 0 10M 0 part /boot/efi파티션을 확장한 이후에 파일 시스템을 확장해 줘야 한다.
파일 시스템 확장 명령어는 파일 시스템 종류 마다 다른데 현재 EC2는 xfs로 되어 있으므로 알맞는 명령어를 사용한다.
sudo xfs_growfs {원하는 파일 시스템}아래와 같이 적용된 결과를 확인할 수 있다.
[ec2-user@ip-172-31-16-67 ~]$ sudo xfs_growfs /dev/nvme0n1p1
meta-data=/dev/nvme0n1p1 isize=512 agcount=4, agsize=1047040 blks
= sectsz=4096 attr=2, projid32bit=1
= crc=1 finobt=1, sparse=1, rmapbt=0
= reflink=1 bigtime=1 inobtcount=1
data = bsize=4096 blocks=3142651, imaxpct=25
= sunit=128 swidth=128 blks
naming =version 2 bsize=16384 ascii-ci=0, ftype=1
log =internal log bsize=4096 blocks=16384, version=2
= sectsz=4096 sunit=4 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
data blocks changed from 3142651 to 4191227