AWS

가상 스토리지 EBS(Elastic Block Store) 생성하고 마운트 하기

RyanGomdoriPooh 2016. 8. 18. 19:05

EBS(Elastic Block Store)는 EC2의 인스턴스에 장착하여 사용할 수 있는 가상 저장 장치 입니다.


다음과 같은 이유로 EBS를 이미 생성된 EC2에서 사용할 수 있습니다.


1) 처음 EC2 Instance를 생성 시 만들었던 사이즈 스토리지 용량이 부족할때,

2) 운영체제를 중단시키지 않고 스토리지의 용량을 늘리고 싶을때,

3) 영구적인 데이터 보관이 필요할 때,

4) RAID로 데이터의 I/O 속도향상이나 보관의 안정성을 확보하고 싶을 때,


* 프리티어에서 사용 가능

: EBS는 프리 티어에서 무료로 사용 가능합니다. 단 조건이 있습니다 조건은 다음 프리티어 혜택 이미지를 첨부하겠습니다.

빨간색 네모는 EBS의 프리티어 헤택입니다.



EBS는 EC2에서 사용하는 하드디스크라고 생각하시면 됩니다.

원하는 용량을 붙일 수 있고, 성능(IOPS,아이옵스)를 설정할 수 있습니다. 

그리고 사용자가 삭제하기 전까지는 데이터가 안전하게 유지됩니다.


EBS의 B는 Block의 약자로써 블록장치라는 뜻을 내포합니다.

Unix/Linux 계통의 저장장치의 읽고 쓰는 한 단위를 Block이라고 부릅니다.


예를 들어서, 자기테이프, 플로피디스크, 하드디스크, 광학디스크, SSD 등 플래시 메모리가 대표적입니다.


EBS의 기본 용어

- 볼륨(Volume) : EC2에 바로 붙여서 쓸 수 있는 상태의 EBS 형태

- 이미지(Image) : AMI(Amazon Machine Image)를 줄여 부르는 말입니다. OS가 설치된 형태로 바로 EC2 Instance를 만들 수 있습니다.

- 스냅샷(SnapShot) : EBS를 특정시점에 내용을 그대로 복사해서 가지고 있는 파일로 스냅샷을 이용해서 EBS 볼륨과 AMI를 생성.

- IOPS(Input/Output Operation Per Second) : 저장 장치의 성능 측정 단위입니다. AWS는 추가 비용을 지불하고 높은 IOPS의 EBS를 생성 가능.


IOPS를 설정할 수 있는 값는 최소 100에서 최대 4000까지입니다.

IOPS는 16KB 단위로 처리하기 때문에 크기가 작은 파일이 있으면 16KB단위로 묶어서 처리하면 높은 성능을 낼 수 있습니다.



EBS 볼륨 생성하기

: EBS을 생성하기 위해서는 AWS 콘솔로 일단 들어갑니다. 그리고 EC2를 눌러서 Dashboard로 들어갑니다.



그리고 volume을 들어갑니다.


Create Volume을 선택하고 해당하는 Volume Type과 Size를 선택하고 나서 Create를 눌러줍니다.



그러면 볼륨하나가 생기게 됩니다. 그리곤 available이라고 State가 나타나게 됩니다.


새로생긴 EBS volume을 오른쪽을 클릭하여 Attach Volume을 눌러서 해당하는 Instance를 넣어 주시고 Attach를 눌러줍니다.

해당 인스턴스에 Description을 들어가보시면 추가된 것을 볼 수 있습니다.

해당하는 Volume을 사용하기 전에 포맷해서 사용하는 것이 좋습니다.


포맷을 하는 방법은 해당 EC2을 PuTTY로 접속하여서 다음과 같은 명령어를 사용하시면 포맷이 완료됩니다.

"$ sudo mkfs -t ext4 /dev/sdf" =설명=> "$ sudo mkfs [포맷시스템명] [볼륨루트]"


그리고 이제 Volume을 붙였기 때문에 이제 해야할 일은 사용하기 위해서 인스턴스로 접속하여 마운트하는 과정을 가져야합니다.

마운트하는 과정을 설명합니다.



EC2 인스턴스에서 EBS 볼륨 마운트하기

$ ls /dev/sdf -al        // /dev/sdf 장치가 있는지 확인합니다.

lrwxrwxrwx 1 root root 4 Apr 13 05:59 /dev/sdf -> xvdf        // /dev/xvdf 장치가 /dev/sdf로 심볼릭 링크되어있습니다.


이제 저장장치를 마운트 합니다. 심볼릭링크로 연결되어있기에 두 명령어가 가능합니다.

$ sudo mount /dev/sdf /mnt    =가능=>    $ sudo mount /dev/sdf /mnt

/mnt 라는 디렉토리는 다른 곳으로 지정해도 상관없습니다.


이제 연결을 끝났고 확인을 해보면 됩니다.

$ df -h

 Filesystem    Size    Used    Avail    Use%    Mounted on

/dev/xvdf        9.8G    23M    9.2G    1%        /mnt


로 연결된것이 나온다면 성공한 것입니다.



EC2 인스턴스에서 EBS 볼륨 제거하기

제거하는 과정은 마운트의 역순으로 가시면 됩니다.

EC2 Instance에 들어가시고


$ sudo umount /mnt

하시고

$ df -h

로 제거 되었는지 확인하시고


EC2 콘솔로 가서 Detach Volume 하시면 됩니다.



* EBS 볼륨과 RAID 볼륨은 OS에서 봤을때, HDD나 SSD가 똑같습니다. 따라서 EBS도 RAID 구성을 할 수 있습니다.

EC2와 EBS볼륨이 지원하는 RAID타입은 RAID 0, RAID 1, RAID 10 입니다. RAID 5,6은 성능저하가 되어 권장하지 않습니다.



* Reference

1. 아마존 웹 서비스를 다루는 기술 - 이재홍 - 이분의 책은 AWS의 바이블이라고 생각됩니다. 구매해서 보시는 것 추천.