EBS란 EC2 인스턴스에서 디스크처럼 사용할 수 있는 스토리지로 다수의 인스턴스에 동시에 연결할 수 있는 AWS의 외장 하드디스크
EBS는 아래와 같은 특징이 있다.
서버에서 작업을 하다보면 디스크 용량이 부족한 경우가 있다. 이 때 디스크를 증설해줘야 되는데 AWS의 경우 2가지 방법이 있다.
루트 volume 확장 같은 경우 인스턴스의 volume에서 사이즈만 늘려주면 되고,
EBS를 생성하여 인스턴스에 마운트 해주면 새로운 파일 시스템으로 /가 아닌 지점에 마운트 해줄 수 있다.
인스턴스에 스토리지를 8G로 설정하고 생성하고 df -h 명령어를 실행하면 서버의 디스크 용량을 확인할 수 있다. 기본적으로 /에 마운트되며 저 루트 volume을 확장하려면 인스턴스 중지 후 해당 volume 사이즈만 조절하면 된다. 인스턴스 중지 → volume ID 선택 → vloume 수정 → 인스턴스 재기동 → df -h
/dev/xvda1가 20G로 늘어난걸 확인할 수 있다.
또 다른 방법으론 EBS volume을 생성하여 인스턴스에 마운트 해주는 방법도 있다. 이 방법을 이용하면 /가 아닌 다른 곳에 마운트해줄 수 있다.
서버에 DB 등을 설치하고자 할 때 DB 관련 디렉터리는 대부분 DBA 분들만 사용하기 때문에 해당 디렉터리의 소유권을 DBA 분들로 지정하게 된다.
해당 디렉터리의 디스크가 다 차게 되었을 경우 EBS volume만 마운트해주면 간단히 디스크 증설이 가능하다.
이런 식으로 디렉터리 별로 디스크 관리를 할 때 EBS volume 마운트를 사용하면 용이하다.
volume → volume 생성 → vloume 설정 → 생성
volume 유형에서 SSD는 빠른 처리, HDD는 SSD에 비해 처리는 느리지만 사이즈가 크다.
생성한 volume을 인스턴스에 연결해주면 된다. 참고에 나와있지만 실제 장치명이 sdf여도 최신 linux 버전에선 /xvdf로 나온다.
참고로 5세대 인스턴스 유형의 경우, 실제 파일시스템을 조회하면 /dev/nvme[0-26]n1으로 나온다.
웹 콘솔에서 인스턴스를 확인해 보면 아래처럼 마운트가 잘 된 모습을 볼 수 있다.
서버에서도 lsblk로 EBS volume이 잘 연결되었는지 확인할 수 있다.
처음 EBS volume을 연결하면 해당 volume은 이동식 디스크로 표시된다. volume을 원하는 파일 시스템으로 먼저 포맷해주어야 한다.
XFS 유형의 파일시스템으로 포맷
sudo mkfs -t [volume type] [장치명]
이 때 UUID가 같이 생성된다. 이제 해당 파일 시스템을 마운트 해줘야 하는데 시스템이 재부팅되더라도 자동으로 마운트 되게할 수 있다.
당연히 마운트 할 디렉터리도 존재해야 한다. (/volume_test)
sudo blkid → 마운트할 파일시스템의 UUID와 TYPE 체크
sudo vi /etc/fstab
→ UUID=[파일 시스템의 UUID] [마운트할 위치] [파일시스템 형식] 형식으로 fstab에 추가
위 작업 후 sudo mount -a
를 하면 된다. (fstab의 전체 파일시스템을 재마운트)
잘 마운트가 된 모습을 볼 수 있다.