DevOps

EBS(Elastic Block Store) 다운사이징

Daniel0617 2022. 10. 25. 06:01

시나리오

EBS 사이즈를 크게 잡아 비용 절감을 위해 다운사이징을 실행한다.

주의해야 할 점은 기존에 EC2에 연결된 EBS는 다운사이징이 안된다. AWS에서 볼륨 크기 확대만 된다고 한다…ㅠㅠ

 

작업순서

1. 혹시 모를 사고에 대비해 기존에 사용되었던 EBS 스냅샷 실행

(EBS 스냅샷은 EBS를 사용하는 것과 거의 비슷한 비용을 지불해야 된다. 이점 참고!)

 

2. 다운사이징 EBS 생성

- EC2에 연결된 가용영역 확인 후 생성.

 

3. 다운사이징 타겟 EC2에 생성된 다운사이징 EBS 연결

 

4. 연결된 Disk(EBS) 파일시스템 생성

ex) sudo mkfs -t xfs /dev/nvme2n1

 

5. EBS Mount 설정

- 파일시스템 설정된 Disk(다운사이징 EBS)를 특정 디렉토리로 Mount 시킨다.

 

6. 기존 디렉토리에 있는 파일 이동(cp -r 원본디렉토리 타겟디렉토리)

- 기존 파일을 원하는 디렉토리에 Copy한다.

 

7. 파일 이동 후 기존 EBS umount 실행

- umount 실행 중 mv: cannot move '~~' to '~~~': Device or resource busy 경고문 발생 할 경우. “fuser -cu [디렉토리]” 명령어를 통해 해당 디렉토리에 연결된 프로세스를 확인한다.

- “fuser -ck [디렉토리]” 명령어를 통해 프로세스 종료.

- 종료 완료 후 기존에 연결되어 있던 EBS Volume umount 실행

 

8. 기존 EBS Volume & 디렉토리 삭제

 

9. EC2 재부팅 시 연결된 EBS가 자동 mount 실행 될 수 있도록 설정

 

적용방법

1. Volume 생성

알맞은 가용영역(Availability Zone)에 따라 EBS-Volume을 생성한다.

 

2. EC2 연결

 

주요 명령어

주요 명령어

// 디렉토리 용량 확인 방법(du)
du -h

// 누가 사용하고있는지 확인
fuser -cu 마운트경로

// 사용하고 있는 프로세스 강제 KILL
fuser -ck 마운트경로

// 디바이스 연결 디렉토리 체크
df -h

// 리눅스 디바이스 정보를 출력하는 명령어
lsblk

// 리눅스 디바이스 정보를 출력하는 명령어
lsblk -f

// 파일시스템 생성 명령어
sudo mkfs -t xfs /dev/nvme2n1

// 디렉토리 생성
sudo mkdir data-downsizing

// mount
sudo mount /dev/nvme2n1 /home/ubuntu/data-downsizing

//하위 디렉토리 소유자 그룹 모두 변경
sudo chown -R ubuntu:ubuntu /home/ubuntu/data-downsizing

//디렉토리 복사
sudo cp -r /home/ubuntu/data/* /home/ubuntu/data-downsizing

//디렉토리명 변경
rename [변경(전) 디렉토리명] [변경(후) 디렉토리명]

//하위 디렉토리 소유자 그룹 모두 변경
sudo chown -R ubuntu:ubuntu /home/ubuntu/data-downsizing

//ps 확인
ps -ef | grep root

 

참고

 

'DevOps' 카테고리의 다른 글

배포전략(Deployment Strategy)  (0) 2022.10.07
AWS Infra 설명서 : IAM  (0) 2022.10.06
AWS Infra Tutorial(1)  (0) 2022.08.23
CI/CD 참고  (0) 2022.03.17
3. Jenkins + git push 연동  (0) 2019.08.25