Amazon Web Services에서 EC2 인스턴스를 운영하다 보면 EBS 볼륨 용량을 늘려야 하는 상황은 자주 발생합니다.
하지만 EBS 볼륨 크기를 늘렸다고 해서 파일 시스템이 자동으로 확장되지는 않습니다.
볼륨 확장 이후에는 파일 시스템 크기 조정 작업을 반드시 추가로 수행해야 실제로 디스크 용량을 사용할 수 있습니다.
이 글은 EBS 볼륨 확장 이후 Linux 인스턴스에서 파일 시스템을 확장하는 전체 흐름을
실무 기준으로 정리한 메모입니다.
먼저 알아두어야 할 점 (중요)
-
EBS 볼륨이
optimizing상태가 되자마자 파일 시스템 확장은 바로 시작 가능 -
중요한 데이터가 있는 볼륨이라면 사전에 스냅샷 생성 권장
-
Linux AMI가 MBR 파티션 테이블을 사용하는 경우
-
부팅 볼륨 최대 크기: 2TiB 제한
-
-
파티션이 있는 경우
-
볼륨 크기 증가 ≠ 파티션 크기 증가
-
Linux 파일 시스템 확장 전체 흐름
Linux에서 EBS 볼륨 확장은 항상 다음 순서를 따릅니다.
-
EBS 볼륨 크기 증가 (AWS 콘솔 또는 CLI)
-
파티션이 있는지 확인
-
(필요 시) 파티션 크기 확장
-
파일 시스템 확장
사전 확인: 파일 시스템과 디바이스 구조
파일 시스템 확인
블록 디바이스 및 파티션 구조 확인
이 두 명령으로 다음을 확인합니다.
-
파일 시스템 종류 (xfs / ext4 등)
-
파티션 존재 여부
-
볼륨 크기와 파티션 크기 차이
예제 1: NVMe EBS 볼륨 (Nitro 기반 인스턴스)
예: M5, C5, T3 등 Nitro 시스템
Root 볼륨: 8GB → 16GB
추가 볼륨: 8GB → 30GB
1️⃣ 현재 파일 시스템 확인
예시 출력:
2️⃣ 파티션 존재 여부 확인
해석:
-
/dev/nvme0n1(루트 볼륨)-
파티션 있음 → 파티션 확장 필요
-
-
/dev/nvme1n1(추가 볼륨)-
파티션 없음 → 바로 파일 시스템 확장 가능
-
3️⃣ 파티션 확장 (파티션이 있는 경우만)
⚠️ 디바이스 이름과 파티션 번호 사이에 공백 필요
확인:
4️⃣ 파일 시스템 확장
XFS 파일 시스템
XFS는 마운트 상태에서도 확장 가능
필요 시 도구 설치:
ext4 파일 시스템
5️⃣ 확장 결과 확인
예제 2: 기존 Xen 기반 인스턴스 (xvd 디바이스)
예: T2 인스턴스
Root 볼륨: 8GB → 16GB
추가 볼륨: 8GB → 30GB
1️⃣ 디바이스 구조 확인
→ 두 볼륨 모두 파티션 확장 필요
2️⃣ 파티션 확장
3️⃣ 파일 시스템 확장
XFS
ext4
4️⃣ 최종 확인
자주 헷갈리는 포인트 정리
-
볼륨 크기만 늘리고 끝내면 안 됨
-
파티션이 있으면
growpart먼저 -
XFS vs ext4 명령 다름
-
optimizing상태에서도 파일 시스템 확장 가능 -
운영 환경에서는 스냅샷 먼저
마무리
EBS 볼륨 확장은 자주 하는 작업이지만,
파일 시스템 확장 단계를 빼먹으면 실제 용량은 늘어나지 않습니다.
(추가) EBS 볼륨 자동 확장 방법 정리
AWS에서는 별도의 중단 없이 EBS 볼륨 크기를 조정할 수 있는
Elastic Volumes 기능을 제공합니다.
이를 활용하면 운영 중에도 볼륨 크기 확장이 가능하며,
여기에 간단한 자동화와 모니터링을 조합하면 사실상 자동 확장 구조를 만들 수 있습니다.
Elastic Volumes 개요
-
인스턴스 중지 없이 EBS 볼륨 크기 변경 가능
-
optimizing상태에서도 I/O 가능 -
대부분의 최신 인스턴스 타입에서 기본 지원
📌 단, 파일 시스템 확장은 여전히 OS 레벨에서 수행해야 합니다.
자동 확장 설계 패턴 (실무 기준)
패턴 1: CloudWatch + Lambda 기반 자동 확장 (가장 일반적)
구성 흐름
-
CloudWatch에서 디스크 사용률 모니터링
-
임계치 초과 시 Lambda 트리거
-
Lambda가 EBS 볼륨 크기 확장
-
인스턴스 내부에서 파일 시스템 확장 수행
CloudWatch 모니터링 설정
EBS는 기본적으로 볼륨 사용률(filesystem usage) 을 직접 제공하지 않습니다.
따라서 인스턴스 내부 지표를 CloudWatch로 올려야 합니다.
1️⃣ CloudWatch Agent 설치 (Linux)
2️⃣ 디스크 사용률 수집 설정 예시
적용:
3️⃣ CloudWatch Alarm 설정
예시:
-
Metric:
disk_used_percent -
Threshold: 80%
-
Period: 5분
-
Action: Lambda 트리거
Lambda를 이용한 EBS 볼륨 자동 확장
Lambda 로직 개념
-
현재 볼륨 크기 조회
-
일정 비율(예: +20%)로 확장
-
최대 크기 제한 적용 (예: 500GB)
의사 코드 예시
📌 중요
-
Lambda는 EBS 크기만 늘림
-
파일 시스템 확장은 별도 처리 필요
파일 시스템 자동 확장 방법
방법 1: cron + growpart + filesystem 명령 (가장 단순)
예시 스크립트:
cron 등록:
볼륨이 확장되면 다음 주기에 자동 반영됨
방법 2: systemd 서비스 + udev (조금 더 깔끔)
-
볼륨 크기 변경 이벤트 감지
-
systemd unit으로 growfs 실행
-
cron보다 중복 실행 리스크 적음
(이건 환경에 따라 복잡도가 올라가서 필요할 때만 추천)
운영 시 주의사항 (자동 확장)
-
❌ 자동 축소는 불가
-
❌ 무한 확장 방지 필요 (상한선 필수)
-
✅ 사전 스냅샷 또는 정기 백업 권장
-
✅ 알람은 “확장 성공/실패”도 함께 설정
모니터링 요약 정리
| 항목 | 방법 |
|---|---|
| 디스크 사용률 | CloudWatch Agent |
| 확장 트리거 | CloudWatch Alarm |
| 볼륨 확장 | Lambda (ModifyVolume) |
| 파일 시스템 | cron / systemd |
| 알림 | SNS 연계 |
정리
-
EBS는 Elastic Volumes 덕분에 온라인 확장이 가능
-
파일 시스템 확장은 여전히 OS 레벨 작업
-
CloudWatch + Lambda + 간단한 스크립트로
운영 부담 없는 자동 확장 구조 구성 가능 -
“완전 자동”보다는
모니터링 + 제한된 자동화가 가장 안전한 패턴
참고 자료 (AWS 공식 문서)
이 글에서 정리한 내용은 실제 운영 경험을 바탕으로 작성했으며,
아래 Amazon Web Services 공식 문서를 함께 참고하면
각 환경별 세부 사항을 더 정확하게 확인할 수 있습니다.
EBS 볼륨 확장 및 파일 시스템 관련
Amazon EBS 볼륨 크기 조정
https://docs.aws.amazon.com/ko_kr/ebs/latest/userguide/ebs-modify-volume.html
EBS Elastic Volumes 개념 및 온라인 확장 가능 여부 설명
Linux 인스턴스에서 EBS 볼륨 파일 시스템 확장
https://docs.aws.amazon.com/ko_kr/AWSEC2/latest/UserGuide/recognize-expanded-volume-linux.html
파티션 여부 확인, growpart, 파일 시스템 확장 절차
NVMe 기반 EBS 볼륨 설명
https://docs.aws.amazon.com/ko_kr/AWSEC2/latest/UserGuide/nvme-ebs-volumes.html
Nitro 인스턴스에서 NVMe 디바이스 명명 규칙
자동 확장 및 모니터링 관련
EC2 인스턴스 스토리지 옵션
- https://docs.aws.amazon.com/ko_kr/AWSEC2/latest/UserGuide/Storage.html
인스턴스 중지 없이 볼륨 확장 가능
CloudWatch Agent 설치 및 설정
CloudWatch 지표 및 알람 구성
EBS ModifyVolume API
https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ModifyVolume.html
Lambda를 이용한 볼륨 크기 확장 시 사용
스냅샷 및 백업
Amazon EBS 스냅샷 생성
댓글 없음:
댓글 쓰기