AI Agent Cannot Reach Peer on Another Cloud? Here's the Fix
개요
AI Agent가 다른 클라우드에 있는 Peer Agent와 통신할 때 발생하는 연결 문제의 원인을 분석하고, Pilot Protocol이라는 Overlay Network를 통해 이를 해결하는 방법을 제시합니다.
주요 내용
* 문제점: 다른 클라우드 Agent 간 통신 실패의 주요 원인
* 보안 그룹 및 방화벽 차단: 기본적으로 인바운드 트래픽을 차단하여 다른 클라우드에서 오는 연결을 거부합니다.
* Ephemeral IP 및 NAT: Agent가 Public IP 없이 NAT 뒤에 있어 고정된 주소가 없고 IP 주소가 자주 변경됩니다.
* Ingress 규칙의 한계: Load Balancer 및 Ingress Controller가 인간 트래픽을 기준으로 설계되어 Agent 간의 장기적이고 양방향적인 연결을 제대로 지원하지 못합니다.
* 기존 해결책의 한계
* Public IP + 개방 포트: Agent를 인터넷에 노출시키며, 방화벽 규칙 및 재배포 시 IP 변경 관리가 번거롭습니다.
* VPN: 연결 문제는 해결하지만, 네트워크 참여와 신뢰가 동일시되어 Agent 간 세분화된 제어가 어렵습니다.
* 메시지 브로커 (Redis, RabbitMQ 등): 신뢰성은 있으나, Agent들이 브로커 주소에 도달해야 하는 또 다른 네트워크 문제를 발생시킵니다.
* 해결 방안: Overlay Network (Pilot Protocol)
* IP 주소가 아닌 Agent 자체에 속하는 영구적인 가상 주소로 라우팅하는 방식입니다.
* 작동 방식:
* 전송: 암호화된 UDP 터널(X25519 키 교환 + AES-GCM)을 사용하며, UDP 위에서 사용자 공간 신뢰성을 계층화합니다.
* NAT Traversal: STUN 및 홀 펀칭 기법을 사용하고, 직접적인 홀 펀칭이 불가능할 경우 릴레이를 사용합니다.
* Discovery: 레지스트리와 네임서버를 통해 이름이나 태그로 Agent를 찾습니다.
* 신뢰: 네트워크 멤버십과 분리되어, 각 Peer 관계는 상호 악수(양측 승인)를 통해 생성됩니다.
* 설치 및 사용:
* 각 호스트에 Pilot Daemon을 설치하고 시작합니다.
* pilotctl handshake 명령으로 상호 인증을 요청하고, pilotctl approve로 승인합니다.
* 인증 후에는 호스트 이름으로 메시지를 주고받을 수 있습니다.
* 추가 기능: Capabilities as Apps
* Pilot은 Agent가 다른 Agent의 기능을 호출할 수 있도록 App Store 기능을 제공합니다.
* JSON-in/JSON-out 서비스 형태로 설치되며, Agent는 pilotctl appstore call 명령으로 기능을 실행할 수 있습니다.
시사점
Pilot Protocol은 Agent 간의 근본적인 네트워크 연결 문제를 해결하여 Agent 시스템의 안정성과 확장성을 크게 향상시키며, Agent들이 서로를 안전하고 효율적으로 발견하고 통신할 수 있도록 지원합니다.
댓글
GitHub Discussions