[AWS] EBS (Elastic Block Store) #3

­박찬영·2025년 2월 7일

AWS

목록 보기
3/15
post-thumbnail

📌 EBS


EBS란?

  • EBS(Elastic Block Store) : EC2에 연결(attach)하여 쓸 수 있는 블록 스토리지

    • 가상 하드디스크(HDD)의 역할

    • 단일 가용 영역 내에서 여러 서버에 걸쳐 복제됨

    • 특정 시점에 대한 볼륨 스냅샷(백업 파일)을 만들 수 있음

  • EBS와 EC2의 연결

    • EC2 인스턴스의 저장 타입 2가지 : EBS 기반, 인스턴스 저장 기반

    • EBS 기반 방식은 EC2와 EBS가 네트워크로 연결(느린 속도), EBS는 EC2 인스턴스가 종료되어도 별개로 작동하여 유지가 가능함 (재연결도 가능)

    • 이때 한 개의 EBS를 여러 개의 EC2 인스턴스에 연결 불가 (한 개의 EC2 인스턴스에 여러 개의 EBS 연결 가능)

    • 인스턴스 저장 기반 방식은 EC2 안에 스토리지가 들어있음(빠른 속도), EBS는 EC2 인스턴스에 종속적이며 보통 영구적이지 않은 데이터(캐시 데이터 등)를 저장

  • 볼륨(Volume) : EBS의 가장 기본적인 형태, EC2에 바로 연결 가능

    • 범용(General Purpose of GP3) : SSD

    • 프로비저닝 된 IOPS(Provisioned IOPS or io2) : SSD

    • 쓰루풋 최적화(Throughput Optimized HDD or st1)

    • 콜드 HDD(SC1)

    • 마그네틱(Standard)

      • IOPS(Input/Output Operations Per Second) : 저장 장치의 성능 측정 단위
  • 스냅샷(Snapshot) : 볼륨의 특정 시점을 그대로 복사하여 저장한 파일

    • 스냅샷은 S3(객체 기반 스토리지)에 저장되며 복수 개의 가용 영역에 자동으로 복제됨

    • 증분식 저장의 원리(변화된 데이터의 크기만 스냅샷하여 저장)

    • 스냅샷을 이용하여 볼륨을 생성하거나(특정 시점의 EBS 저장 데이터 복구 가능) AMI를 생성할 수 있음

    • 그러나 EC2 인스턴스를 직접 만들 수는 없음

    • 다른 가용 영역(AZ)이나 리전에 복사할 때 유용함

  • AMI(Amazon Machine Image) : 인스턴스를 실행하기 위한 정보를 모은 단위로, OS가 설치된 형태의 이미지(템플릿) 파일 (AMI로 EC2 인스턴스 생성 가능)

    • AMI 구성 : 1개 이상의 EBS 스냅샷, 인스턴스와 EBS 스냅샷의 연결 정보, 인스턴스 저장 기반 방식의 경우 루트 볼륨에 대한 템플릿, 사용 권한, EBS 블록 디바이스 맵핑 (EBS가 어떤 용량으로 얼마나 연결되었는지)

    • AMI 생성 과정 : EBS의 스냅샷(OS, 파일, 시작 권한 등)을 S3에 저장하고 이를 기반으로 만들어짐

    • AMI로 EC2 인스턴스를 생성·실행하거나, 다른 사람에게 공유 및 복사도 가능함



📌 EBS 사용해보기


EBS 볼륨 생성 및 EC2 인스턴스와 연결하기

  • EC2 인스턴스를 생성할 때 기본적으로 볼륨을 하나씩 생성

  • 가용 영역 : 현재 EC2 인스턴스가 생성된 가용 영역, 볼륨을 생성할 때도 동일한 가용 영역에 생성해야 EC2 인스턴스와 연결 가능

  • 디바이스 이름을 /dev/sd[f~p] (/dev/sda1 (루트)) 으로 설정하면 자동으로 /dev/xvd[f~p]로 나옴

  • 볼륨 연결 (디스크) 확인 : ls -asl /dev/xvd* (디렉토리 조회), lsblk (파일 시스템 조회)

    • *에는 알맞은 알파벳 기입
  • 볼륨에 파일 시스템이 있는지 확인 : file -s /dev/xvd* (값이 data라고 나오지 않으면 없는 것)

  • 볼륨을 파일 시스템으로 포맷 : sudo -s (루트 권한 획득), mkfs -t <볼륨_타입> /dev/xvdb (ex. mkfs -t ext4 /dev/xvdb)

  • 볼륨 마운트 설정

    • 마운트 : 보조기억장치(하드디스크, usb 등)을 디렉터리로서 사용할 수 있게 해주는 명령어

    • mkdir /xvd* (마운트 지점 디렉토리 생성), blkid (현재 파일시스템들의 UUID와 TYPE을 확인)

    • vi /etc/fstab로 파일을 열고 하단에 UUID={uuid값} /xvd* <볼륨_타입> defaults,nofail 0 2 형식으로 작성

    • mount -a (/etc/fstab에 있는 파일시스템 전체를 mount), df -h (리눅스 시스템 디스크 사용량 확인)

  • 볼륨 확장 시에는 '볼륨 수정'으로 크기 수정

    • 이후 sudo xfs_growfs -d <마운트_위치> (XFS 볼륨 유형일 때 폴더 안의 볼륨을 확장), sudo resize2fs <장치명> (ex4 볼륨 유형일 때 장치명을 가진 볼륨을 확장)

EBS 스냅샷 생성 및 삭제하기

  • 아래와 같이 스냅샷에서 볼륨 혹은 이미지(AMI) 생성도 가능함

  • 아래와 같이 수명 주기 관리자를 통해 스냅샷 생성을 자동화할 수도 있음


AMI 이미지 생성 및 EC2 인스턴스 복원하기


EBS 볼륨 삭제하기



📢 세 줄로 정리해보기!

1️⃣ EBS(Elastic Block Store)는 EC2에 연결(attach)하여 쓸 수 있는 블록 스토리지이며, 볼륨(Volume)은 EBS의 가장 기본적인 형태다. (단, 한 개의 EBS에 여러 개의 EC2 인스턴스 연결 불가)

2️⃣ 스냅샷(Snapshot)은 볼륨의 특정 시점을 그대로 복사하여 저장한 파일이다. 스냅샷을 이용해 볼륨을 생성하거나(특정 시점의 데이터 복구) AMI를 생성할 수도 있다.

3️⃣ AMI(Amazon Machine Image)는 인스턴스를 실행하기 위한 정보를 모은 단위로, OS가 설치된 형태의 이미지(템플릿) 파일이다. AMI로 EC2 인스턴스를 생성하고 실행할 수 있다.


참고 자료
소플의 처음 만난 AWS
EBS 개념 & 사용법 정리 (EBS Volume 추가하기)
AMI / Snapshot 개념 & 백업 사용법 정리

profile
Develop하는 개발자

0개의 댓글