Amazon Elastic Compute Cloud
Linux 인스턴스용 사용 설명서

Amazon EBS 볼륨을 Linux에서 사용할 수 있도록 만들기

인스턴스에 Amazon EBS 볼륨을 연결하면 이 볼륨은 블록 디바이스에서는 이동식 디스크로 표시됩니다. 볼륨을 원하는 파일 시스템으로 포맷한 다음 마운트합니다. EBS 볼륨을 사용할 수 있게 만들면 다른 볼륨과 동일한 방식으로 액세스할 수 있습니다. 이 파일 시스템에 작성된 모든 데이터가 EBS 볼륨에 작성되고 해당 디바이스를 사용하는 애플리케이션도 그대로 적용됩니다.

다른 볼륨을 생성할 때 기준으로 사용하거나 백업을 목적으로 EBS 볼륨의 스냅샷을 생성할 수 있습니다. 자세한 내용은 Amazon EBS 스냅샷 단원을 참조하십시오.

Windows 인스턴스의 볼륨에 대한 지침은 Windows 인스턴스용 Amazon EC2 사용 설명서에서 Windows에서 볼륨을 사용 가능하게 만들기 단원을 참조하십시오.

연결된 볼륨 포맷 및 탑재

루트 디바이스용 EBS 볼륨이 있는 EC2 인스턴스가 있으며, /dev/xvda, 방금 /dev/sdf를 이용해 인스턴스를 빈 EBS 볼륨에 연결했다고 가정합시다. 다음 절차에 따라, 새로 연결한 볼륨을 사용할 수 있게 만드십시오.

EBS 볼륨을 Linux에서 포맷 및 탑재

  1. SSH를 사용하여 인스턴스에 연결합니다. 자세한 내용은 Linux 인스턴스에 연결 단원을 참조하십시오.

  2. 디바이스는 블록 디바이스 매핑에 지정한 것과는 다른 디바이스 이름으로 인스턴스에 연결할 수 있습니다. 자세한 내용은 Linux 인스턴스의 디바이스 명명 단원을 참조하십시오. lsblk 명령을 사용하면 사용 가능한 디스크 디바이스 및 마운트 포인트(해당하는 경우)가 표시되어 사용 가능한 올바른 디바이스 이름을 결정하는 데 도움을 받을 수 있습니다. lsblk 명령의 출력에서는 전체 디바이스 경로 중 맨 앞에 /dev/가 생략됩니다.

    다음은 EBS 볼륨을 NVMe 블록 디바이스로 노출하는, Nitro 기반 인스턴스의 예시 출력입니다. 루트 디바이스는 /dev/nvme0n1입니다. 연결된 볼륨은 아직 탑재되지 않은 /dev/nvme1n1입니다.

    [ec2-user ~]$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT nvme1n1 259:0 0 10G 0 disk nvme0n1 259:1 0 8G 0 disk -nvme0n1p1 259:2 0 8G 0 part / -nvme0n1p128 259:3 0 1M 0 part

    다음은 T2 인스턴스의 예시 출력입니다. 루트 디바이스는 /dev/xvda입니다. 연결된 볼륨은 아직 탑재되지 않은 /dev/xvdf입니다.

    [ec2-user ~]$ 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 10G 0 disk
  3. 볼륨에 파일 시스템이 있는지 확인합니다. 새 볼륨은 원시 블록 디바이스이므로 볼륨을 탑재하고 사용하기 전에 해당 볼륨에서 파일 시스템을 생성해야 합니다. 스냅샷에서 복구된 볼륨에는 이미 파일 시스템이 있을 수 있습니다. 기존 파일 시스템 위에 새 파일 시스템을 생성하면 해당 동작으로 데이터가 덮어쓰기됩니다.

    file -s 명령을 사용하면 파일 시스템 유형 등의 디바이스 정보를 확인할 수 있습니다. 다음 예시 출력에서처럼 출력에 data만 표시된다면, 디바이스에는 파일 시스템이 없으며 사용자가 직접 생성해야 합니다.

    [ec2-user ~]$ sudo file -s /dev/xvdf /dev/xvdf: data

    디바이스에 파일 시스템이 있다면, 명령은 파일 시스템 유형에 관한 정보를 표시합니다. 예를 들어 다음 출력은 XFS 파일 시스템이 있는 루트 디바이스를 표시합니다.

    [ec2-user ~]$ sudo file -s /dev/xvda1 /dev/xvda1: SGI XFS filesystem data (blksz 4096, inosz 512, v2 dirs)
  4. (선택 사항) 이전 단계에서 디바이스에 파일 시스템이 있음을 발견했다면, 이 단계는 생략하십시오. 빈 볼륨이 있다면, mkfs -t 명령을 이용해 볼륨에서 파일 시스템을 생성하십시오.

    주의

    이미 데이터가 있는 볼륨(예: 스냅샷에서 복원한 볼륨)을 탑재한다면 이 명령을 사용하지 마십시오. 아니면 볼륨을 포맷하여 기존 데이터를 삭제합니다.

    [ec2-user ~]$ sudo mkfs -t xfs /dev/xvdf
  5. mkdir 명령을 사용하여 볼륨에서 사용할 탑재 지점 디렉터리를 생성합니다. 마운트 포인트는 파일 시스템 트리에 볼륨이 위치하고 볼륨을 마운트한 후 파일을 읽고 쓰는 위치입니다. 다음은 /data라는 이름의 디렉터리를 생성하는 예제입니다.

    [ec2-user ~]$ sudo mkdir /data
  6. 다음 명령을 사용하여 이전 단계에서 생성한 디렉터리에 볼륨을 탑재합니다.

    [ec2-user ~]$ sudo mount /dev/xvdf /data
  7. 새 볼륨 마운트의 파일 권한을 검토하여 사용자 및 애플리케이션이 볼륨에 기록할 수 있는지 확인합니다. 파일 권한에 대한 자세한 내용은 Linux Documentation Project에서 File security 단원을 참조하십시오.

  8. 탑재 지점은 인스턴스를 재부팅하면 자동으로 보존되지 않습니다. 재부팅 후에도 이 EBS 볼륨을 자동으로 탑재하고 싶다면, 재부팅 후에도 연결된 볼륨을 자동으로 탑재 단원을 참조하십시오.

재부팅 후에도 연결된 볼륨을 자동으로 탑재

시스템을 재부팅할 때마다 연결된 EBS 볼륨을 탑재하려면, 디바이스에 대한 항목을 /etc/fstab 파일에 추가합니다.

/etc/fstab에 있는 /dev/xvdf 같은 디바이스 이름을 사용할 수 있습니다. 하지만 디바이스의 128비트 UUID(Universally Unique Identifier)를 사용할 것을 권장합니다. 디바이스 이름은 바꿀 수 있지만, UUID는 파티션 수명이 다할 때까지 유지됩니다. UUID를 사용하면 하드웨어 재구성 후 시스템을 부팅할 수 없게 되는 경우가 줄어듭니다. 자세한 내용은 EBS 디바이스 식별 단원을 참조하십시오.

재부팅 후 연결된 볼륨을 자동으로 탑재하는 방법

  1. (선택 사항) 수정 도중 실수로 이 파일이 손상되거나 삭제되는 경우에 대비하여 /etc/fstab 파일의 백업을 생성합니다.

    [ec2-user ~]$ sudo cp /etc/fstab /etc/fstab.orig
  2. blkid 명령을 사용하여 디바이스의 UUID를 찾습니다.

    [ec2-user ~]$ sudo blkid /dev/xvda1: LABEL="/" UUID="ca774df7-756d-4261-a3f1-76038323e572" TYPE="xfs" PARTLABEL="Linux" PARTUUID="02dcd367-e87c-4f2e-9a72-a3cf8f299c10" /dev/xvdf: UUID="aebf131c-6957-451e-8d34-ec978d9581ae" TYPE="xfs"
  3. nano 또는 vim과 같은 텍스트 편집기를 사용하여 /etc/fstab 파일을 엽니다.

    [ec2-user ~]$ sudo vim /etc/fstab
  4. 다음 항목을 /etc/fstab에 추가해 디바이스를 지정된 탑재 지점에 탑재합니다. 필드는 blkid가 반환하는 UUID 값, 탑재 지점, 파일 시스템, 권장하는 파일 시스템 탑재 옵션입니다. 자세한 내용은 fstab의 매뉴얼 페이지(man fstab 실행)를 참조하십시오.

    UUID=aebf131c-6957-451e-8d34-ec978d9581ae /data xfs defaults,nofail 0 2

    참고

    (볼륨을 다른 인스턴스로 옮긴 후 등의 상황에서) 이 볼륨을 연결하지 않고 인스턴스를 부팅했다면, nofail 탑재 옵션을 이용해 볼륨 탑재 시 오류가 있더라도 인스턴스를 부팅할 수 있습니다. 16.04 이전의 Ubuntu 버전을 포함하는 Debian 계열 시스템에서는 nobootwait 탑재 옵션도 추가해야 합니다.

  5. 항목이 제대로 작동하는지 확인하기 위해, 다음 명령을 실행해 디바이스 탑재를 해제하고 /etc/fstab에서 모든 파일 시스템을 탑재합니다. 오류가 없다면 /etc/fstab 파일에 문제가 없다는 뜻이며, 파일 시스템은 재부팅 후 자동으로 탑재됩니다.

    [ec2-user ~]$ sudo umount /data [ec2-user ~]$ sudo mount -a

    오류 메시지가 표시된다면, 파일의 오류를 처리하십시오.

    주의

    /etc/fstab 파일에서 오류가 발생하면 시스템이 부팅되지 않을 수 있습니다. /etc/fstab 파일에서 오류가 발생한 시스템을 종료하지 마십시오.

    /etc/fstab의 오류 수정 방법을 모르며 이 절차의 첫 번째 단계에서 백업 파일을 만들었다면, 다음 명령을 이용해 백업 파일에서 복원을 진행할 수 있습니다.

    [ec2-user ~]$ sudo mv /etc/fstab.orig /etc/fstab