AWS EC2 볼륨 연결
ec2 인스턴스에 볼륨을 추가하는 방법을 공유합니다.
볼륨 추가 방법
1. 볼륨 생성
EC2 메뉴 -> EBS -> 볼륨 추가
생성하고자 하는 볼륨의 크기와 유형 등 기본 설정을 입력하여 추가하고자 하는 볼륨을 생성합니다.
2. 볼륨 연결
EBS -> 연결하고자 하는 볼륨 선택 -> 작업 -> 볼륨 연결
생성된 볼륨을 EC2에 연결합니다.
디바이스 이름은 기본 루트 볼륨의 이름을 피해 지정하여 입력합니다.
3. 볼륨 마운트
볼륨은 EC2인스턴스에 연결(매핑) 되었지만, 시스템에 마운트 되지는 않은 상태이므로 추가적으로 마운트 하는 과정이 필요합니다.
- 마운트: 물리적인 디바이스를 특정 디렉토리에 연결하는 작업
즉 디바이스(물리 장비) 자체는 EC2에 연결이 되었지만, OS에서 접근은 불가능한 상태입니다.
lsblk: 연결된 스토리지 디바이스 정보 확인
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvda 202:0 0 30G 0 disk
└─xvda1 202:1 0 30G 0 part /
xvdf 202:80 0 10G 0 disk
명령어를 통해 확인한 결과입니다. xvda는 기존에 연결된 루트 볼륨이며, xvdf는 새로 연결된 볼륨입니다.
MOUNTPOINT를 보면 새로 연결된 볼륨은 아직 마운트 되지 않은 것을 볼 수 있습니다.
df -hT: 마운트된 디스크의 여유 공간 확인
Filesystem Type Size Used Avail Use% Mounted on
devtmpfs devtmpfs 474M 0 474M 0% /dev
tmpfs tmpfs 483M 0 483M 0% /dev/shm
tmpfs tmpfs 483M 480K 482M 1% /run
tmpfs tmpfs 483M 0 483M 0% /sys/fs/cgroup
/dev/xvda1 xfs 30G 7.4G 23G 25% /
tmpfs tmpfs 97M 0 97M 0% /run/user/0
tmpfs tmpfs 97M 0 97M 0% /run/user/1000
디스크의 여유 공간을 확인해보면 루트 볼륨은 마운트 되어 사용 가능하지만, 새로 연결한 볼륨은 아직 접근이 불가능한 상황입니다.
디스크를 연결하기 위해서는 다음과 같은 과정이 필요합니다.
- 디스크에 파일 시스템 생성(포맷)
- 디렉토리 생성
- 디렉토리와 디바이스 연결
파일 시스템 생성
볼륨에 파일 시스템을 생성합니다. 디스크로만 존재하던 볼륨에 파일시스템을 지정하여 OS에서 사용할 수 있도록 합니다.
기존 루트 볼륨의 파일 시스템이 xfs 이므로 동일하게 생성합니다.
mkfs -t xfs /dev/xvdf
디렉토리 생성
생성된 볼륨이 탑재될 디렉토리를 생성합니다. 볼륨에 파일 시스템을 지정한 이후, 접근할 디스크를 생성하여 연결합니다.
mkdir /data
디렉토리와 디바이스 연결
생성된 볼륨과 디렉토리를 연결하여 OS에서 디스크에 접근할 수 있도록 합니다.
mount /dev/xvdf /data
lsblk로 연결 확인
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvda 202:0 0 30G 0 disk
└─xvda1 202:1 0 30G 0 part /
xvdf 202:80 0 10G 0 disk /data
확인 결과 MOUNTPOINT가 /data로 지정되어 마운트가 된 것을 확인할 수 있습니다.
디스크의 여유 공간 확인
Filesystem Type Size Used Avail Use% Mounted on
devtmpfs devtmpfs 474M 0 474M 0% /dev
tmpfs tmpfs 483M 0 483M 0% /dev/shm
tmpfs tmpfs 483M 480K 482M 1% /run
tmpfs tmpfs 483M 0 483M 0% /sys/fs/cgroup
/dev/xvda1 xfs 30G 7.4G 23G 25% /
tmpfs tmpfs 97M 0 97M 0% /run/user/0
tmpfs tmpfs 97M 0 97M 0% /run/user/1000
/dev/xvdf xfs 10G 43M 10G 1% /data
파티션을 생성하여 마운트
- 파티션: 논리적으로 디스크 공간을 분할하는 것
디스크를 파티션으로 나눠 관리하면 각 디스크 공간을 침범하지 않으며 데이터를 저장할 수 있으며, 종류별로 데이터를 구분하여 저장할 수 있습니다.
앞서, 디스크 연결을 위해 3단계를 언급했는데 그 이전에 파티션을 생성하여 마운트 하는 과정을 알아봅니다.
먼저 연결했던 디스크를 마운트 해제합니다.
umount /dev/xvdf
파티션 생성
예시로 파티션을 2개 생성하여 연결합니다.
파티션 생성 모드 진입
fdisk /dev/xvdf
해당 명령어로 파티션 생성 모드에 진입합니다. 대화형으로 파티션 생성, 확인 등을 진행할 수 있습니다.
명령어 예시
- p: 파티션 상태 출력
- n: 파티션 생성
- d: 파티션 삭제
- w: 저장 후 종료
- q: 취소 후 종료
파티션 생성 진입
Command (m for help): n
Partition type
p primary (0 primary, 0 extended, 4 free)
e extended (container for logical partitions)
Select (default p): p
파티션 생성을 선택하여 진입한 상태입니다. 파티션 유형을 선택 p를 선택하여 주 파티션 생성, e를 선택하여 확장 파티션 영역을 t생성합니다.
파티션 생성 및 사이즈 지정
Select (default p): p
Partition number (1-4, default 1): 1
First sector (2048-20971519, default 2048): 2048
Last sector, +sectors or +size{K,M,G,T,P} (2048-20971519, default 20971519): 10485760
Created a new partition 1 of type 'Linux' and of size 5 GiB.
Command (m for help): n
Partition type
p primary (1 primary, 0 extended, 3 free)
e extended (container for logical partitions)
Select (default p): p
Partition number (2-4, default 2): 2
First sector (10485761-20971519, default 10487808): 10487808
Last sector, +sectors or +size{K,M,G,T,P} (10487808-20971519, default 20971519): 20971519
Created a new partition 2 of type 'Linux' and of size 5 GiB.
파티션 생성 확인
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvda 202:0 0 30G 0 disk
└─xvda1 202:1 0 30G 0 part /
xvdf 202:80 0 10G 0 disk
├─xvdf1 202:81 0 5G 0 part
└─xvdf2 202:82 0 5G 0 part
마운트
파일 시스템 생성
mkfs -t xfs /dev/xvdf1
mkfs -t xfs /dev/xvdf2
디렉토리 생성 및 마운트
mount /dev/xvdf1 /data
mount /dev/xvdf2 /data2
마운트 확인
Filesystem Type Size Used Avail Use% Mounted on
devtmpfs devtmpfs 474M 0 474M 0% /dev
tmpfs tmpfs 483M 0 483M 0% /dev/shm
tmpfs tmpfs 483M 488K 482M 1% /run
tmpfs tmpfs 483M 0 483M 0% /sys/fs/cgroup
/dev/xvda1 xfs 30G 7.4G 23G 25% /
tmpfs tmpfs 97M 0 97M 0% /run/user/0
tmpfs tmpfs 97M 0 97M 0% /run/user/1000
/dev/xvdf1 xfs 5.0G 38M 5.0G 1% /data
/dev/xvdf2 xfs 5.0G 38M 5.0G 1% /data2