메뉴
Amazon Elastic Compute Cloud
User Guide for Linux Instances

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

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

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

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

다음 절차를 통해 볼륨을 사용 가능하도록 만들 수 있습니다. Windows 인스턴스의 볼륨에 대한 지침은 Windows 인스턴스용 Amazon EC2 사용 설명서Windows에서 볼륨을 사용 가능하게 만들기 단원을 참조하십시오.

Linux에서 EBS 볼륨을 사용 가능하게 만들려면

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

  2. 커널의 블록 디바이스 드라이버에 따라 디바이스는 사용자가 지정한 것과는 다른 이름에 연결될 수 있습니다. 예를 들어 /dev/sdh라는 디바이스 이름을 지정할 경우 디바이스 이름이 /dev/xvdh 또는 /dev/hdh로 바뀔 수 있습니다. 대부분의 경우 뒤에 오는 문자는 그대로 유지됩니다. Red Hat Enterprise Linux의 일부 버전과 CentOS와 같은 Red Hat Enterprise Linux의 변형 버전에서는 뒤에 오는 문자가 변경될 수도 있습니다(즉 /dev/sda/dev/xvde로 바뀔 수 있음). 이 경우 각 디바이스 이름에서 뒤에 오는 문자는 같은 수로 늘어납니다. 예를 들어 /dev/sdb/dev/xvdf라는 이름으로 바뀌면 /dev/sdc/dev/xvdg로 이름이 바뀝니다. Amazon Linux AMI는 이름이 바뀐 디바이스에 지정한 이름에 대해 심볼 링크를 생성합니다. 다른 AMI는 다르게 작동할 수 있습니다.

    lsblk 명령을 사용하면 사용 가능한 디스크 디바이스 및 마운트 포인트(해당하는 경우)가 표시되어 사용 가능한 올바른 디바이스 이름을 결정하는 데 도움을 받을 수 있습니다.

    Copy
    [ec2-user ~]$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT xvdf 202:80 0 100G 0 disk xvda1 202:1 0 8G 0 disk /

    lsblk 명령의 출력에서는 전체 디바이스 경로 중 맨 앞에 /dev/가 생략됩니다. 이 예제에서 /dev/xvda1는 루트 디바이스(MOUNTPOINT는 Linux 파일 시스템 구조의 루트에 해당하는 /로 표시됨)로 마운트되고 /dev/xvdf는 연결되었지만 아직 마운트된 상태는 아닙니다.

    C5 인스턴스에서 EBS 볼륨은 NVMe 블록 디바이스로 표시됩니다. 사용자가 지정하는 디바이스 이름은 NVMe 디바이스 이름(/dev/nvme[0-26]n1)을 이용해 바뀝니다. 자세한 내용은 Amazon EBS 및 NVMe 단원을 참조하십시오.

  3. 볼륨에서 파일 시스템을 생성할지 여부를 결정합니다. 새 볼륨은 원시 블록 디바이스이므로 볼륨을 탑재하고 사용하기 전에 해당 볼륨에서 파일 시스템을 생성해야 합니다. 스냅샷에서 복구된 볼륨에는 이미 파일 시스템이 있을 수 있습니다. 기존 파일 시스템 위에 새 파일 시스템을 생성하면 해당 동작으로 데이터가 덮어쓰기됩니다. sudo file -s device 명령을 사용하면 파일 시스템 유형 등의 특수 정보를 확인할 수 있습니다.

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

    이전 명령의 결과 디바이스에 대한 data만 표시되면 해당 디바이스에 파일 시스템이 없는 것이므로 파일 시스템을 생성해야 합니다. 그 경우 단계 4을(를) 진행할 수 있습니다. 파일 시스템이 있는 디바이스에서 이 명령을 실행하면 결과가 다르게 표시됩니다.

    Copy
    [ec2-user ~]$ sudo file -s /dev/xvda1 /dev/xvda1: Linux rev 1.0 ext4 filesystem data, UUID=1701d228-e1bd-4094-a14c-8c64d6819362 (needs journal recovery) (extents) (large files) (huge files)

    이전 예제에서 디바이스에는 Linux rev 1.0 ext4 filesystem data가 있으므로 이 볼륨에서는 파일 시스템을 생성할 필요가 없습니다(출력에서 파일 시스템 데이터가 표시되면 단계 4으로 건너뛸 수 있습니다.)

    참고

    EBS 볼륨이 암호화된 경우 file 명령을 실행하면 임의 데이터가 반환됩니다.

  4. (조건부) 다음 명령을 사용하면 볼륨에 ext4 파일 시스템을 생성할 수 있습니다. device_name에 디바이스 이름을 바꿔 넣습니다(/dev/xvdf 등과 같이). 애플리케이션 요구 사항 또는 운영 체제 제한에 따라 ext3 또는 XFS 등 다른 파일 시스템 유형을 선택할 수 있습니다.

    주의

    이 단계에서는 비어 있는 볼륨이 마운트된 경우를 가정합니다. 이미 데이터가 있는 볼륨이 마운트된 경우(예를 들어, 스냅샷에서 복구된 볼륨) 볼륨을 마운트하기 전 mkfs 명령을 사용하지 마십시오(대신 다음 단계로 건너뛰기). 아니면 볼륨을 포맷하여 기존 데이터를 삭제합니다.

    Copy
    [ec2-user ~]$ sudo mkfs -t ext4 device_name
  5. 다음 명령을 사용하여 볼륨에서 사용할 마운트 포인트 디렉터리를 생성합니다. 마운트 포인트는 파일 시스템 트리에 볼륨이 위치하고 볼륨을 마운트한 후 파일을 읽고 쓰는 위치입니다. mount_point의 위치를 /data와 같이 변경합니다.

    Copy
    [ec2-user ~]$ sudo mkdir mount_point
  6. 다음 명령을 사용하여 방금 생성한 위치에 볼륨을 마운트합니다.

    Copy
    [ec2-user ~]$ sudo mount device_name mount_point
  7. (선택 사항) 시스템을 재부팅할 때마다 이 EBS 볼륨을 탑재하려면 디바이스에 대한 항목을 /etc/fstab 파일에 추가합니다.

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

      Copy
      [ec2-user ~]$ sudo cp /etc/fstab /etc/fstab.orig
    2. nano 또는 vim과 같이 텍스트 편집기를 사용하여 /etc/fstab 파일을 엽니다.

      참고

      파일을 루트로 열거나 sudo 명령을 사용하여 열어야 합니다.

    3. 다음 형식으로 볼륨 파일의 마지막에 새 줄을 추가합니다:

      device_name  mount_point  file_system_type  fs_mntops  fs_freq  fs_passno  

      이 줄의 마지막 세 필드는 파일 시스템 마운트 옵션, 파일 시스템의 덤프 빈도 및 부팅 시 파일 시스템 확인 순서입니다. 어떤 값을 입력해야 하는지 모르는 경우 다음 예제에 제공된 값을 사용하십시오(defaults,nofail 0 2). /etc/fstab 항목에 대한 자세한 내용은 fstab 매뉴얼 페이지(명령줄에 man fstab 입력)를 참조하십시오.

      시스템의 현재 디바이스 이름(/dev/sda1, /dev/xvda1 등)을 /etc/fstab에 사용할 수 있지만, 디바이스의 128비트 UUID(Universally Unique Identifier)를 사용할 것을 권장합니다. 시스템 선언 블록 디바이스 이름은 상황에 따라 변경될 수 있지만, UUID는 볼륨 파티션에 할당되어, 포맷되어 파티션 수명 동안 영구적으로 유지됩니다. UUID를 사용하면 하드웨어 재구성 후 /etc/fstab의 블록 디바이스 매핑으로 인해 시스템을 부팅할 수 없게 되는 경우가 줄어듭니다.

      디바이스의 UUID를 확인하려면 먼저 사용 가능한 디바이스를 조회합니다.

      Copy
      [ec2-user ~]$ df

      다음은 예제 출력입니다.

      Filesystem     1K-blocks    Used Available Use% Mounted on
      /dev/xvda1       8123812 1876888   6146676  24% /
      devtmpfs          500712      56    500656   1% /dev
      tmpfs             509724       0    509724   0% /dev/shm

      그런 다음 이 예제를 계속하여 두 명령 중 하나의 출력을 통해 /dev/xvda1의 UUID를 확인합니다.

      • sudo file -s /dev/xvda1

      • ls -al /dev/disk/by-uuid/

      예를 들어, /dev/xvda1에서 UUID de9a1ccd-a2dd-44f1-8be8-0123456abcdef를 확인한 경우, /etc/fstab에 다음을 추가하여 마운트 지점 /data에 ext4 파일 시스템을 마운트합니다.

      Copy
      UUID=de9a1ccd-a2dd-44f1-8be8-0123456abcdef /data ext4 defaults,nofail 0 2

      참고

      이 볼륨을 연결하지 않고 인스턴스를 부팅하려면(예: 이 볼륨이 서로 다른 인스턴스 사이를 이동할 수 있도록) 볼륨 마운트 시 오류가 있어도 인스턴스가 부팅되도록 하는 nofail 마운트 옵션을 추가해야 합니다. 16.04 이전의 Ubuntu 버전을 포함하는 Debian 계열 시스템에서는 nobootwait 탑재 옵션도 추가해야 합니다.

    4. /etc/fstab에 새 항목을 추가한 후 해당 항목이 작동하는지 확인해야 합니다. sudo mount -a 명령을 실행하여 /etc/fstab에서 모든 파일 시스템을 탑재합니다.

      Copy
      [ec2-user ~]$ sudo mount -a

      이전 명령에서 오류가 발생하지 않으면 /etc/fstab 파일이 정상이고 다음 부팅 시 파일 시스템이 자동으로 탑재됩니다. 명령에서 오류가 발생하면 오류를 검토한 다음 /etc/fstab를 수정합니다.

      주의

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

    5. (선택 사항) /etc/fstab 오류 수정 방법을 모르는 경우 다음 명령으로 항상 백업 /etc/fstab 파일을 복원할 수 있습니다.

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