스왑 파일을 사용하여 Amazon EC2 인스턴스에서 스왑 공간으로 사용할 메모리를 할당하려면 어떻게 해야 합니까?

최종 업데이트 날짜: 2020년 1월 15일

Amazon EC2(Amazon Elastic Compute Cloud) 인스턴스에서 스왑 파일로 사용할 메모리를 할당하려고 합니다. 어떻게 해야 합니까?

간략한 설명

물리적 RAM이 이미 사용 중인 경우, Amazon EC2 인스턴스는 스왑 공간을 물리적 RAM의 단기 대체 수단으로 사용합니다.

활성 사용 중이 아니거나 다른 데이터 또는 지침만큼 긴급하게 필요하지 않은 RAM의 콘텐츠는 일시적으로 스왑 파일에 페이징될 수 있습니다. 이렇게 하면 RAM이 즉각적인 용도에 더 많이 사용될 수 있습니다.

파티션에 스왑 공간을 생성할 수도 있습니다. 자세한 내용은 하드 드라이브의 파티션을 사용하여 Amazon EC2 인스턴스에서 스왑 공간으로 사용할 메모리를 할당하는 방법은 무엇입니까?를 참조하십시오.

참고: 휘발성 스토리지 인스턴스 스토어 볼륨에만 스왑 공간을 생성하는 것이 모범 사례입니다.

해결 방법

스왑 공간 크기 계산

일반적으로 다음과 같이 스왑 공간을 계산합니다.

물리적 RAM의 양 권장 스왑 공간
RAM 2GB 이하 RAM 용량의 2배(최소 32MB)
RAM 2GB 초과, 32GB 미만 4GB + (RAM – 2GB)
RAM 32GB 이상 RAM 용량의 1배

참고: 스왑 공간은 절대로 32MB 미만이 되지 않아야 합니다.

스왑 파일 생성

1.    dd 명령을 사용하여 루트 파일 시스템에 스왑 파일을 생성합니다. 명령에서 bs는 블록 크기이고 count는 블록 수입니다. 스왑 파일의 크기는 dd 명령의 블록 크기 옵션에 블록 수 옵션을 곱한 값입니다. 이러한 값을 조정하여 원하는 스왑 파일 크기를 결정합니다.

지정한 블록 크기는 인스턴스에서 사용 가능한 메모리보다 작아야 합니다. 그렇지 않으면 "memory exhausted" 오류가 발생합니다.

이 예제 dd 명령에서 스왑 파일은 4GB(128MB x 32)입니다.  

$ sudo dd if=/dev/zero of=/swapfile bs=128M count=32

2.    스왑 파일에 대한 읽기 및 쓰기 권한을 업데이트합니다.

$ sudo chmod 600 /swapfile

3.    Linux 스왑 영역을 설정합니다.

$ sudo mkswap /swapfile

4.    스왑 공간에 스왑 파일을 추가하여 스왑 파일을 즉시 사용할 수 있도록 만듭니다.  

$ sudo swapon /swapfile

5.    절차가 성공했는지 확인합니다.

$ sudo swapon -s

6.    /etc/fstab 파일을 편집하여 부팅 시 스왑 파일을 활성화합니다.

편집기에서 파일을 엽니다.

$ sudo vi /etc/fstab

파일 끝에 다음 줄을 새로 추가하고 파일을 저장한 다음 종료합니다.

/swapfile swap swap defaults 0 0

이 문서가 도움이 되었습니까?

AWS에서 개선해야 할 부분이 있습니까?


도움이 필요하십니까?