
아마존에서는 기존 멀티 테넌트 데이터 센터 네트워크의 제약사항인 load 불균형, 일관 되지 않은 latency, TCP 흐름 충돌을 극복하고자 SRD 프로토콜을 만들었습니다. SRD 프로토콜은 Packet 순서를 유지 하는 대신 SRD는 네트워크의 경로의 오버로드 피하면서 가능한 많은 네트워크 경로에 패킷을 보냅니다. 지터[1]를 최소화하고 네트워크 혼잡 변동에 가장 빠른 응답을 보장하기 위해서 SRD는 아마존 Nitro 네트워크 카드에 구현이 되어 있습니다. SRD는 EFA(Elastic Fabric Adapter) 인터페이스의 OS 우회 및 ENA Express에서 사용이 됩니다.
SRD 프로토콜을 사용하는 EFA 와 ENA EXPRESS에 대해서 알아보고 기존 TCP 대비 얼마나 빠른 속도로로 처리가 가능한지 알아 보도록 하겠습니다.
EFA(Elastic Fabric Adapter)는 추가 기능이 있는 ENA(Elastic Network Adapter)입니다. 일반적인 HPC 애플리케이션은 시스템의 네트워크 전송 인터페이스에 MPI(Message Passing Interface)를 사용했습니다. AWS 클라우드 환경에서 이는 MPI는 애플리케이션 인터페이스와 연결되는 것을 의미하며 이는 인스턴스 간 네트워크 통신을 위해 운영 체제의 TCP/IP 스택과 ENA 디바이스 드라이버를 사용한다는 의미입니다. EFA에서 HPC 애플리케이션은 Libfabric API와 함께 MPI 또는 NCCL 인터페이스를 사용합니다. Libfabric API는 운영 체제 커널을 우회하여 EFA 디바이스와 직접 통신을 통해 네트워크에 패킷을 전송합니다. 이는 오버헤드를 줄이고 HPC 애플리케이션이 더욱 효율적으로 실행되도록 합니다.

AWS에서는 각 4개의 서버에 12개의 프로세스를 동작시켜 48개의 독립적인 네트워크 flow를 측정 하였습니다. AWS에서는 SRD와 TCP의 flow completion time(FCT)를 측정하여 비교 하였습니다.
AWS에서는 EFA/SRD 와 TCP에 대해서 MPI 대역폭 벤체마크를 수행 하였습니다. 송신자는 barrier를 이용하여 각각의 전송이 동시에 시작 될 수 있게 하였습니다. 아래 그림은 이상적인 FCT와 각기 다른 전송 사이즈 별 FCT 최대 값입니다. SRD의 경우 이상적인 FCT에 근접한 반면 TCP 의 경우 3배에서 20배 가까이 이상적인 FCT값과 차이가 나타났습니다.

AWS ENA(Elastic Network Adapter)는 AWS EC2에서 기존 TCP 통신을 효과적으로 수행 하기 위해 Nitro Controller에 의해 동작하는 표준 네트워크 드라이버 입니다. ENA Express 2022년 11월 re:Invent 2022에 소개 된 기술로 기존의 TCP 및 UDP 통신을 별도의 Application 수정 없이 SRD 프로토콜을 이용하여 가능하게 해주는 기술 입니다.
아래 그래프는 AWS에서 초당 1백만개의 쿼리를 Memory DB에 GET(80%)/SET(20%) 테스트한 결과입니다.
P99.999 및 더 높은 꼬리 대기 시간에서 Latency가 다른 것을 보여 줍니다.
네트워킹에서 꼬리 Latency는 일반적으로 평균 Latency에 비해 훨씬 더 높은 레이턴시 또는 지연을 경험하는 드문 케이스를 의미 합니다만 실시간 또는 레이턴시에 민감한 애플리케이션에서 특히 중요합니다.

아래 그림에서는 GET 작업에 대한 대기 시간을 조사합니다. 이 테스트에서 GET은 작업의 80%를 나타내므로 부하의 비율이 더 높습니다. 테스트 결과 P99.9 이상의 범위에서 TCP 와 SRD는 차이가 나타납니다. P100에서 ENA Express 꼬리 대기 시간은 ENA Express를 활성화하지 않은 인스턴스에 비해 100배 이상의 성능 향상을 보여줍니다.

EFA를 활용하면 HPC 애플리케이션들을 AWS 퍼블릭 클라우드 환경에서 대규모로 실행할 수 있습니다. SRD 프로콜은 일관적인 낮은 latency를 제공하고 tail latency를 TCP보다 수십 배 더 낮게 제공합니다. Nitro 카드위에 구현 된 SRD 다중 경로 로드 밸런싱 및 혼잡 제어를 실행하면 패킷이 끊어질 가능성이 줄어들고 패킷 드랍이 발생 할 경우 빠른 복구가 가능하게 됩니다. 또한, Scalable Reliable Datagram(SRD) 프로토콜을 기반으로 하는 ENA Express는 P99 Latecny 을 TCP 대비 최대 50% P99.9의 경우 Latency를 최대 85%까지 줄이는 동시에 최대 단일 흐름 대역폭을 5Gbps에서 25Gbps로 늘립니다. 이처럼 SRD의 기반의 EFA 및 ENA Express를 사용하게 되면 대역폭은 훨씬 크고 변동성은 훨씬 적은 네트워크 성능을 제공 받을 수 있습니다.
지터[1] : 지터는 네트워크 연결을 통한 데이터 전송과 수신 사이의 시간 지연의 변화입니다. 더 나은 사용자 경험을 위해 지연 변동보다 일관된 지연이 선호됩니다.