Search

분산 트레이닝 관점에서의 AWS 인터커넥트 기술 소개 – AWS의 인터커넥트 기반 기술, ENI 소개

URL
생성 일시
2026/04/14 03:06
최종 편집 일시
2026/04/14 03:06
태그
AWS
파일과 미디어
지난 블로그에서는 AWS가 인피니밴드 대신 EFA를 선택한 이유와 두 기술의 철학적 차이에 대해 살펴보았습니다. 이번 블로그에서는 한 단계 더 들어가, EFA가 EC2 인스턴스에 연결되는 기반 구조인 ENI(Elastic Network Interface)에 대해 소개하고자 합니다. EFA의 성능을 제대로 활용하려면 ENI가 무엇인지, 그리고 네트워크 카드와 ENI가 어떤 관계를 가지는지를 이해하는 것이 선행되어야 합니다. 특히 p5.48xlarge, p6-b300.48xlarge과 같은 고성능 GPU […] || 지난 블로그에서는 AWS가 인피니밴드 대신 EFA를 선택한 이유와 두 기술의 철학적 차이에 대해 살펴보았습니다. 이번 블로그에서는 한 단계 더 들어가, EFA가 EC2 인스턴스에 연결되는 기반 구조인 ENI(Elastic Network Interface)에 대해 소개하고자 합니다. EFA의 성능을 제대로 활용하려면 ENI가 무엇인지, 그리고 네트워크 카드와 ENI가 어떤 관계를 가지는지를 이해하는 것이 선행되어야 합니다. 특히 p5.48xlarge, p6-b300.48xlarge과 같은 고성능 GPU 인스턴스에서는 수십 개의 네트워크 카드와 ENI를 어떻게 구성하느냐에 따라 실제 분산 트레이닝 성능이 크게 달라집니다. 이 블로그를 통해 ENI의 구조와 할당 규칙, 그리고 실제 인스턴스 구성 방법까지 단계적으로 이해할 수 있기를 기대합니다. 시리즈 블로그 보기 분산 트레이닝 관점에서의 AWS 인터커넥트 기술 소개 – AWS는 왜 인터커넥트 기술로 EFA를 사용하는가? 분산 트레이닝 관점에서의 AWS 인터커넥트 기술 소개 – AWS의 인터커넥트 기반 기술, ENI 소개 분산 트레이닝 관점에서의 AWS 인터커넥트 기술 소개 – AWS 환경에서 NCCL을 이용한 GPU간 통신 분산 트레이닝 관점에서의 AWS 인터커넥트 기술 소개 – 분산 트레이닝을 위해 알아야 할GPU 간 고속 통신 기술 ENI의 역할과 구조 온프레미스 환경에서 서버는 물리적인 네트워크 어댑터를 통해 네트워크에 연결됩니다. 이더넷 환경에서는 NIC(Network Interface Card), 인피니밴드 환경에서는 HCA(Host Channel Adapter)가 이 역할을 담당합니다. 각 서버에는 하나 이상의 네트워크 어댑터가 장착되어 있으며, 이 어댑터는 스위치와 같은 네트워크 패브릭에 직접 연결되어 노드 간 통신을 처리합니다. 분산 트레이닝 환경에서는 고속 인터커넥트(예: 인피니밴드 HDR/NDR)를 통해 GPU 서버들이 직접 연결되며, 네트워크 구성은 하드웨어 사양에 따라 고정적으로 결정됩니다. 즉, 서버에 네트워크 어댑터가 몇 장 꽂혀 있느냐가 곧 네트워크 연결 수를 결정하며, 이를 변경하려면 물리적인 하드웨어 교체가 필요합니다.  AWS에서는 이러한 물리적 NIC의 역할을 ENI가 대신합니다. ENI는 소프트웨어 계층에서 동작하는 가상 네트워크 인터페이스로, EC2 인스턴스에 가상 네트워크 카드 역할을 수행합니다. 온프레미스 환경과는 달리 ENI는 소프트웨어적으로 생성·삭제·재연결이 가능하며, 인스턴스 간 이동도 유연하게 처리할 수 있습니다. EC2 인스턴스가 네트워크 통신을 하기 위해서는 반드시 최소 하나 이상의 ENI가 필요하며, 하나의 인스턴스에 여러 개의 ENI를 연결하는 것도 가능합니다. 단, 인스턴스 유형에 따라 연결 가능한 최대 ENI 개수가 정해져 있습니다. Nitro 기반 인스턴스를 기준으로, 개별 ENI는 ENA(Elastic Network Adapter) 또는 EFA(Elastic Fabric Adapter, ENA의 확장) 속성 중 하나를 가집니다. 분산 트레이닝을 수행하거나 고성능의 엔지니어링 시뮬레이션이 필요하다면 EFA 사용은 필수입니다. 모든 EC2 인스턴스에는 반드시 Primary ENI가 존재합니다. Primary ENI는 인스턴스가 시작될 때 자동으로 생성되며, 인스턴스가 종료될 때 함께 삭제됩니다. 일반 ENI와 달리 Primary ENI는 인스턴스에서 분리(detach)