제 블로그는 AWS 기반인데 box안에 nginx, php-fpm 등을 설치하여 워드프레스를 설치하여 운영하고 있습니다. 그런데 데이터 영역과 실행 영역을 나누어, 데이터를 보다 안전하게 보존하고, 문제가 있을 시에 빠르게 복구하고 싶어졌습니다. (인실직고를 하자면 기술적인 호기심으로 native 설치를 걷어내고 docker를 설치해보고자 했는데, 설치 중에 부팅이 안되는 문제로 인프라 아키텍쳐를 변경하기로 마음 먹었습니다.)

하드웨어 설정

EBS 생성

AWS EC2 콘솔에 들어가면 좌측에 Elastic Block Store > Volumes 항목이 있습니다. 들어가면 현재 운영중인 볼륨이 있습니다. Create Volume을 클릭하여 새로 만들어봅니다.

Create Volume in AWS EC2 console

참고로 SSD보다 Magnetic이 비용이 저렴합니다. 속도에 대한 요건에 맞추어 선택하면 되겠습니다. 저는 I/O가 많지 않고 실행 모듈에 비해 데이터 접근 비율이 적다는 판단하에 Magnetic을 선택하였습니다.

EBS 장착

생성 후에 해당 볼륨에 오른쪽 버튼을 클릭하여 Attach Volume을 선택해서 해당 인스턴스에 붙여줍니다. 이때 Device name은 실제 인스턴스 내에서 사용하므로 기억해둡니다. (AWS에서는 시스템 인터페이스로써 자동으로 매핑해줍니다.)

Attach Volume in AWS EC2 console

콘솔에서 모든 준비가 완료되었습니다.

소프트웨어 설정

위에서까지를 일반적인 로컬 환경에 입각해 생각해보면, 드라이버를 들고 본체를 뜯어서 하드디스크를 장착을 하고 SATA케이블과 파워케이블을 연결하고 CMOS에서 하드디스크를 인식하는 것까지 확인하는 것과 같습니다. 이제 남은 것은 부팅을 해서 하드디스크를 확인해서 포맷하고 알맞게 사용하는 것이겠죠.

장착 확인

다음 명령어로 볼륨이 잘 attach 되었는지 확인해 볼 수 있습니다.

lsblk
NAME    MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
xvda    202:0    0    40G  0 disk 
`-xvda1 202:1    0    40G  0 part /
xvdg    202:80   0   100G  0 disk

여기까지 주의깊게 보셨으면 눈치채셨겠지만, 최근 버전의 리눅스 커널들은/dev/sdg 식이 아닌 /dev/xvdg으로 구성됩니다. attach까지는 잘 장착된 것으로 보이네요.

파일시스템 확인

아무런 파티션 없이 깨끗한 상태이면 다음과 같이 data로 표시됩니다.

sudo file -s /dev/xvdg
/dev/xvdg: data

참고로 기존에 작업된 내역이 있는 볼륨은 다음과 같이 표시됩니다.

sudo file -s /dev/xvdf
'/dev/xvdf: Linux rev 1.0 ext4 filesystem data, ...

포맷

전체 디스크를 포맷합니다. (AWS EBS 자체가 가상디스크이므로 생성할 때 데이터 규모를 산정하고 이후에 전체 디스크를 포맷하는 것이 관리상 편리합니다.)

sudo mkfs -t ext4 /dev/xvdg

마운트

마운트를 하면 새 볼륨에 접근이 가능합니다.

sudo mkdir /backup
$ sudo mount /dev/xvdg /backup

영구적인 마운트

위 방법으로는 시스템 재시작 시에 다시 마운트를 해야합니다. /etc/fstab에 등록하면 부팅 시 자동으로 마운트됩니다.

LABEL=cloudimg-rootfs  /        ext4   defaults,discard  0  0
/dev/xvdg              /backup  ext4   defaults,nofail   0  0

Reference