본문으로 건너뛰기

[EBS] EBS 볼륨 생성, EC2 연결(추가) 및 스냅샷 가이드

EBS(Elastic Block Store)는 EC2 인스턴스에 연결하여 사용하는 가상 하드디스크입니다. EC2 인스턴스가 종료되어도 데이터가 유지되며, 필요에 따라 크기를 늘리거나 스냅샷(백업)을 생성할 수 있습니다.


Prerequisite

  • AWS 계정 접근 권한: EC2 및 EBS 볼륨을 생성하고 관리할 수 있는 권한이 필요합니다.
  • EC2 인스턴스가 생성되어 있어야 합니다: 볼륨을 연결할 대상 EC2 인스턴스가 실행 중이어야 합니다.
  • EC2 접속 환경이 준비되어 있어야 합니다: SSH 또는 SSM을 통해 EC2에 접속할 수 있어야 합니다. (볼륨 마운트 작업에 필요)
  • 가용 영역(AZ) 확인: EBS 볼륨은 EC2 인스턴스와 동일한 가용 영역(Availability Zone)에 있어야 연결할 수 있습니다.

Process

1. 볼륨 유형 비교

EBS는 용도에 따라 여러 볼륨 유형을 제공합니다. 볼륨을 생성하기 전에 적절한 유형을 선택해야 합니다.

유형이름용도최대 IOPS최대 처리량비용
gp3범용 SSD일반적인 워크로드 (권장)16,0001,000 MB/s낮음
gp2범용 SSD (이전 세대)일반적인 워크로드16,000250 MB/s중간
io1프로비저닝된 IOPS SSD고성능 데이터베이스64,0001,000 MB/s높음
st1처리량 최적화 HDD빅데이터, 로그 처리500500 MB/s매우 낮음
sc1콜드 HDD자주 접근하지 않는 데이터250250 MB/s가장 낮음

(알아두기) 대부분의 경우 gp3를 선택하면 됩니다. gp2 대비 비용이 20% 저렴하면서 성능은 더 높습니다.

2. EBS 볼륨 생성

새로운 EBS 볼륨을 생성하는 단계입니다.

  1. AWS Console에서 EC2 서비스로 이동합니다.

  2. 왼쪽 메뉴에서 Elastic Block Store > Volumes(볼륨)를 클릭합니다.

  3. Create volume(볼륨 생성) 버튼을 클릭합니다.

  4. 볼륨 설정을 입력합니다:

    • Volume type(볼륨 유형): General Purpose SSD (gp3) 선택
    • Size (GiB)(크기): 원하는 용량 입력 (예: 20)
    • IOPS: 기본값 3000 유지 (gp3 기본)
    • Throughput (MB/s)(처리량): 기본값 125 유지
  5. Availability Zone(가용 영역)을 EC2 인스턴스와 동일한 가용 영역으로 선택합니다.

(중요) 가용 영역이 다르면 볼륨을 EC2에 연결할 수 없습니다. EC2 인스턴스의 가용 영역은 EC2 콘솔의 인스턴스 상세 정보에서 확인할 수 있습니다. (예: ap-northeast-2a)

  1. Encryption(암호화): 보안이 필요한 경우 Encrypt this volume(이 볼륨 암호화)을 체크합니다. (일반적으로 필요 없음)

  2. Create volume(볼륨 생성) 버튼을 클릭합니다.

  3. 볼륨 상태가 Available(사용 가능)로 변경될 때까지 기다립니다.

3. EC2 인스턴스에 볼륨 연결 (Attach)

생성한 볼륨을 EC2 인스턴스에 연결하는 단계입니다. 물리적으로 하드디스크를 꽂는 것과 같은 작업입니다.

  1. Volumes(볼륨) 목록에서 방금 생성한 볼륨을 선택합니다.

  2. Actions(작업) 드롭다운에서 Attach volume(볼륨 연결)을 클릭합니다.

  3. Instance(인스턴스) 필드에서 볼륨을 연결할 EC2 인스턴스를 선택합니다.

  4. Device name(디바이스 이름)은 원하는 값을 선택합니다. (예: /dev/sdf)

(알아두기) Linux에서 실제로 인식되는 디바이스 이름은 /dev/xvdf 등으로 다를 수 있습니다. 이는 정상적인 동작입니다.

  1. Attach volume(볼륨 연결) 버튼을 클릭합니다.

  2. 볼륨 상태가 In-use(사용 중)로 변경되면 연결 완료입니다.

4. EC2 내부에서 볼륨 마운트

볼륨을 연결했지만 아직 사용할 수 없습니다. 운영체제에서 볼륨을 인식하고 사용할 수 있도록 포맷(파일 시스템 생성)하고 마운트하는 단계입니다.

  1. SSH 또는 SSM으로 EC2 인스턴스에 접속합니다.
ssh -i [키파일].pem ec2-user@[EC2-퍼블릭-IP]

예시:

ssh -i ~/Downloads/my-key.pem ec2-user@13.125.100.200

연결된 볼륨 확인

  1. 다음 명령어로 연결된 디스크 목록을 확인합니다.
lsblk

출력 예시:

NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvda 202:0 0 8G 0 disk
└─xvda1 202:1 0 8G 0 part /
xvdf 202:80 0 20G 0 disk

xvdf가 새로 연결한 20GB 볼륨입니다. MOUNTPOINT가 비어 있으면 아직 마운트되지 않은 상태입니다.

파일 시스템 생성 (포맷)

  1. 새 볼륨에 파일 시스템을 생성합니다.
sudo mkfs -t ext4 /dev/[디바이스명]

예시:

sudo mkfs -t ext4 /dev/xvdf

(중요) 이 명령어는 새 볼륨에만 실행하세요. 기존 데이터가 있는 볼륨에 실행하면 모든 데이터가 삭제됩니다.

마운트 디렉토리 생성

  1. 볼륨을 연결할 디렉토리를 생성합니다.
sudo mkdir /data

볼륨 마운트

  1. 볼륨을 생성한 디렉토리에 마운트합니다.
sudo mount /dev/[디바이스명] [마운트경로]

예시:

sudo mount /dev/xvdf /data

  1. 마운트가 정상적으로 되었는지 확인합니다.
df -h

출력 예시:

Filesystem Size Used Avail Use% Mounted on
/dev/xvda1 8.0G 1.5G 6.5G 19% /
/dev/xvdf 20G 45M 19G 1% /data

/data에 100GB 볼륨이 마운트된 것을 확인할 수 있습니다.

5. 스냅샷 생성

스냅샷은 EBS 볼륨의 특정 시점 백업입니다. 스냅샷을 사용하면 데이터를 복원하거나 다른 리전으로 복제할 수 있습니다.

  1. EC2 콘솔의 왼쪽 메뉴에서 Elastic Block Store > Snapshots(스냅샷)을 클릭합니다.

  2. Create snapshot(스냅샷 생성) 버튼을 클릭합니다.

  3. 스냅샷 설정을 입력합니다:

    • Resource type(리소스 유형): Volume(볼륨)
    • Volume ID(볼륨 ID): 백업할 볼륨을 선택합니다.
    • Description(설명): 스냅샷 용도를 입력합니다. (예: data-volume-backup-20260324)
  4. Create snapshot(스냅샷 생성) 버튼을 클릭합니다.

  5. 스냅샷 상태가 Completed(완료)로 변경되면 백업이 완료된 것입니다. 볼륨 크기에 따라 수 분에서 수 시간이 소요될 수 있습니다.

(알아두기) 스냅샷은 S3에 저장되며, 변경된 데이터만 저장하는 증분(incremental) 방식이므로 비용 효율적입니다. 첫 번째 스냅샷만 전체 볼륨 크기만큼 소요되고, 이후 스냅샷은 변경분만 저장됩니다.


Trouble Shooting

EBS 볼륨 생성, 연결, 마운트 과정에서 발생할 수 있는 문제 확인 사항입니다.

볼륨 연결(Attach) 시 인스턴스가 목록에 표시되지 않는 경우

  • 볼륨과 EC2 인스턴스의 가용 영역(AZ)이 동일한지 확인합니다. (예: 볼륨이 ap-northeast-2a, 인스턴스가 ap-northeast-2c이면 연결 불가)
  • 다른 AZ에 볼륨이 필요하면, 스냅샷을 생성한 후 원하는 AZ에서 새 볼륨을 만들어야 합니다.

lsblk에서 새 볼륨이 보이지 않는 경우

  • 볼륨 상태가 In-use(사용 중)인지 AWS 콘솔에서 확인합니다.
  • 몇 초 기다린 후 lsblk 명령어를 다시 실행합니다.

mkfs 실행 시 "is apparently in use by the system" 오류

  • 해당 볼륨이 이미 마운트되어 있을 수 있습니다. df -h 명령어로 확인합니다.
  • 이미 파일 시스템이 있는 볼륨은 포맷하면 데이터가 삭제됩니다. sudo file -s /dev/xvdf 명령어로 파일 시스템 존재 여부를 먼저 확인하세요.

mount 후 /data 디렉토리에 접근이 되지 않는 경우

  • ls -la /data 명령어로 권한을 확인합니다.
  • 필요시 sudo chown ec2-user:ec2-user /data 명령어로 소유자를 변경합니다.

재부팅 후 자동 마운트가 되지 않는 경우

  • /etc/fstab 파일의 UUID가 정확한지 sudo blkid 명령어로 다시 확인합니다.
  • sudo mount -a 명령어를 실행하여 fstab 설정에 오류가 없는지 테스트합니다.

또 다른 질문이 있으십니까? 문의 등록