메뉴
Amazon Elastic Compute Cloud
User Guide for Linux Instances

SSD 인스턴스 스토어 볼륨

C3, F1, G2, HI1, I2, I3, M3, R3, X1 인스턴스는 SSD(Solid State Drive)를 사용하여 매우 높은 랜덤 I/O 성능을 제공하는 인스턴스 스토어 볼륨을 지원합니다. 인스턴스 유형별 인스턴스 스토어 볼륨 지원에 대한 자세한 내용은 인스턴스 스토리지 볼륨 단원을 참조하십시오.

Linux의 SSD 인스턴스 스토어 볼륨에 최상의 IOPS 성능을 보장하려면 Amazon Linux AMI의 최신 버전을 사용하거나 커널 버전이 3.8 이상인 기타 inux AMI를 사용하는 것이 좋습니다. 커널 버전이 3.8 이상인 Linux AMI를 사용하지 않는 경우 사용자의 인스턴스는 해당 인스턴스 유형에 제공되는 최대 IOPS 성능을 달성할 수 없습니다.

다른 인스턴스 스토어 볼륨과 마찬가지로 인스턴스를 시작할 때 인스턴스에 대해 SSD 인스턴스 스토어 볼륨을 매핑해야 하며, SSD 인스턴스 볼륨의 데이터는 연결된 인스턴스의 수명만큼만 지속됩니다. 자세한 내용은 EC2 인스턴스에 인스턴스 스토어 볼륨을 추가할 수 있습니다. 단원을 참조하십시오.

NVMe SSD 볼륨

I3 및 F1 인스턴스는 NVMe(Non-Volatile Memory Express) SSD 인스턴스 스토어 볼륨을 제공합니다. NVMe 볼륨에 액세스하려면 NVMe를 지원하는 운영 체제를 사용해야 합니다. 권장하는 운영 체제는 다음과 같습니다.

  • 현재 Amazon Linux AMI

  • AWS의 Ubuntu 버전 16.10. 다른 버전을 사용하고 있는 경우 메모리 핫 추가를 끌 것을 권장합니다.

  • Windows Server 2016, Windows Server 2012 R2 또는 Windows Server 2008 R2. Windows Server 2012와 Windows Server 2008은 지원되지 않습니다.

지금 시점에서는 커널 업데이트가 임박했으니 Red Hat Enterprise 7, CentOS 7, SUSE Linux Enterprise Server 12를 권장하지 않습니다.

인스턴스에 연결한 후 lspci 명령을 사용하여 NVMe 디바이스를 나열할 수 있습니다. 다음은 NVMe 디바이스 4개를 지원하는 i3.8xlarge 인스턴스의 예제 출력입니다.

Copy
[ec2-user ~]$ lspci 00:00.0 Host bridge: Intel Corporation 440FX - 82441FX PMC [Natoma] (rev 02) 00:01.0 ISA bridge: Intel Corporation 82371SB PIIX3 ISA [Natoma/Triton II] 00:01.1 IDE interface: Intel Corporation 82371SB PIIX3 IDE [Natoma/Triton II] 00:01.3 Bridge: Intel Corporation 82371AB/EB/MB PIIX4 ACPI (rev 01) 00:02.0 VGA compatible controller: Cirrus Logic GD 5446 00:03.0 Ethernet controller: Device 1d0f:ec20 00:17.0 Non-Volatile memory controller: Device 1d0f:cd01 00:18.0 Non-Volatile memory controller: Device 1d0f:cd01 00:19.0 Non-Volatile memory controller: Device 1d0f:cd01 00:1a.0 Non-Volatile memory controller: Device 1d0f:cd01 00:1f.0 Unassigned class [ff80]: XenSource, Inc. Xen Platform Device (rev 01)

지원되는 운영 체제를 사용하지만 NVMe 디바이스가 보이지 않는 경우, NVMe 모듈이 다음 lsmod 명령을 사용하여 로드되었는지 확인하십시오.

Copy
[ec2-user ~]$ lsmod | grep nvme nvme 48813 0

NVMe 볼륨은 NVMe 1.0a 사양을 준수합니다. NVMe 볼륨에 NVMe 명령을 사용할 수 있습니다. Amazon Linux AMI에서는 nvme-cliyum install 명령을 사용하여 리포지토리에서 패키지를 설치할 수 있습니다. 지원되는 다른 Linux 버전에서는 nvme-cli 패키지가 이미지에 제공되지 않은 경우 다운로드할 수 있습니다.

인스턴스 스토어 볼륨 TRIM 지원

F1, I2, I3, R3 인스턴스는 TRIM을 통해 SSD 볼륨을 지원합니다.

TM을 지원하는 인스턴스 스토어 볼륨은 인스턴스에 할당되기 전 완전히 트리밍(trimming)됩니다. 이러한 볼륨은 인스턴스가 실행될 때 파일 시스템으로 포맷되지 않으므로, 마운트 후 사용하기 전 사용자가 해당 볼륨을 포맷해야 합니다. 이러한 볼륨에 액세스하는 속도를 높이려면 볼륨을 포맷할 때 TRIM 작업을 건너뛰어야 합니다.

TRIM을 지원하는 인스턴스 스토어 볼륨을 사용할 경우 TRIM 명령을 사용하여 작성한 데이터가 더 이상 필요하지 않음을 SSD 컨트롤러에 통지할 수 있습니다. 이를 통해 컨트롤러에 더 많은 여유 공간이 제공되므로 쓰기 작업 증폭을 줄이고 성능을 향상시킬 수 있습니다. Linux에서 fstrim 명령을 사용하여 정기 TRIM을 활성화합니다. Windows에서는 fsutil behavior set DisableDeleteNotify 1 명령을 사용하면 됩니다. 자세한 내용은 운영 체제 설명서를 참조하십시오.

HI1 SSD 스토리지

HI1 인스턴스에서 SSD 스토리지 사용:

  • 메인 데이터 소스는 SSD 스토리지를 사용하는 인스턴스 스토어입니다.

  • 읽기 성능은 일관적이지만 쓰기 성능은 변동될 수 있습니다.

  • 쓰기 증폭(write amplification)이 발생할 수 있습니다.

  • TRIM 명령은 현재 지원되지 않습니다.

인스턴스 스토어와 SSD 스토리지

hi1.4xlarge 인스턴스는 Amazon EBS 기반의 루트 디바이스를 사용합니다. 그러나 메인 데이터 스토리지는 인스턴스 스토어의 SSD 볼륨으로 제공됩니다. 이러한 인스턴스 스토어 볼륨은 다른 인스턴스 스토어 볼륨과 마찬가지로 인스턴스의 수명 동안만 유지됩니다. hi1.4xlarge 인스턴스의 루트 디바이스가 Amazon EBS 기반이므로 인스턴스를 시작하거나 중지하는 것은 가능합니다. 인스턴스를 중단하면 애플리케이션은 유지되지만 인스턴스 스토어의 프로덕션 데이터는 유지되지 않습니다. 인스턴스 스토어 볼륨에 대한 자세한 내용은 Amazon EC2 인스턴스 스토어 단원을 참조하십시오.

쓰기 성능 변동

쓰기 성능은 애플리케이션에서 논리 블록 어드레스(LBA) 공간을 어떻게 활용하는지에 따라 달라집니다. 애플리케이션에서 전체 LBA 공간을 사용한다면 쓰기 속도가 90% 가량 저하될 수 있습니다. 애플리케이션에 대해 벤치마크를 수행하고 대기열 길이(queue length: 한 볼륨에서 대기 중인 I/O 요청 수)와 I/O 크기를 모니터링합니다.

쓰기 증폭

쓰기 증폭(write amplification)은 플래시 메모리와 SSD에서 발생하는 이상 현상으로, 실제로 기록된 물리적 데이터의 양이 원래 기록하고자 했던 논리적 양의 배수에 달하는 경우입니다. 플래시 메모리는 특성 상 데이터를 재작성하기 전에 삭제가 필요한데, 이 작업을 수행하는 과정에서 대상 사용자 데이터와 메타 데이터가 한 번 이상 이동(또는 재작성)됩니다. 이러한 배수 효과 때문에 SSD를 사용하는 동안 필요한 쓰기 횟수가 늘어나고 결국 안정적인 작동 기간이 단축되는 것입니다. hi1.4xlarge 인스턴스는 쓰기 증폭을 최소화기 위한 프로비저닝 모델로 설계되었습니다.

랜덤 쓰기는 연속 쓰기보다 쓰기 증폭에 훨씬 더 심각한 영향을 미칩니다. 쓰기 증폭을 우려하는 사용자라면 테비바이트보다 적은 스토리지 용량을 애플리케이션에 할당하는 것이 좋습니다(오버 프로비저닝).

TRIM 명령

TRIM 명령은 운영 시스템에서 기존 저장 데이터 중 더 이상 사용하지 않는 것으로 간주되는 데이터 블록이 있음을 SSD에 알립니다. TRIM 기능은 쓰기 증폭의 영향을 제한합니다.

HI1 인스턴스는 TRIM을 지원하지 않습니다.