네모네모새

AWS EC2에 EBS 볼륨 연결하여 사용하기 본문

AWS/Infra

AWS EC2에 EBS 볼륨 연결하여 사용하기

네모새 2021. 8. 24. 14:54

AWS에서 내세우는 장점 중 하나는 탄력성입니다.

 

AWS의 대표적이고 가장 기본적인 서비스인 EC2(Elastic Compute Cloud)에도 탄력적이라는 단어가 들어가고 있습니다.

AWS에서는 탄력성을 "최소한의 마찰로 컴퓨팅 리소스의 규모를 쉽게 늘리거나 줄이는 능력" 이라고 정의하고 있습니다.

 

이번에는 탄력적으로 변경할 수 있는 리소스 중 하나인 블록 스토리지(EBS)를 EC2에서 마운트하여 사용할 수 있도록 설정해보겠습니다.

 

볼륨 부착 후 확인

AWS 콘솔을 통해 EC2 인스턴스를 생성하고 해당 인스턴스에 EBS 볼륨을 부착한 뒤 EC2 인스턴스에서 df -h를 입력하면 부착한 EBS 볼륨이 확인되지 않습니다.

lsblk 명령여를 통해 스토리지 디바이스 정보 확인

이 때, lsblk 명령어를 입력해 스토리지 디바이스를 확인하면 xvda1로 파티션된 루트 스토리지와 파티션이 생성되지 않은 xvdf라는 스토리지가 존재하는 것을 확인할 수 있습니다.

xvdf의 경우 파일시스템과 마운트포인트 부분이 비어있는 것을 확인할 수 있습니다.

 

리눅스에서 해당 스토리지 볼륨을 인식하기 위해서는 파티션 작업이 필요합니다. 파티션 작업을 진행하기 위해 파티션 테이블을 관리할 수 있는 fdisk 명령어를 사용하겠습니다.

스토리지 파티션을 LVM으로 변경할텐데 LVM은 볼륨을 효율적이고 유연하게 사용하기 위해 사용하며 자세한 사항은 검색을 통해 확인해주시면 될 것 같습니다.

# 위에서 파티션 작업이 수행되지 않은 xvdf 설정
fdisk /dev/xvdf

command에 p입력시 현재 디스크의 파티션 테이블 확인 가능
command에 n을 입력해 새로운 파티션 생성 번호는 1번, sector는 입력하지 않고 엔터
t를 입력해 파티션 타입을 LVM으로 변경 후 w 입력해 저장

fdisk 명령을 통해 xvdf에 파티션을 생성한 뒤 다시 lsblk -f 명령어로 스토리지 디바이스 정보를 확인해 보겠습니다.

lsblk -f 명령어 입력

처음  lsblk 명령어를 사용했을때는 존재하지 않던 xvdf1이라는 파티션이 생성된것을 확인할 수 있습니다.

 

fdsik -l

fdisk에 -l 옵션을 입력할 시 디스크 및 파티션 정보를 확인할 수 있는데 맨 아래 아래의 /dev/xvdf 디스크를 확인할 수 있고 맨 아래의 /dev/xvdf1이라는 파티션이 LVM 타입으로 존재하는 것을 확인할 수 있습니다.

 

다음으로는 물리볼륨을 생성하겠습니다.

pvcreate를 통해 물리볼륨 생성

pvcreate 명령어를 통해 물리볼륨을 생성할 수 있습니다.

vgcreate를 통해 볼륨그룹 생성

vgcreate를 통해 볼륨그룹을 생성하였습니다. 현재 진행중인 환경에서는 스토리지가 하나밖에 존재하지 않고 해당 스토리지에서도 파티션을 하나밖에 생성하지 않았지만 다수의 스토리지와 파티션이 존재하는 경우 vgcreate 명령어를 통해 특정 파티션들을 그룹화 할 수 있습니다.

lvcreate를 통해 논리 볼륨 생성

다음으로는 논리 볼륨을 생성해줍니다.

볼륨 정보 확인

위에서 사용했던 lsblk와 fdisk -l 명령어를 통해 생성한 논리 볼륨의 정보를 확인할 수 있습니다.

 

이제 파일시스템을 생성하겠습니다.

mkfs 명령어를 통해 파일 시스템 생성

mkfs 명령어를 입력해 생성한 볼륨그룹인 testvg의 논리볼륨 testlv의 파일시스템을 ext4로 포맷합니다.

lblk 명령어로 파일시스템 확인

lsblk -f 명령어를 통해 확인시 testvg-testlv의 파일시스템이 ext4로 바뀐것을 확인할 수 있습니다.

마운트 경로 생성

이제 해당 스토리지를 마운트할 폴더를 생성하겠습니다. '/' 경로에 mount라는 이름의 폴더를 생성하였습니다.

볼륨 마운트

mount [스토리지] [경로] 명령어를 통해 기존에 생성한 논리 볼륨을 /mount 디렉토리에 마운트 해주면 df -h 명령어를 통해 맨 아래 스토리지가 정상적으로 마운트 도니 것을 확인할 수 있습니다.

 

볼륨이 마운트 되었지만 해당 볼륨은 서버를 재부팅하면 부착 해제됩니다. 서버 시작시 해당 볼륨이 자동으로 부착되도록 하기 위해서는 설정이 필요합니다.

# 해당 파일 수정
vi /etc/fstab

# [볼륨] [마운트 경로] [ 파일시스템] [옵션]
/dev/testvg/testklv	/mount	ext4	defaults 0 0

vi /etc/fstab에 설정 추가

fstab 파일을 수정해 마운트 정보를 추가해주면 서버 시작시마다 해당 볼륨이 자동으로 부착되도록 할 수 있습니다.

 

이미 생성된 Logical Volume에 용량을 추가한 뒤 df -h를 했을 때 반영이 안되었을 경우 xfs_grows 명령어를 통해 반영해주어야 합니다.

 

현재 실습을 통해서는 하나의 스토리지만을 사용해 파티션과 마운트를 진행했지만 파티션 및 논리볼륨 설정 과정에서 하나의 디스크를 여러 용량으로 파티션해 사용하거나 여러개의 디스크를 하나처럼 사용하도록 설정할 수 있습니다.

 

또한, AWS의 EC2와 EBS를 통해 실습했지만 다양한 클라우드에서 EC2와 EBS처럼 VM과 블록스토리지 서비스를 제공하고 있기 때문에 동일한 방법으로 활용할 수 있습니다.

Comments