메뉴
Amazon Elastic Compute Cloud
User Guide for Linux Instances

스토리지 최적화 인스턴스

스토리지 최적화 인스턴스는 로컬 스토리지의 초대형 데이터 세트에 대한 순차적 읽기 및 쓰기 액세스가 많이 필요한 작업에 적합하도록 설계되었습니다. 낮은 지연 시간의 임의의 IOPS(초당 I/O 작업)를 만 단위 수준으로 애플리케이션에 제공할 수 있도록 최적화되어 있습니다.

D2 인스턴스

D2 인스턴스는 다음 애플리케이션에 적합합니다.

  • 대량 병렬 처리(MPP) 데이터 웨어하우스

  • MapReduce 및 Hadoop 분산 컴퓨팅

  • 로그 또는 데이터 처리 애플리케이션

I2 인스턴스

I2 인스턴스는 다음 애플리케이션에 적합합니다.

  • NoSQL 데이터베이스

  • 클러스터링된 데이터베이스

  • OLTP(온라인 트랜잭션 처리) 시스템

I3 인스턴스

I3 인스턴스는 다음 애플리케이션에 적합합니다.

  • 빈도가 높은 온라인 트랜잭션 처리(OLTP) 시스템

  • 관계형 데이터베이스

  • NoSQL 데이터베이스

  • 인 메모리 데이터베이스의 캐시(예: Redis)

  • 데이터 웨어하우징 애플리케이션

  • 지연 시간이 짧은 광고 기술 처리 애플리케이션

하드웨어 사양

D2 인스턴스의 기본 데이터 스토리지는 HDD 인스턴스 스토어 볼륨입니다. I2 인스턴스의 기본 데이터 스토리지는 SATA SSD 인스턴스 스토어 볼륨입니다. I3 인스턴스의 기본 데이터 스토리지는 NVMe(Non-Volatile Memory Express) SSD 인스턴스 스토어 볼륨입니다.

인스턴스 스토어 볼륨은 인스턴스의 수명 기간 동안만 유지됩니다. 인스턴스가 중지되거나 종료되면 인스턴스 스토어 볼륨의 애플리케이션과 데이터는 삭제됩니다. 따라서 정기적으로 인스턴스 스토어 볼륨에 중요한 데이터를 백업 또는 복제하는 것이 좋습니다. 자세한 내용은 Amazon EC2 인스턴스 스토어SSD 인스턴스 스토어 볼륨 단원을 참조하십시오.

Amazon EC2 인스턴스 유형별 하드웨어 사양에 대한 자세한 내용은 Amazon EC2 인스턴스를 참조하십시오.

스토리지 성능

Linux의 인스턴스에서 최상의 디스크 처리량 성능을 보장하려면 최신 Amazon Linux AMI 버전을 사용하는 것이 좋습니다.

NVMe 인스턴스 스토어 볼륨이 있는 인스턴스의 경우, 커널 버전이 4.4 이상인 Linux AMI를 사용해야 합니다. 그렇지 않으면 인스턴스가 최대 IOPS 성능을 낼 수 없습니다.

디스크 처리량과 확장성을 크게 향상하는 Xen 블록 링 프로토콜의 확장인 지속적 권한 부여를 지원하는 Linux 커널을 사용하면 D2 인스턴스가 최상의 디스크 성능을 제공합니다. 지속적 권한 부여에 대한 자세한 내용은 Xen Project Blog의 기사를 참조하십시오.

EBS에 최적화된 인스턴스를 사용하면 Amazon EBS I/O와 인스턴스의 다른 네트워크 간의 경합을 제거하여 EBS 볼륨에 대해 일관되게 우수한 성능을 제공할 수 있습니다. D2 인스턴스는 추가 비용 없이 기본적으로 EBS에 최적화되어 있습니다. 낮은 시간당 요금 추가로 I2 인스턴스에 대해 EBS 최적화를 활성화할 수 있습니다. 자세한 내용은 Amazon EBS 최적화 인스턴스 단원을 참조하십시오.

향상된 네트워킹 기능을 사용할 수도 있습니다. 향상된 네트워킹을 통해 PPS(Packet Per Second) 성능이 크게 높아지고, 네트워크 지터 및 지연 시간이 낮아집니다. 자세한 내용은 Linux에서 향상된 네트워킹단원을 참조하십시오.

d2.8xlargei3.16xlarge 인스턴스 유형은 Linux에서 프로세서 C 상태 및 P 상태를 제어할 수 있는 기능을 제공합니다. C 상태는 유휴 상태일 때 코어가 진입하는 절전 수준을 제어하고, P 상태는 코어의 성능(CPU 주파수)을 제어합니다. 자세한 내용은 EC2 인스턴스에 대한 프로세서 상태 제어 단원을 참조하십시오.

SSD I/O 성능

커널 버전이 4.4 이상인 Linux AMI를 사용하고 인스턴스에서 사용 가능한 모든 SSD 기반 인스턴스 스토어 볼륨을 활용하는 경우, 다음 표와 같은 IOPS(블록 크기 4,096바이트) 성능을 얻을 수 있습니다(대기열 깊이 포화 상태에서). 그렇지 않으면 더 낮은 IOPS 성능을 얻게 됩니다.

인스턴스 크기 100% 임의 읽기 IOPS IOPS 쓰기

i2.xlarge

35,000

35,000

i2.2xlarge

75,000

75,000

i2.4xlarge

175,000

155,000

i2.8xlarge

365,000

315,000

i3.large *

100,125

9,375

i3.xlarge *

206,250

18,750

i3.2xlarge

412,500

37,500

i3.4xlarge

825,000

75,000

i3.8xlarge

1.65백만

150,000

i3.16xlarge

3.3백만

300,000

* i3.largei3.xlarge 인스턴스의 경우, 지정된 최대 성능을 얻을 수 있습니다.

인스턴스에 대한 SSD 기반 인스턴스 스토어 볼륨에 데이터가 있는 경우, 달성 가능한 쓰기 IOPS의 수는 감소합니다. 이는 SSD 컨트롤러가 가용 공간을 찾고 기존 데이터를 다시 쓰고 미사용 공간을 삭제하여 다시 쓸 수 있는 공간을 마련하기 위해 추가적인 작업을 해야 하기 때문입니다. 이러한 폐영역 회수 과정은 SSD에 대한 내부 쓰기 작업이 증폭되는 결과를 낳게 되며, 이런 결과는 사용자 쓰기 작업에 대한 SSD 쓰기 작업의 비로 표현됩니다. 이러한 성능 감소는 쓰기 작업이 4096바이트의 배수들 또는 4096바이트 경계에 정렬되지 않은 상태로 수행되는 경우에 더 심해질 수 있습니다. 정렬되지 않은 바이트를 소량으로 쓰기 작업하는 경우, SSD 컨트롤러는 쓰려는 부분의 주변 데이터를 읽고 그 결과도 새 위치에 저장해야 합니다. 이런 패턴으로 인해 쓰기 작업이 크게 증폭되고 지연 시간 증가와 I/O 성능의 급격한 감소를 초래합니다.

SSD 컨트롤러는 여러 전략을 사용해서 쓰기 작업 증폭의 영향을 감쇄할 수 있습니다. 그 중 하나의 전력은 SSD 인스턴스 스토리지에 예약 공간을 마련해서 SSD 컨트롤러가 쓰기 작업에 사용 가능한 공간을 보다 효율적으로 관리할 수 있게 하는 것입니다. 이를 오버-프로비저닝이라고 합니다. 인스턴스에 제공된 SSD 기반 인스턴스 스토어 볼륨은 오버-프로비저닝을 위한 예약 공간을 가지고 있지 않습니다. 쓰기 작업 증폭의 영향 감쇄를 위해 최소한 볼륨의 10%를 파티션 처리되지 않은 상태로 두어서 SSD 컨트롤러가 이를 오버-프로비저닝에 사용할 수 있도록 하는 것이 좋습니다. 그러면 사용할 수 있는 스토리지는 줄어들지만, 디스크를 전체 용량에 가깝게 사용하더라도 성능은 향상됩니다.

TRIM을 지원하는 인스턴스 스토어 볼륨의 경우, TRIM 명령을 사용하여 작성한 데이터가 더 이상 필요하지 않음을 SSD 컨트롤러에 알릴 수 있습니다. 이를 통해 컨트롤러에 더 많은 여유 공간이 제공되어 쓰기 증폭이 줄어들고 성능이 향상될 수 있습니다. 자세한 내용은 인스턴스 스토어 볼륨 TRIM 지원 단원을 참조하십시오.

스토리지 인스턴스 기능

스토리지 최적화 인스턴스에 대한 기능은 다음과 같이 간략히 설명할 수 있습니다.

VPC 전용 SSD 볼륨 배치 그룹 향상된 네트워킹

D2

Intel 82599 VF

I2

SATA

Intel 82599 VF

I3

NVMe

ENA

자세한 내용은 다음 자료를 참조하십시오.

개의 vCPU 지원

d2.8xlarge 인스턴스 유형은 36개의 vCPU를 지원하므로 vCPU가 32개로 제한되는 일부 Linux 운영 체제에서 시작 문제가 발생할 수 있습니다. 따라서 d2.8xlarge 인스턴스를 시작할 때 최신 AMI를 사용하실 것을 적극 권장합니다.

다음 Linux AMI는 36개의 vCPU로 d2.8xlarge 인스턴스 시작을 지원합니다.

  • Amazon Linux AMI 2017.03(HVM)

  • Ubuntu Server 14.04 LTS(HVM)

  • Red Hat Enterprise Linux 7.1(HVM)

  • SUSE Linux Enterprise Server 12(HVM)

애플리케이션에 대해 다른 AMI를 사용해야 하지만 d2.8xlarge 인스턴스가 완전히 시작되지 않은 경우(예: Client.InstanceInitiatedShutdown 상태 전환으로 인해 시작 중에 인스턴스 상태가 stopped로 변경된 경우) d2.8xlarge 인스턴스 유형을 사용할 수 있도록 다음 절차에 따라 32개보다 많은 vCPU를 지원하도록 AMI를 수정하십시오.

32개보다 많은 vCPU를 지원하도록 인스턴스를 업데이트하려면

  1. AMI를 사용하여 D2 인스턴스를 시작하여 d2.8xlarge 이외의 D2 인스턴스 유형을 선택합니다.

  2. 운영 체제 관련 지침에 따라 커널을 최신 버전으로 업데이트합니다. 예를 들어, RHEL 6의 경우 다음 명령을 사용합니다.

    Copy
    sudo yum update -y kernel
  3. 인스턴스를 중지합니다.

  4. (선택 사항) 나중에 필요한 추가 d2.8xlarge 인스턴스를 시작하는 데 사용할 수 있는 인스턴스에서 AMI를 생성합니다.

  5. 중지된 인스턴스의 인스턴스 유형을 d2.8xlarge로 변경합니다(Actions, Instance Settings, Change Instance Type을 선택한 다음 지침을 따름).

  6. 인스턴스를 시작합니다. 인스턴스가 올바로 시작되면 완료된 것입니다. 그래도 인스턴스가 올바로 부팅되지 않으면 다음 단계로 진행하십시오.

  7. (선택 사항) 그래도 인스턴스가 올바로 부팅되지 않으면 인스턴스의 커널이 32개를 초과하는 vCPU를 지원하지 않을 수도 있습니다. 하지만 vCPU 수를 제한하면 인스턴스를 부팅할 수 있습니다.

    1. 중지된 인스턴스의 인스턴스 유형을 d2.8xlarge가 아닌 다른 D2 인스턴스 유형으로 변경합니다(Actions, Instance Settings, Change Instance Type을 선택한 다음 지침을 따름).

    2. 운영 체제 관련 지침에 따라 maxcpus=32 옵션을 부팅 커널 파라미터에 추가합니다. 예를 들어, RHEL 6의 경우 /boot/grub/menu.lst 파일을 편집하고 다음 옵션을 가장 최근의 활성 kernel 항목에 추가합니다.

      Copy
      default=0 timeout=1 splashimage=(hd0,0)/boot/grub/splash.xpm.gz hiddenmenu title Red Hat Enterprise Linux Server (2.6.32-504.3.3.el6.x86_64) root (hd0,0) kernel /boot/vmlinuz-2.6.32-504.3.3.el6.x86_64 maxcpus=32 console=ttyS0 ro root=UUID=9996863e-b964-47d3-a33b-3920974fdbd9 rd_NO_LUKS KEYBOARDTYPE=pc KEYTABLE=us LANG=en_US.UTF-8 xen_blkfront.sda_is_xvda=1 console=ttyS0,115200n8 console=tty0 rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=auto rd_NO_LVM rd_NO_DM initrd /boot/initramfs-2.6.32-504.3.3.el6.x86_64.img
    3. 인스턴스를 중지합니다.

    4. (선택 사항) 나중에 필요한 추가 d2.8xlarge 인스턴스를 시작하는 데 사용할 수 있는 인스턴스에서 AMI를 생성합니다.

    5. 중지된 인스턴스의 인스턴스 유형을 d2.8xlarge로 변경합니다(Actions, Instance Settings, Change Instance Type을 선택한 다음 지침을 따름).

    6. 인스턴스를 시작합니다.

인스턴스 제한

  • HVM AMI를 사용해서 스토리지 최적화 인스턴스를 실행해야 합니다. 자세한 내용은 Linux AMI 가상화 유형 단원을 참조하십시오.

  • Amazon EBS 지원 AMI를 사용하여 I3 인스턴스를 실행해야 합니다.

  • d2.8xlarge 인스턴스 유형에는 36개의 vCPU가 있으므로, vCPU가 32개로 제한되는 일부 Linux 운영 체제에서 시작 문제가 발생할 수 있습니다. 자세한 내용은 개의 vCPU 지원 단원을 참조하십시오.

  • 한 리전에서 시작할 수 있는 총 인스턴스 수에는 제한이 있으며, 일부 인스턴스 유형에는 또 다른 제한이 있습니다. 자세한 내용은 Amazon EC2에서 실행 가능한 인스턴스 수 단원을 참조하십시오.. 한도 증가를 요청하려면 Amazon EC2 인스턴스 요청 양식을 사용하십시오.