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 문서를 참고하세요.
- 인스턴스에 연결된 블록 장치를 나열해 인스턴스 스토어 볼륨의 장치 이름을 얻습니다.
[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 운영 체제가 이렇게 자동 수행하는 것은 아니에요.
- (선택 사항) 인스턴스 스토어 볼륨이 마운트되어 있다면(
lsblk명령 출력에 MOUNTPOINT가 나열됨), 다음 명령으로 마운트를 해제합니다.
[ec2-user ~]$ sudo umount /dev/xvdb
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
- 새 스왑 공간을 활성화합니다.
[ec2-user ~]$ sudo swapon /dev/xvdb
- 새 스왑 공간이 사용 중인지 확인합니다.
[ec2-user ~]$ swapon -s
Filename Type Size Used Priority
/dev/xvdb partition 4188668 0 -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단계를 반복해야 합니다.