Elastic Network Adapter (ENA) Express

Blog fra AWS re:invent 2022

AWS re:Invent 2022 – Elastic Network Adapter (ENA) Express for netværksoptimerede EC2-instancer

En beretning fra Conscia’s besøg på AWS re:Invent 2022

Nerd alert:
Denne feature er bestemt ikke relevant for alle – men den illustrerer, hvordan AWS løbende optimerer deres platform og giver et indblik ind i ”maskinrummet”.

 

Den korte version

AWS har under re:Invent i år lanceret en ny feature, der gør, at nogle netværksoptimerede EC2-instancer nu har endnu bedre netværk. Netværksoptimerede EC2-instancer bruges f.eks. til high-performance computing (HPC), video encoding etc. og du kan tage denne feature i brug bare ved at enable den.

Hvis du ikke har planer om at bruge netværksoptimerede EC2-instancer, eller hvis du har planer om at bruge denne feature, men ikke har behov for at viden hvordan AWS gør det, er du velkommen til at stoppe med at læse her…

Den længere version

En af fordelene ved cloud er, at man kan bruge services uden nødvendigvis at bekymre sig om f.eks. hvad det er for en hardware, der ligger neden under. Men nogen af os synes, at det er spændende at forstå, hvordan AWS bygger sine datacentre. Ja, jeg skilte også mit legetøj ad, da jeg var lille, fordi jeg ville vide, hvordan det fungerede (red).

 

AWS er gode til at bygge datacentre

Der er rigtig mange workloads, der kører på AWS’ infrastruktur, og derfor er der stor gevinst ved at optimere datacentre. AWS er gode til at dele information, om de teknologier de udvikler specielt til at optimere deres datacentre.

Et eksempel på sådan en teknologi er AWS Nitro System. AWS har udviklet HW acceleration til deres servere, som inkluderer HW til storage, security og networking. En fordel er, at næsten alle ressourcer på en hosts kan allokeres til VM’er. En anden fordel er, at sikkerheden bliver bedre (du kan som bruger selv udnytte Nitro features til confidential computing i din egen applikation, men det er et emne til en anden potentiel blog post).

Endnu en fordel ved Nitro er, at networking kan blive bedre og hurtigere og ENA Express er en forbedring, der kommer og gør Nitro networking endnu bedre.

Teknologien, der gør ENA Express mulig, er en netværksprotokol ved navn Scalable Reliable Datagram (SRD).

Hyperscale datacenternetværk er lidt specielle sammenlignet med andre netværk. Transportlaget i AWS datacentre består af mange switche og mange parallelle paths, og SRD er udviklet til at udnytte denne datacenter-topologi. Du læste rigtigt: for at få bedre performance har AWS selv udviklet en netværksprotokol optimeret til hyperscale datacenternetværk.

AWS Elastic Network Adapter

Resultatet er, at SRD giver nogle fordele sammenlignet med traditionel TCP-trafik i hyperscale datacenternetværk: konsistent lav latency og bedre båndbredde for single flow.

TCP-trafik med hashing over ECMP resultererer i en statisk mapping per flow gennem netværket. SRD derimod benytter sig af multipath load balancing. For nogle applikationer er det vigtigt alle pakker kommer frem med lav latency, fordi man ellers skal vente på den sidste pakke (tail latency), og TCP retransmit kan spille ind her. SRD-protokollen inkluderer congestion control algoritme optimeret til hyperscale datacenternetværk.

Specifikt så forbedrer ENA Express maximum single flow bandwidth fra 5 Gbps op til 25 Gbps, og kan give 85% forbedring i P99,9 latency for high throughput workloads.

Se dette link for en dybere diskussion af SRD.

Hvilker typer use cases er velegnede til ENA Express?

Det kan f.eks. være HPC eller machine learning, hvor konsistent lav latency er et krav, eller video encoding hvor både konsistent lav latency, og single flow bandwidth er vigtig.

Hvordan enabler man ENA Express?

Det er faktisk meget simpelt. Du kan gå ind i AWS management console, finde dit network interface og enable ENA Express:

AWS Elastic Network Adapter

En detalje er, at hvis du også vil bruge ENA Express for UDP-trafik, skal det enables separat:

AWS Elastic Network Adapter

ENA Express er også understøttet via CLI, API, CloudFormation og CDK.


Hvilke EC2 instance typer understøtter ENA Express?

Lige nu er ENA Express kun understøttet for C6gn.16xl, som er en instance type lavet til HPC. 6gn.16xl er baseret på AWS’ egenudviklede ARM-baserede Graviton2 processor, og AWS skriver ”more coming soon”. SRD bruges også til den nyeste generation af AWS Block Storage (EBS Block Express). Der er ikke nogen ekstra cost associeret med ENA Express, og ENA Express er supporteret i alle AWS-regioner (AWS Commercial Regions).


Er der nogen begrænsninger?

En vigtig detalje er, at ENA Express er ”same AZ only”, dvs. at EC2 instancerne skal være i samme availability zone. Dette er ikke en stor begrænsning, da ”same AZ only” er et typisk setup for HPC.

ENA Express konsumerer en del ressourcer på EC2 network interface – det kan, ifølge AWS, betyde at ENA Express ikke er optimalt i et scenarie med high packet rate koblet med små pakker.

Relevante links:

 

Vil du modtage relevante nyheder og blogs i din indbakke? Så tilmeld dig her:

Tilmeld nyhedsbrev