[Devops] EC2 디스크 사용량 늘리기
젠킨스 플러그인 설치 중 용량 문제를 맞이했다.
우선 aws 모니터링을 통해 따로 병목 현상이 일어나는 부분이 존재하는지 확인했다.
읽기/쓰기 작업, 처리량, 대기열 길이, 버스트 잔고 등이 모두 정상 범위에 있는 상태이다.
df -h 로 확인했을 때 /dev/xvdal 을 통해 이미 디스크 사용량이 100%임을 확인할 수 있다.
젠킨스 로그 파일 정리, Docker 이미지/컨테이너 정리, EC2 인스턴스 디스크 증가 라는 선택지가 있었는데
젠킨스 로그 파일 정리를 했지만 그래도 계속 문제가 발생하였다.
도커 이미지를 정리하기엔, 현재 진행 중인 프로젝트 특성상 장기적으로 적합하지 않아서
안전하게 충분한 용량을 추가하기 위해 EC2 인스턴스의 디스크를 증가시키기로 결정했다.
EBS 볼륨 확장 과정
1. 인스턴스 중지 (옵션)
- EC2 인스턴스를 중지할 필요는 없지만, 안정성을 위해 인스턴스를 중지하는 것이 좋다.
- AWS Management Console에서 EC2 대시보드로 이동한 후, 인스턴스를 선택하고 "Instance State"에서 "Stop Instance"를 클릭한다.
2. EBS 볼륨 찾기
- AWS Management Console에서 EC2 대시보드로 이동한다.
- 왼쪽 메뉴에서 Elastic Block Store 아래 "Volumes"를 클릭한다.
- 연결된 EBS 볼륨 리스트에서 해당 EC2 인스턴스에 연결된 볼륨을 찾아 선택한다. 보통 /dev/xvda1가 루트 볼륨이다.
3. 볼륨 크기 확장
- EBS 볼륨을 선택한 후, 상단의 "Actions" 버튼을 클릭하고, "Modify Volume"을 선택한다.
- 새로운 용량(예: 8GB에서 20GB로)을 입력한다. 프리 티어 사용자라면 30GB 이하로 설정하는 것이 좋다.
- 변경 사항을 확인한 후 "Modify" 버튼을 클릭한다.
이후 lsblk 명령어를 통해 20G로 제대로 확장된 것을 확인할 수 있다.
이 단계에서 볼륨 크기는 즉시 확장되지만, EC2 인스턴스 내부에서 파일 시스템을 확장해줘야 한다.
4. 인스턴스 재시작
- 볼륨 크기 확장이 완료된 후, 중지한 인스턴스를 재시작한다.
- "Instance State"에서 "Start Instance"를 클릭한다.
5. SSH로 EC2 인스턴스 접속
- EC2 인스턴스가 재시작되면 SSH로 다시 접속한다.
6. 파일 시스템 확장
이제 확장된 EBS 볼륨을 사용하기 위해 파일 시스템을 확장한다. 아래 명령어를 차례로 입력한다.
- growpart 명령으로 파티션 확장
첫 번째 파티션을 확장한다: 이 명령어는 첫 번째 파티션 (/dev/xvda1)을 디스크 전체 크기로 확장한
sudo growpart /dev/xvda 1
2. 파일 시스템 확장
확장된 파티션을 파일 시스템에 반영한다: 이 명령어는 확장된 파티션을 기반으로 파일 시스템 크기를 조정한다.
sudo resize2fs /dev/xvda1
7. 확인
파일 시스템이 정상적으로 확장되었는지 확인하려면 df -h 명령을 실행하여 변경된 디스크 용량을 확인한다:
df -h
df -h로 다시 파일 디스크를 확인한 결과, 100%였던 사용량 값이 41%로 변한 것을 확인할 수 있다.
이로써 디스크 사용 문제를 해결 완료했다!