본문으로 건너뛰기

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


Prerequisite​

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

알아두기​

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


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 설정에 오류가 없는지 테스트합니다.

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