메뉴
Amazon Elastic Compute Cloud
User Guide for Linux Instances

인스턴스 스토리지 스왑 볼륨

Linux에서 스왑 공간은 물리적으로 할당된 것보다 더 큰 메모리가 시스템에 필요할 때 사용될 수 있습니다. 스왑 공간이 활성화되면 Linux 시스템은 물리 메모리에서 자주 사용되지 않는 메모리 페이지를 스왑 공간(기존 파일 시스템의 스왑 파일 또는 전용 파티션)으로 스왑하고 고속 액세스가 필요한 메모리 페이지용으로 해당 공간을 해제합니다.

참고

메모리 페이징용으로 스왑 공간을 사용하는 것은 RAM을 사용하는 것보다 빠르거나 효율적이지 않습니다. 워크로드가 메모리를 스왑 공간으로 정기적으로 페이징하는 경우 큰 RAM 용량을 갖는 대형 인스턴스 유형으로 마이그레이션할 것을 고려해야 합니다. 자세한 내용은 인스턴스 크기 조정 단원을 참조하십시오.

c1.mediumm1.small 인스턴스 유형의 물리적 메모리 공간은 제한적이고 실행 시 Linux AMI용 가상 메모리로 사용할 수 있는 스왑 공간으로 900MiB가 제공됩니다. 비록 Linux 커널은 이 스왑 공간을 루트 디바이스의 한 파티션으로 인식하지만 그것은 루트 디바이스 유형과 상관없이 실제로 별도의 인스턴스 스토어 볼륨입니다.

Amazon Linux AMI는 이 스왑 공간을 자동으로 활성화 및 사용하지만 사용자의 AMI에서 이 스왑 공간을 인식 및 사용하기 위해서는 추가적인 몇 단계가 필요합니다. 인스턴스에서 스왑 공간이 사용되는지를 확인하려면 swapon -s 명령을 사용합니다.

Copy
[ec2-user ~]$ swapon -s Filename Type Size Used Priority /dev/xvda3 partition 917500 0 -1

위 인스턴스에서는 900MiB의 스왑 볼륨이 연결 및 활성화되었습니다. 이 명령을 수행했는데 스왑 볼륨이 표시되지 않는 경우 디바이스에서 스왑 공간을 활성화해야 합니다. lsblk 명령을 사용하여 가용 디스크를 확인합니다.

Copy
[ec2-user ~]$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT xvda1 202:1 0 8G 0 disk / xvda3 202:3 0 896M 0 disk

여기에서 인스턴스는 스왑 볼륨 xvda3를 사용할 수 있지만 해당 볼륨은 활성화되지 않은 상태입니다(MOUNTPOINT 필드가 공란임). swapon 명령을 사용하면 스왑 볼륨을 활성화할 수 있습니다.

참고

lsblk를 사용하여 디바이스 이름 앞에 /dev/를 추가해야 합니다. 사용자 디바이스는 sda3, sde3, 또는 xvde3 등으로 다르게 명명할 수 있습니다. 아래 명령에서 시스템의 디바이스 이름을 사용합니다.

Copy
[ec2-user ~]$ sudo swapon /dev/xvda3

이제 lsblkswapon -s 출력에 스왑 공간이 표시되어야 합니다.

Copy
[ec2-user ~]$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT xvda1 202:1 0 8G 0 disk / xvda3 202:3 0 896M 0 disk [SWAP] [ec2-user ~]$ swapon -s Filename Type Size Used Priority /dev/xvda3 partition 917500 0 -1

또한, /etc/fstab 파일을 편집하여 부팅 시마다 이 스왑 공간이 자동 활성화되도록 설정해야 합니다.

Copy
[ec2-user ~]$ sudo vim /etc/fstab

/etc/fstab 파일에 다음 명령을 추가합니다(시스템의 스왑 디바이스 이름 사용):

/dev/xvda3       none    swap    sw  0       0

인스턴스 스토어 볼륨을 스왑 공간으로 사용하려면

모든 인스턴스 스토어 볼륨은 스왑 공간으로 사용될 수 있습니다. 예를 들어, m3.medium 인스턴스 유형은 스왑 공간으로 적당한 4GB SSD 인스턴스 스토어 볼륨이 포함됩니다. 사용자의 인스턴스 스토어 볼륨이 훨씬 큰(예: 350GB) 경우 해당 볼륨을 4-8GB의 작은 스왑 파티션으로 나누고 나머지는 데이터 볼륨으로 사용할 수 있습니다.

참고

이 절차는 인스턴스 스토리지를 지원하는 인스턴스 유형에만 적용됩니다. 지원되는 인스턴스 유형의 목록은 인스턴스 스토리지 볼륨 단원을 참조하십시오.

  1. 인스턴스에 연결된 블록 디바이스 목록을 확인하여 인스턴스 스토어 볼륨에 사용할 디바이스 이름을 얻습니다.

    Copy
    [ec2-user ~]$ lsblk -p NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT /dev/xvdb 202:16 0 4G 0 disk /media/ephemeral0 /dev/xvda1 202:1 0 8G 0 disk /

    이 예제에서 인스턴스 스토어 볼륨은 /dev/xdvb입니다. Amazon Linux 인스턴스이기 때문에 인스턴스 스토어 볼륨은 포맷된 후 /media/ephemeral0에 마운트됩니다. 모든 Linux 운영 체제에서 이러한 과정이 자동으로 수행되는 것은 아닙니다.

  2. (선택 사항) 인스턴스 스토어 볼륨이 마운트되면(MOUNTPOINTlsblk 명령의 출력에서 로 목록 표시) 다음 명령으로 마운트를 해제해야 합니다.

    Copy
    [ec2-user ~]$ sudo umount /dev/xvdb
  3. mkswap 명령으로 디바이스에 Linux 스왑 영역을 설정합니다.

    Copy
    [ec2-user ~]$ sudo mkswap /dev/xvdb mkswap: /dev/xvdb: warning: wiping old ext3 signature. Setting up swapspace version 1, size = 4188668 KiB no label, UUID=b4f63d28-67ed-46f0-b5e5-6928319e620b
  4. 새 스왑 공간을 활성화합니다.

    Copy
    [ec2-user ~]$ sudo swapon /dev/xvdb
  5. 새 스왑 공간이 사용 중인지 확인합니다.

    Copy
    [ec2-user ~]$ swapon -s Filename Type Size Used Priority /dev/xvdb partition 4188668 0 -1
  6. /etc/fstab 파일을 편집하여 부팅 시마다 이 스왑 공간이 자동 활성화되도록 설정합니다.

    Copy
    [ec2-user ~]$ sudo vim /etc/fstab

    /etc/fstab 파일에 /dev/xvdb(또는 /dev/sdb) 항목이 있는 경우 아래 라인과 일치하도록 변경합니다. 이 디바이스에 대한 항목이 없는 경우 /etc/fstab 파일에 다음 라인을 추가합니다(시스템의 스왑 디바이스 이름 사용):

    /dev/xvdb       none    swap    sw  0       0

    중요

    인스턴스가 중단되면 인스턴스 스토어 볼륨 데이터가 손실됩니다. 여기에는 단계 3에서 생성한 인스턴스 스토어 스왑 공간 포맷도 포함됩니다. 따라서 인스턴스 스토어 스왑 공간을 사용하도록 구성한 인스턴스를 중단했다가 다시 시작할 경우에는 새로운 인스턴스 스토어 볼륨에서 단계 1부터 단계 5까지 반복해야 합니다.