M1 및 C1 EC2 인스턴스용 인스턴스 스토어 스왑 볼륨 활성화하기

M1 및 C1 EC2 인스턴스용 인스턴스 스토어 스왑 볼륨 활성화하기

참고: 이 주제는 c1.medium 및 m1.small Linux 인스턴스에만 적용됩니다.

출처: 문서

본문

c1.medium과 m1.small 인스턴스 유형은 물리적 메모리가 제한적입니다. 따라서 Linux 시스템의 가상 메모리 또는 스왑 공간(swap space) 역할을 하도록 실행 시 900 MiB 스왑 볼륨이 제공됩니다. Linux의 스왑 공간은 시스템이 물리적으로 할당된 것보다 더 많은 메모리를 필요로 할 때 사용될 수 있어요. 스왑 공간을 활성화하면 Linux 시스템은 자주 사용되지 않는 메모리 페이지를 물리적 메모리에서 스왑 공간(전용 파티션 또는 기존 파일 시스템의 스왑 파일)으로 스왑하고, 고속 접근이 필요한 메모리 페이지를 위해 그 공간을 확보할 수 있습니다.

참고:

  • 메모리 페이징에 스왑 공간을 사용하는 것은 RAM을 사용하는 것만큼 빠르거나 효율적이지 않아요. 워크로드가 정기적으로 메모리를 스왑 공간으로 페이징한다면, RAM이 더 큰 더 큰 인스턴스 유형으로 마이그레이션하는 것을 고려해야 합니다. 자세한 내용은 Amazon EC2 instance type changes 문서를 참고하세요.
  • Linux 커널이 이 스왑 공간을 루트 볼륨의 파티션으로 보지만, 사실 루트 볼륨 유형과 무관하게 별도의 인스턴스 스토어 볼륨입니다.

Amazon Linux는 이 스왑 공간을 자동으로 활성화해 사용하지만, 사용자의 AMI는 이 스왑 공간을 인식하고 사용하기 위해 몇 가지 추가 단계가 필요할 수 있어요. 인스턴스가 스왑 공간을 사용하는지 확인하려면 swapon -s 명령을 사용할 수 있어요.

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

위 인스턴스에는 900 MiB 스왑 볼륨이 연결되어 활성화되어 있습니다. 이 명령으로 스왑 볼륨이 나열되지 않으면 장치에 스왑 공간을 활성화해야 할 수 있어요. lsblk 명령으로 사용 가능한 디스크를 확인하세요.

[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처럼 다르게 지정될 수 있어요. 아래 명령에서 시스템의 장치 이름을 사용하세요.

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

이제 스왑 공간이 lsblk와 swapon -s 출력에 나타나야 합니다.

[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 파일도 편집해야 해요.

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

/etc/fstab 파일에 다음 줄을 추가합니다(시스템의 스왑 장치 이름 사용):

/dev/xvda3       none    swap    sw  0       0

인스턴스 스토어 볼륨을 스왑 공간으로 사용하기 (To use an instance store volume as swap space)

모든 인스턴스 스토어 볼륨은 스왑 공간으로 사용할 수 있어요. 예를 들어 m3.medium 인스턴스 유형에는 스왑 공간에 적합한 4GB SSD 인스턴스 스토어 볼륨이 포함됩니다. 인스턴스 스토어 볼륨이 훨씬 더 크다면(예: 350GB), 볼륨을 4-8GB의 더 작은 스왑 파티션과 나머지는 데이터 볼륨으로 파티셔닝하는 것을 고려할 수 있어요.

참고: 이 절차는 인스턴스 스토리지를 지원하는 인스턴스 유형에만 적용됩니다. 지원되는 인스턴스 유형 목록은 Instance store volume limits for EC2 instances 문서를 참고하세요.

  1. 인스턴스에 연결된 블록 장치를 나열해 인스턴스 스토어 볼륨의 장치 이름을 얻습니다.
[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/xvdb입니다. 이 인스턴스는 Amazon Linux 인스턴스이므로 인스턴스 스토어 볼륨이 포맷되어 /media/ephemeral0에 마운트됩니다. 모든 Linux 운영 체제가 이렇게 자동 수행하는 것은 아니에요.

  1. (선택 사항) 인스턴스 스토어 볼륨이 마운트되어 있다면(lsblk 명령 출력에 MOUNTPOINT가 나열됨), 다음 명령으로 마운트를 해제합니다.
[ec2-user ~]$ sudo umount /dev/xvdb
  1. mkswap 명령으로 장치에 Linux 스왑 영역을 설정합니다.
[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
  1. 새 스왑 공간을 활성화합니다.
[ec2-user ~]$ sudo swapon /dev/xvdb
  1. 새 스왑 공간이 사용 중인지 확인합니다.
[ec2-user ~]$ swapon -s
Filename				Type		Size	Used	Priority
/dev/xvdb                              	partition	4188668	0	-1
  1. 이 스왑 공간이 시스템 부팅 때마다 자동으로 활성화되도록 /etc/fstab 파일을 편집합니다.
[ec2-user ~]$ sudo vim /etc/fstab

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

/dev/xvdb       none    swap    sw  0       0

중요: 인스턴스 스토어 볼륨 데이터는 인스턴스가 중지되거나 최대 절전(hibernate)되면 손실됩니다. 여기에는 3단계에서 만든 인스턴스 스토어 스왑 공간 포맷도 포함됩니다. 인스턴스 스토어 스왑 공간을 사용하도록 구성된 인스턴스를 중지하고 다시 시작했다면, 새 인스턴스 스토어 볼륨에서 1단계부터 5단계를 반복해야 합니다.

더 알아보기 (Learn more)