AWS EC2 볼륨(용량) 확장하기

AWS 다루기 - EC2 볼륨(용량) 증설하기

Next.js로 만든 프로젝트를 EC2에 올려서 테스트 해보기 위해 EC2 내부에서 코드를 clone 하고 yarn으로 의존성 패키지를 설치하려고 했다.

[ec2-user@ip-xxx-xx-xx-xxx articles-web]$ yarn
yarn install v1.22.19
warning package-lock.json found. Your project contains lock files generated by tools other than Yarn. It is advised not to mix package managers in order to avoid resolution inconsistencies caused by unsynchronized lock files. To clear this warning, remove package-lock.json.
[1/4] Resolving packages...
[2/4] Fetching packages...
error https://registry.yarnpkg.com/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-12.1.0.tgz: ENOSPC: no space left on device, write
error https://registry.yarnpkg.com/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-12.1.0.tgz: ENOSPC: no space left on device, write
error https://registry.yarnpkg.com/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-12.1.0.tgz: Extracting tar content of undefined failed, the file appears to be corrupt: "ENOSPC: no space left on device, write"
error https://registry.yarnpkg.com/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-12.1.0.tgz: Extracting tar content of undefined failed, the file appears to be corrupt: "ENOSPC: no space left on device, write"
error https://registry.yarnpkg.com/@mui/material/-/material-5.6.3.tgz: Extracting tar content of undefined failed, the file appears to be corrupt: "ENOSPC: no space left on device, write"
info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.

에러가 나면 안되는 포인트에서 에러가 났다. "ENOSPC: no space left on device, write"라는 걸 보니 어떤 공간이 없다고 하는 것 같다.

[ec2-user@ip-xxx-xx-xx-xxx articles-web]$ df -hT
Filesystem     Type      Size  Used Avail Use% Mounted on
devtmpfs       devtmpfs  222M     0  222M   0% /dev
tmpfs          tmpfs     240M     0  240M   0% /dev/shm
tmpfs          tmpfs     240M  484K  240M   1% /run
tmpfs          tmpfs     240M     0  240M   0% /sys/fs/cgroup
/dev/xvda1     xfs       8.0G  7.9G  115M  99% /
tmpfs          tmpfs      48M     0   48M   0% /run/user/1000

인스턴스의 용량 상태를 조회하는 명령어를 찾아서 확인해보니 인스턴스 프리티어 버전 셋팅 당시 기본으로 설정된 8G의 용량 중 7.9G 사용 중이었다. 인스턴스 용량이 없는 상태에서 프로젝트를 셋팅하면서 발생한 에러였다.

image

인스턴스의 용량을 확장하기 위해서 AWS 콘솔에서 불륨 설정 화면으로 들어가서 수정해준다. 기존 8G에서 16G로 확장했다. 설정이 완료되면 비용 증감이 발생한다.

[ec2-user@ip-172-31-42-207 articles-web]$ sudo growpart /dev/xvda 1
CHANGED: partition=1 start=4096 old: size=16773087 end=16777183 new: size=33550303 end=33554399
[ec2-user@ip-172-31-42-207 articles-web]$ df -hT
Filesystem     Type      Size  Used Avail Use% Mounted on
devtmpfs       devtmpfs  222M     0  222M   0% /dev
tmpfs          tmpfs     240M     0  240M   0% /dev/shm
tmpfs          tmpfs     240M  484K  240M   1% /run
tmpfs          tmpfs     240M     0  240M   0% /sys/fs/cgroup
/dev/xvda1     xfs       8.0G  7.9G  115M  99% /
tmpfs          tmpfs      48M     0   48M   0% /run/user/1000

sudo growpart /dev/xvda 1 명령어로 볼륨 크기에 맞게 파티션이 적용될 수 있도록 파티션도 확장한다. 그리고 sudo xfs_growfs -d 로 파일 시스템까지 확장한다.

[ec2-user@ip-xxx-xx-xx-xxx articles-web]$ sudo xfs_growfs -d

df -hT 적용된 용량을 확인한다.

[ec2-user@ip-172-31-42-207 articles-web]$ df -hT
Filesystem     Type      Size  Used Avail Use% Mounted on
devtmpfs       devtmpfs  222M     0  222M   0% /dev
tmpfs          tmpfs     240M     0  240M   0% /dev/shm
tmpfs          tmpfs     240M  484K  240M   1% /run
tmpfs          tmpfs     240M     0  240M   0% /sys/fs/cgroup
/dev/xvda1     xfs        16G  7.9G  8.2G  50% /
tmpfs          tmpfs      48M     0   48M   0% /run/user/1000

참고

볼륨 크기 조정 후 Linux 파일 시스템 확장