프로젝트 CI/CD 구축을 위해 aws ec2 인스턴스에서 도커 작업 시에 지속적으로 디바이스의 저장 공간이 부족한 상황이 발생하였다.
디바이스의 공간 확인을 위해 df -g
로 확인한 결과
ec2 인스턴스의 스토리지 공간이 부족한 사실을 알 수 있었다. 아무래도 저렴한 비용의 인스턴스 유형을 쓰다보니 도커 작업시에 버거웠다.
우선은 공간 확보를 위해 docker image prune
, docker container prune
로 사용하지 않는 도커 이미지, 컨테이너를 정리해주었다. 하지만 이는 일시적인 조치일 뿐, 지속적인 관리를 위해 인스턴스에 EBS 스토리지를 추가하기로 하였다.
aws ec2 -> EBS 볼륨 -> 볼륨 생성
볼륨 생성
원하는 크기를 정하고 인스턴스와의 연결을 위해 가용 영역을 맞춰줘야 한다.
볼륨 ID -> 작업 -> 볼륨 연결
인스턴스의 스토리지 정보를 확인하면 연결을 확인할 수 있다.
다시 인스턴스 접속을 하고 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 작업에 성공하였다.