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

    mkfs.xfs이 발견되지 않는 오류가 발생하는 경우 다음 명령을 사용해 XFS 도구를 설치하고 이전 명령을 반복합니다.

    [ec2-user ~]$ sudo yum install xfsprogs
  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"

    Ubuntu 18.04의 경우 lsblk 명령을 사용합니다.

    [ec2-user ~]$ sudo lsblk -o +UUID
  3. nano 또는 vim과 같은 텍스트 편집기를 사용하여 /etc/fstab 파일을 엽니다.

    [ec2-user ~]$ sudo vim /etc/fstab
  4. 다음 항목을 /etc/fstab에 추가해 디바이스를 지정된 탑재 지점에 탑재합니다. 필드는 blkid가 반환하는 UUID 값(또는 Ubuntu 18.04의 경우 lsblk), 탑재 지점, 파일 시스템, 권장하는 파일 시스템 탑재 옵션입니다. 자세한 내용은 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