[AWS EC2] no space left on device

Nicky·2024년 1월 18일
0

Trouble Shooting 

목록 보기
1/4
post-thumbnail

문제 상황

프로젝트 CI/CD 구축을 위해 aws ec2 인스턴스에서 도커 작업 시에 지속적으로 디바이스의 저장 공간이 부족한 상황이 발생하였다.

디바이스의 공간 확인을 위해 df -g로 확인한 결과

ec2 인스턴스의 스토리지 공간이 부족한 사실을 알 수 있었다. 아무래도 저렴한 비용의 인스턴스 유형을 쓰다보니 도커 작업시에 버거웠다.

해결 과정

우선은 공간 확보를 위해 docker image prune, docker container prune로 사용하지 않는 도커 이미지, 컨테이너를 정리해주었다. 하지만 이는 일시적인 조치일 뿐, 지속적인 관리를 위해 인스턴스에 EBS 스토리지를 추가하기로 하였다.

EBS 볼륨 연결 (AWS)

aws ec2 -> EBS 볼륨 -> 볼륨 생성

볼륨 생성
원하는 크기를 정하고 인스턴스와의 연결을 위해 가용 영역을 맞춰줘야 한다.

볼륨 ID -> 작업 -> 볼륨 연결

인스턴스의 스토리지 정보를 확인하면 연결을 확인할 수 있다.

볼륨 마운트 (EC2 인스턴스)

다시 인스턴스 접속을 하고 lsblk를 통해 추가한 볼륨을 확인할 수 있다.

df -hT로 루트 볼륨 포맷 유형 확인

같은 타입으로 포맷

mkdir {마운트할 폴더}
mount dev/xvdf {폴더 경로}
다시 df -hT로 확인하면 제대로 마운트된 걸 확인할 수 있다.

영구 마운트

시스템 재시작시에도 유지하기 위해서는 마운트 정보를 등록해야 한다.

nano /etc/fstab

도커 작업 이동

이제 도커 작업을 루트 볼륨에서 추가한 볼륨에서 진행하게 해야 한다. 기존의 도커 폴더를 복사하고 심볼릭 링크 설정을 해준다.

cp -a /var/lib/docker {생성한 폴더}
rm -rf /var/lib/docker
ln -s {생성한 폴더} /var/lib/docker

해결 완료

실패했던 docker 작업에 성공하였다.

profile
배우고 기록하는 공간

0개의 댓글