

# M1 및 C1 EC2 인스턴스의 인스턴스 스토어 스왑 볼륨 활성화
<a name="instance-store-swap-volumes"></a>

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

`c1.medium` 및 `m1.small` 인스턴스 유형은 물리적 메모리 양이 제한되어 있습니다. 따라서 시작 시간에 Linux 시스템의 가상 메모리의 역할을 할 수 있는 900MiB의 스왑 볼륨, 즉 **스왑 공간이 부여됩니다. Linux에서 스왑 공간은 물리적으로 할당된 것보다 더 큰 메모리가 시스템에 필요할 때 사용될 수 있습니다. 스왑 공간이 활성화되면 Linux 시스템은 물리 메모리에서 자주 사용되지 않는 메모리 페이지를 스왑 공간(기존 파일 시스템의 스왑 파일 또는 전용 파티션)으로 스왑하고 고속 액세스가 필요한 메모리 페이지용으로 해당 공간을 해제합니다.

**참고**  
메모리 페이징용으로 스왑 공간을 사용하는 것은 RAM을 사용하는 것보다 빠르거나 효율적이지 않습니다. 워크로드가 메모리를 스왑 공간으로 정기적으로 페이징하는 경우 큰 RAM 용량을 갖는 대형 인스턴스 유형으로 마이그레이션할 것을 고려해야 합니다. 자세한 내용은 [Amazon EC2 인스턴스 유형 변경](ec2-instance-resize.md) 섹션을 참조하세요.
Linux 커널에서는 이 스왑 공간을 루트 볼륨의 파티션으로 간주하지만 이 공간은 루트 볼륨 유형과 상관없이 실제로는 별도의 인스턴스 저장소 볼륨입니다.

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

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

위 인스턴스에서는 900MiB의 스왑 볼륨이 연결 및 활성화되었습니다. 이 명령을 수행했는데 스왑 볼륨이 표시되지 않는 경우 디바이스에서 스왑 공간을 활성화해야 합니다. **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** 명령을 사용하면 스왑 볼륨을 활성화할 수 있습니다.

**참고**  
`/dev/`를 사용하여 디바이스 이름 앞에 **lsblk**를 추가해야 합니다. 사용자 디바이스는 `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
```

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

모든 인스턴스 스토어 볼륨은 스왑 공간으로 사용될 수 있습니다. 예를 들어, `m3.medium` 인스턴스 유형은 스왑 공간으로 적당한 4GB SSD 인스턴스 스토어 볼륨이 포함됩니다. 사용자의 인스턴스 스토어 볼륨이 훨씬 큰(예: 350GB) 경우 해당 볼륨을 4-8GB의 작은 스왑 파티션으로 나누고 나머지는 데이터 볼륨으로 사용할 수 있습니다.
**참고**  
이 절차는 인스턴스 스토리지를 지원하는 인스턴스 유형에만 적용됩니다. 지원되는 인스턴스 유형의 목록은 [EC2 인스턴스의 인스턴스 스토어 볼륨 제한](instance-store-volumes.md) 섹션을 참조하세요.

1. <a name="step_swap_start"></a>인스턴스에 연결된 블록 디바이스 목록을 확인하여 인스턴스 스토어 볼륨에 사용할 디바이스 이름을 얻습니다.

   ```
   [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. (선택 사항) 인스턴스 스토어 볼륨이 마운트되면(`MOUNTPOINT` 명령 출력에 **lsblk**로 목록 표시) 다음 명령으로 마운트를 해제합니다.

   ```
   [ec2-user ~]$ sudo umount /dev/xvdb
   ```

1. <a name="step_mkswap"></a>**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. <a name="step_swap_enable"></a>새 스왑 공간이 사용 중인지 확인합니다.

   ```
   [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
   ```
**중요**  
인스턴스가 중단되거나 최대 절전 모드로 전환되면 인스턴스 스토어 볼륨 데이터가 손실됩니다. 여기에는 [Step 3](#step_mkswap)에서 생성한 인스턴스 스토어 스왑 공간 포맷도 포함됩니다. 따라서 인스턴스 스토어 스왑 공간을 사용하도록 구성한 인스턴스를 중단했다가 다시 시작할 경우에는 새로운 인스턴스 스토어 볼륨에서 [Step 1](#step_swap_start)부터 [Step 5](#step_swap_enable)까지 반복해야 합니다.