DevOps/AWS

EC2 용량 증설하기

soohey 2023. 7. 6. 11:18

 

AWS EC2 내부에서 이미지를 풀 받은 후 도커런을 하려고 했는데 디바이스 공간에 용량이 부족하다는 오류 메세지가 출력되었습니다.

 

 

그래서 EC2 내부 용량을 증설하기로 했습니다.

AWS에는 EBS (=볼륨)이라고 부르는 가상 디스크가 존재합니다. EBS의 SSD 크기를 증설해서 EC2의 용량을 늘려볼게요.

 


 

볼륨 용량 업데이트

 

우선 AWS 콘솔에 접속하여 EC2 > 볼륨 탭으로 이동해야합니다.

 

https://ap-northeast-2.console.aws.amazon.com/ec2/

 

https://ap-northeast-2.console.aws.amazon.com/ec2/home

 

ap-northeast-2.console.aws.amazon.com

 

들어가면 AWS EC2에 할당된 볼륨들을 확인할 수 있습니다. 증설하고자 하는 EC2의 EBS edit 버튼을 눌러주세요. 아예 EC2 탭에서 볼륨을 클릭하면 바로 찾을 수 있어요.

 

 

저는 크기(GiB)를 100기가로 설정했습니다. IOPS와 처리량은 3000, 125가 디폴트 값(무료)이고 그 이상의 값으로 설정하면 과금이 발생하게 됩니다.

 

EBS를 업데이트 해주었다면 EC2 내부도 재시작해주어야 합니다. 재시작해주지 않는다면 변경된 용량정보가 반영되지 않습니다!

 

ssh 명령어로 EC2 내부로 접속해줍니다.

 

EC2 재시작하기

 

df -h

 

df 명령어는 파일 시스템의 사용 가능한 공간을 표시해줍니다. 명령어를 통해 부족한 사용 공간이 어딘지 확인합니다.

 

 

/dev/nvme0n1p1 공간에 99%가 사용된 것을 확인할 수 있습니다. 너무 빠듯해보이니 이 곳에 증설한 나머지 용량들을 올인해주도록 하겠습니다.

 

lsblk

 

lsblk는 리눅스 스토리지 디바이스 정보를 출력하는 명령어입니다. 

 

 

nvme0n1의 하위 파티션인 nvme0n1p1이 루트 디렉토리인 '/'와 마운트되어있는 것을 확인할 수 있습니다. nvme0n1p1에 100GB를 몰빵해보겠습니다.

 

sudo growpart /dev/nvme0n1 1

 

growpart 명령어를 사용해서 파티션 내부의 용량을 조절할 수 있습니다. growpart {디스크} {파티션번호} 명령어를 사용해서 nvm0n1p1의 용량을 늘려줍니다.

 

 

용량이 바뀌었는지 확인해볼까요? SIZE가 100G로 잘 변경된 것을 확인할 수 있습니다.

 

 

blkid /dev/nvme0n1p1

sudo resize2fs /dev/nvme0n1p1
sudo xfs_growfs /dev/nvme0n1p1

 

blkid를 활용해서 증설해야할 부분의 디바이스의 정보를 알아낸 후, resize2fs 또는 xfs_growfs 명령어를 사용해 디스크의 용량을 리사이징 해줍니다. 보통은 resize2fs 명령어를 사용하는데요, 파티션 정보가 ext2, ext3, ext4일때만 성공합니다. 만약 xfs일 경우, xfs_growfs를 사용해서 리사이징 반영을 해주어야 합니다.

 

https://www.enqdeq.net/252