인프라 EC2에 LogStash를 Docker로 띄우는 도중에 인스턴스의 용량이 부족한 문제가 발생하였다.

no space left on device

아래의 명령어를 통해서 현재 EC2 인스턴스의 용량 정보를 확인할 수 있다.

df -hT

Output

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의 스토리지로 들어가서 볼륨을 아래와 같이 원하는 용량으로 변경해준다. Description

아래의 명령어를 통해서 늘어난 볼륨을 확인할 수 있다.

lsblk

Output

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/efi

growpart 명령어를 사용해서 내부 파티션의 크기를 증가시킨다.

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

출저

[AWS]EC2 No space left on device.