생활코딩

Coding Everybody

Elastic Block Store(EBS)

토픽 생활코딩 > 서버 > 인프라 > 아마존 웹서비스 (폐지예정)

EBS란?

EBS란 Elastic Block Store의 약자로 일종의 하드디스크라고 생각하면 된다. EBS의 특징은 아래와 같다.

  • 필요한 용량에 맞게 구입 할 수 있다. 이를테면 EC2 인스턴스를 웹서버의 용도로만 쓰고 파일 저장은 S3를 사용한다면 넉넉 잡고 1기가바이트만 구입하면 된다.
  • 필요에 따라서 즉시 생성하고, 제거 할 수 있다.
  • 사용한 만큼 과금 되는 종량제다. 자세한 내용은 설명서의 비용예측을 참고한다.
  • 내부적으로 데이터를 실시간 복제하고 있기 때문에 하드디스크에 비해서 데이터를 잃어버릴 확률이 현저히 낮다.
  • 스냅샷 기능을 제공해서 EBS의 현재 상태 그대로 보존 할 수 있다.
  • CloudWatch를 통해서 EBS의 통계를 열람 할 수 있다.
  • EC2 인스턴스를 제거해도 EBS는 독립적이기 때문에 데이터가 유지 된다.

Volume이란?

EBS로 생성한 (말하자면) 디스크 하나 하나를 볼륨이라고 부른다.

EBS 생성

EBS를 생성하고 이것은 인스턴스에 붙이는 방법에 대해서 알아보자.

사이드 바에서 ELASTIC BLOCK STORE 하위의 Volumes를 선택한다.

상단의 Create Volume를 클릭한다.

EBS 설정화면에 설정 값을 입력한다.

  • Size : EBS의 용량
  • Availability Zone : AZ에 대한 설명을 참고한다.
  • Snapshot : EBS는 현재 저장된 데이터 상태 그대로 보관할 수 있는데, 이를 스냅샷이라고 한다. 미리 만들어진 스냅샷을 선택해서 똑같은 데이터가 저장된 상태로 EBS를 새로 만들 수 있다.
  • Volume Type : IOPS는 디스크에 데이터를 읽고 쓰는 속도를 의미한다. IOPS를 선택하면 EBS의 읽기/쓰기 속도를 선택할 수 있고, 표준(standard)를 선택하면 IOPS의 값이 100으로 기본설정된다. (통상 7500rpm 속도의 하드디스크의 IOPS를 75~100 정도로 잡는다)

EC2 인스턴스에 EBS 붙이기

생성한 EBS를 EC2 인스턴스에 붙이기 위해서는 EBS 볼륨에 마우스 커서를 올려놓고 오른쪽 클릭을 한다. 이때 볼륨의 상태(State)가 Avaliable인 것만 EBS 인스턴스에 붙일 수 있다. in-use는 이미 사용중이라는 의미다. 또 볼륨과 인스턴스는 같은 가용성 존에 위치하고 있어야 한다. 아래는 Attach Volume를 선택한 결과다.

  • Instances :  볼륨을 붙이려는 인스턴스를 지정한다.
  • Devices : 마운트 하려는 장치의 이름을 지정한다. 마운트에 대한 자세한 설명은 생활코딩 리눅스 수업을 참고 한다. 마운트하는 장치의 이름은 리눅스의 버전에 따라서 달라질 수 있다. 구체적으로 마운트 하는 방법은 뒤에서 살펴본다.
  • Yes, Attach를 누르면 ECS 인스턴스에 EBS 볼륨이 장착된다.

EC2 인스턴스에서 EBS 인식하기

콘솔의 사이드 바에서 인스턴스를 선택해서 인스턴스 리스트 화면으로 이동한다. EBS를 붙인 인스턴스를 선택하면 인스턴스에 대한 디테일에 방금 추가한 볼륨의 이름이 아래와 같이 있는지 확인한다.

터미널을 이용해서 인스턴스에 접속한다. 인스턴스에 접근하는 방법은 이전 수업 '인스턴스 생성'을 참고 한다.

터미널에서 아래와 같이 입력한다. sdf는 위에서 확인한 Block Devices의 이름으로 변경해야 한다.

주의 : 아래의 명령은 볼륨의 데이터를 삭제한다. 인스턴스를 최초로 추가할 때만 실행한다.
sudo mkfs.ext4 /dev/sdf

아래와 같은 결과가 출력된다면 리눅스 커널에서 디바이스의 이름을 xvdf~xvdp로 변경했기 때문일 수 있다. 이런 경우 이름을 직접 찾아야 한다.

아래와 같이 명령을 입력한다.

df;

필자의 인스턴스는 위와 같이 출력된다. 붉은 색으로 강조한 표시는 /dev/xvda1이 이미 사용중이라는 뜻이다. 그럼 xvd로 시작하는 디바이스 중에 최근에 추가된 것이 우리가 찾고 있는 디바이스라고 추론 할 수 있을 것이다. 아래와 같이 입력한다.

ls -al /dev/xvd*

추가 된 디바이스의 이름이 /dev/xvdf 라는 것을 알아냈다. 이제 포멧을 다시 시도해보자.

주의 : 아래의 명령은 볼륨의 데이터를 삭제한다. 인스턴스를 최초로 추가할 때만 실행한다.
sudo mkfs.ext4 /dev/xvdf

마운트한 볼륨을 추가할 디렉토리를 생성한다. files라는 이름을 사용하고 싶다면 아래와 같이 한다.

sudo mkdir /files;

/files 디렉토리에 볼륨을 마운트하자.

sudo mount /dev/xvdf /files;

df 명령을 입력해서 아래와 같이 디바이스가 추가된 것을 확인한다.

EC2 인스턴스에서 EBS 볼륨 떼어내기

장치를 제거한다. (마운트를 해제한다) 

 

sudo umount /dev/xvdf;

EBS 볼륨 목록에서 해당 볼륨을 선택하고 Detach Volume를 선택한다. 

이 과정을 반복하면 EBS 볼륨을 다른 EC2 인스턴스에 붙일 수 있다. 

댓글

댓글 본문
  1. 위풍당당
    S3는 파일 Append가 안되던데, ESB는 가능한가요?
  2. 그라탱
    감사합니다.
  3. kyooho
    .
  4. ㅇㅇ
    단순파일이라면 S3가 훨 쌈요
    대화보기
    • WayneKing
      우분투 공부했을 때 가상 하드 만들어서 붙인 부분이랑 같네요.
    • eyedroot
      감사합니다~
    • 박지훈
      이거 아래 영상에서 EBS를 instance 에 attach하고 커널통해서 하는 거, 윈도우에서도 하는 건가요...?

      저는 인스턴스(리눅스)편은 건너띠고와서;
    • 박미희
      유익한 강의 감사합니다. 늘 잘 보고 있습니다 ^_^
      EBS 사용중인데 도중에 IOPS를 3000 --> 1000으로 다운시키고 싶은데 가능한가욤?? 아니면 신규 EBS를 생성해야 할까요?? 흐규
    • fready
      무료등급으로 테스트하려고 하는데요. 궁금한게 있습니다.

      처음 EC2인스턴스 생성할때 30기가 생성되던데, 첨부파일이나, 로그파일을 EC2안에 하드를 이용해서 저장해도 되는거죠?

      또한, EBS도 최소용량 1GB로 생성하면 무료인가요?

      요금 폭탄이 걱정되서 함부로 누르기가 겁나네요.. ^^;;

      강의 잘 보고있습니다. 감사합니다.
    • egoing
      S3는 데이터을 무제한으로 저장 가능한 신뢰성 높은 시스템이기 때문에 여기가 더 좋을 것 같구요. 데이터 분석이 끝나면 aws glacier에 저장하면 아주 저렴학하게 데이터를 보존 할 수 있습니다 2012. 12. 13. 오후 8:06 "Disqus" <notifications@disqus.net> 작성:</notifications@disqus.net>
      대화보기
      • 아트인
        예를 들어, 아파치 서버의 로그 파일을 저장한다면 EBS가 나을까요? S3가 나을까요?