ENA 큐

ENA 큐 (ENA queues)

Elastic Network Adapter(ENA) 큐는 Amazon EC2 네트워크 인터페이스의 패킷 처리를 담당해요. 각 인스턴스 유형에는 Elastic Network Interfaces(ENIs) 간에 공유되는 정해진 수의 ENA 큐가 있어요. 기본적으로 각 ENI는 인스턴스 유형과 크기에 따라 고정된 큐 수를 받아요.

출처: 문서

본문

구성 가능한 ENA 큐 할당을 사용하면 각 ENI가 받는 큐 수를 선택할 수 있어요. ENI당·인스턴스당 총계는 여전히 상한이 적용돼요. 이렇게 하면 패킷 처리를 워크로드에 맞출 수 있어요. 예를 들어 트래픽이 많은 ENI에는 더 많은 큐를, 트래픽이 적은 ENI에는 더 적은 큐를 줄 수 있어요.

EC2 인스턴스 유형의 ENA 큐 사양 (ENA queue specifications for EC2 instance types)

다음 표는 구성 가능한 ENA 큐 할당을 지원하는 인스턴스 유형과 기본/최대 큐 값을 나열해요.

참고 구성 가능한 ENA 큐 할당을 지원하지 않는 유형을 포함한 모든 인스턴스 유형의 ENA 큐 값은 Amazon EC2 Instance Types 가이드의 Network specifications 표를 참고하세요.

범용(General purpose)

Instance type Default ENA queues per interface Maximum ENA queues per interface Maximum ENA queues per instance
m6i.large 2 2 6
m6i.xlarge 4 4 16
m6i.2xlarge 8 8 32
m6i.4xlarge 8 16 64
m6i.8xlarge 8 32 64
m6i.12xlarge 8 32 64
m6i.16xlarge 8 32 120
m6i.24xlarge 8 32 120
m6i.32xlarge 8 32 120
m6id.large 2 2 6
m6id.xlarge 4 4 16
m6id.2xlarge 8 8 32
m6id.4xlarge 8 16 64
m6id.8xlarge 8 32 64
m6id.12xlarge 8 32 64
m6id.16xlarge 8 32 120
m6id.24xlarge 8 32 120
m6id.32xlarge 8 32 120
m6idn.large 2 2 6
m6idn.xlarge 4 4 16
m6idn.2xlarge 8 8 32
m6idn.4xlarge 8 16 64
m6idn.8xlarge 16 32 128
m6idn.12xlarge 16 32 128
m6idn.16xlarge 16 32 240
m6idn.24xlarge 32 32 480
m6idn.32xlarge 32 32 512 *
m6in.large 2 2 6
m6in.xlarge 4 4 16
m6in.2xlarge 8 8 32
m6in.4xlarge 8 16 64
m6in.8xlarge 16 32 128
m6in.12xlarge 16 32 128
m6in.16xlarge 16 32 240
m6in.24xlarge 32 32 480
m6in.32xlarge 32 32 512 *
m8a.medium 1 1 3
m8a.large 2 2 6
m8a.xlarge 4 4 16
m8a.2xlarge 8 8 32
m8a.4xlarge 8 16 64
m8a.8xlarge 8 32 128
m8a.12xlarge 16 64 192
m8a.16xlarge 16 64 256
m8a.24xlarge 16 128 384
m8a.48xlarge 32 128 768
m8a.metal-24xl 16 128 384
m8a.metal-48xl 32 128 768
m8azn.medium 1 1 3
m8azn.large 2 2 8
m8azn.xlarge 4 4 16
m8azn.3xlarge 4 16 48
m8azn.6xlarge 8 32 96
m8azn.12xlarge 8 64 192
m8azn.24xlarge 16 128 384
m8azn.metal-12xl 8 64 192
m8azn.metal-24xl 16 128 384
m8gb.medium 1 1 2
m8gb.large 2 2 6
m8gb.xlarge 4 4 16
m8gb.2xlarge 8 8 32
m8gb.4xlarge 8 16 64
m8gb.8xlarge 8 32 128
m8gb.12xlarge 16 64 192
m8gb.16xlarge 16 64 256
m8gb.24xlarge 16 128 384
m8gb.48xlarge 32 128 768 *
m8gb.metal-24xl 32 128 768
m8gb.metal-48xl 32 128 768 *
m8gn.medium 1 1 2
m8gn.large 2 2 6
m8gn.xlarge 4 4 16
m8gn.2xlarge 8 8 32
m8gn.4xlarge 8 16 64
m8gn.8xlarge 8 32 128
m8gn.12xlarge 16 64 192
m8gn.16xlarge 16 64 256
m8gn.24xlarge 16 128 384
m8gn.48xlarge 32 128 768 *
m8gn.metal-24xl 32 128 768
m8gn.metal-48xl 32 128 768 *
m8i.large 2 2 6
m8i.xlarge 4 4 16
m8i.2xlarge 8 8 32
m8i.4xlarge 8 16 64
m8i.8xlarge 8 32 128
m8i.12xlarge 16 64 192
m8i.16xlarge 16 64 256
m8i.24xlarge 16 128 384
m8i.32xlarge 16 128 512
m8i.48xlarge 32 128 768
m8i.96xlarge 32 128 1536

(원문에는 범용, 컴퓨팅 최적화, 메모리 최적화, 스토리지 최적화, 가속 컴퓨팅, 고성능 컴퓨팅 패밀리의 인스턴스 유형별 기본/최대 ENA 큐 표가 더 포함됩니다. 모든 값은 원문 표를 그대로 따릅니다.)

컴퓨팅 최적화(Compute optimized) — 예: c6i.large(2/2/6), c6i.xlarge(4/4/16), c6i.2xlarge(8/8/32), c6i.4xlarge(8/16/64), c6i.8xlarge(8/32/64), c6i.12xlarge(8/32/64), c6i.16xlarge(8/32/120), c6i.24xlarge(8/32/120), c6i.32xlarge(8/32/120), c6in/8xlarge(16/32/128), c8i.96xlarge(32/128/1536) 등.

메모리 최적화(Memory optimized) — 예: r6i.large(2/2/6), r6i.xlarge(4/4/16), r6i.2xlarge(8/8/32), r6i.4xlarge(8/16/64), r8i.96xlarge(32/128/1536) 등.

스토리지 최적화(Storage optimized) — 예: i8ge.large(2/2/6), i8ge.48xlarge(32/128/1536 *) 등.

가속 컴퓨팅(Accelerated computing) — 예: g7.2xlarge(8/8/32), g7.48xlarge(32/128/768 *) 등.

고성능 컴퓨팅(High performance computing) — 예: hpc8a.96xlarge(32/128/512 *) 등.

참고 *이 표시된 인스턴스 유형은 네트워크 카드가 여러 개예요. 다른 인스턴스 유형은 네트워크 카드가 하나예요. 자세한 내용은 Network cards를 참고하세요.

ENA 큐 할당 구성 (Configure ENA queue allocation)

지원되는 인스턴스 유형에서 각 ENI의 ENA 큐 수를 구성할 수 있어요. AWS Management Console, AWS CLI 또는 PowerShell을 사용해요. AWS Management Console에서 이 설정은 각 Network interface 아래에 표시돼요.

참고 ENA 큐를 구성하기 전에 다음 요구 사항을 확인해요.

  • ENA 큐 수를 구성하기 전에 인스턴스가 중지(stopped)되어 있어야 해요.
  • ENA 큐 값은 1, 2, 4, 8, 16, 32 같은 2의 거듭제곱이어야 해요.
  • 단일 ENI의 큐 수는 인스턴스의 vCPU 수를 초과할 수 없어요.

큐 수를 변경하기 전에 다음 명령으로 현재 수를 확인해요.

AWS CLI

aws ec2 describe-instances --instance-id i-1234567890abcdef0

PowerShell

(Get-EC2Instance -InstanceId i-1234567890abcdef0 ).Instances.NetworkInterfaces | Select-Object NetworkInterfaceId, @ { N='DeviceIndex';E= { $_.Attachment.DeviceIndex}}, @ { N='AttachmentId';E= { $_.Attachment.AttachmentId}}, @ { N='EnaQueueCount';E= { $_.Attachment.EnaQueueCount}}

ENA 큐가 있는 네트워크 인터페이스 연결 (Attach a network interface with ENA queues)

다음 예시에서는 ENI에 16개의 ENA 큐가 구성돼요.

AWS CLI

ENA 큐가 있는 네트워크 인터페이스 연결하기: attach-network-interface 명령을 사용해요.

aws ec2 attach-network-interface \
    --network-interface-id eni-abcdef01234567890 \
    --instance-id i-1234567890abcdef0 \
    --device-index 1 \
    --ena-queue-count 16

PowerShell

ENA 큐가 있는 네트워크 인터페이스 연결하기: Add-EC2NetworkInterface cmdlet을 사용해요.

Add-EC2NetworkInterface `
    -NetworkInterfaceId eni-abcdef01234567890 `
    -InstanceId i-1234567890abcdef0 `
    -DeviceIndex 1 `
    -EnaQueueCount 16

ENA 큐가 있는 인스턴스 시작 (Launch an instance with ENA queues)

다음 예시에서는 3개의 ENI 각각에 16개의 ENA 큐가 구성돼요.

AWS CLI

ENA 큐가 있는 인스턴스 시작하기: run-instances 명령을 사용해요.

aws ec2 run-instances \
    --image-id ami-1234567890abcdef0 \
    --instance-type c8i.4xlarge \
    --network-interfaces \
    "[ {\"DeviceIndex\":0,\"SubnetId\":\"subnet-abcdef01234567890\",\"EnaQueueCount\":16}, {\"DeviceIndex\":1,\"SubnetId\":\"subnet-abcdef01234567890\",\"EnaQueueCount\":16}, {\"DeviceIndex\":2,\"SubnetId\":\"subnet-abcdef01234567890\",\"EnaQueueCount\":16}]"

PowerShell

ENA 큐가 있는 인스턴스 시작하기: New-EC2Instance cmdlet을 사용해요.

New-EC2Instance `
    -ImageId ami-1234567890abcdef0 `
    -InstanceType c8i.4xlarge `
    -NetworkInterface @(
        @ { DeviceIndex=0; SubnetId="subnet-abcdef01234567890"; EnaQueueCount=16},
        @ { DeviceIndex=1; SubnetId="subnet-abcdef01234567890"; EnaQueueCount=16},
        @ { DeviceIndex=2; SubnetId="subnet-abcdef01234567890"; EnaQueueCount=16}
    )

기존 네트워크 인터페이스의 ENA 큐 수정 (Modify ENA queues on an existing network interface)

다음 예시에서는 ENI에 16개의 ENA 큐가 구성돼요.

AWS CLI

네트워크 인터페이스의 ENA 큐 수정하기: modify-network-interface-attribute 명령을 사용해요.

aws ec2 modify-network-interface-attribute \
    --network-interface-id eni-1234567890abcdef0 \
    --attachment AttachmentId=eni-attach-1234567890abcdef0,EnaQueueCount=16

PowerShell

네트워크 인터페이스의 ENA 큐 수정하기: Edit-EC2NetworkInterfaceAttribute cmdlet을 사용해요.

Edit-EC2NetworkInterfaceAttribute `
    -NetworkInterfaceId eni-1234567890abcdef0 `
    -Attachment_AttachmentId eni-attach-1234567890abcdef0 `
    -Attachment_EnaQueueCount 16

다음 예시에서는 ENA 수를 기본값으로 재설정해요.

AWS CLI

aws ec2 modify-network-interface-attribute \
    --network-interface-id eni-1234567890abcdef0 \
    --attachment AttachmentId=eni-attach-1234567890abcdef0,DefaultEnaQueueCount=true

PowerShell

Edit-EC2NetworkInterfaceAttribute `
    -NetworkInterfaceId eni-1234567890abcdef0 `
    -Attachment_AttachmentId eni-attach-1234567890abcdef0 `
    -Attachment_DefaultEnaQueueCount $true

더 알아보기 (Learn more)