Three Clouds, Three Native Agents
개요
세 개의 클라우드 공급자(GCP, AWS, Azure)의 네이티브 에이전트 프레임워크를 사용하여 단일 질문에 동시에 응답하고, 중앙 코디네이터가 그 결과를 취합하여 중앙값을 반환하는 프로젝트를 설명합니다. 이 시스템은 장기 보관되는 비밀 키 없이 안전하게 상호 운용되며, 모든 인증은 필요한 순간에 생성되는 토큰으로 이루어집니다.
주요 내용
- 다중 클라우드 에이전트 아키텍처: Google Cloud Run의 ADK 에이전트, AWS Bedrock AgentCore Runtime의 Strands 에이전트, Azure Container Apps의 Agent Framework 에이전트가 각각 실행되며, A2A v1.0 프로토콜을 통해 통신합니다.
- 키리스(Keyless) 인증 방식: 장기 보관 비밀 키 대신, 각 에이전트 호출 시점에 발급되는 OIDC 토큰을 활용합니다. 이를 통해 서비스 계정 키 관리 및 보안 위험을 근본적으로 제거합니다.
- 코디네이터의 역할 및 위치 중요성: 코디네이터의 호스팅 위치 결정이 시스템의 전체 비밀 키 개수를 좌우합니다. GCP Cloud Run에서 코디네이터를 실행할 경우, 클라우드 간 인증 시 제로 비밀 키(zero secrets) 구성이 가능합니다.
- 클라우드 간 상호 운용 메커니즘: 각 클라우드 공급자의 OIDC ID 공급자 또는 Federated Identity Credentials를 활용하여 외부 토큰을 신뢰하도록 설정하고, 토큰 발급 런타임이 페더레이션을 통해 다른 클라우드에 접근합니다.
- 단일 인증 시점(Credential Seam) 구축:
httpx.Auth와 같이 모든 클라우드 공급자의 SDK가 수용할 수 있는 단일 인터페이스를 통해 인증을 처리하여, 코디네이터는 세 가지 다른 인증 메커니즘을 인지할 필요 없이 동일하게 취급합니다. - 결함 허용(Graceful Degradation) 및 제어 범위: 시스템은 일부 클라우드가 실패하더라도 정상적으로 작동하도록 설계되었습니다. 각 구성 요소에 대한 제어가 분리되어 있어, 시스템의 점진적인 성능 저하가 인증 실패를 숨기지 않도록 합니다.
- 재현성 확보를 위한 재구축: 시스템 배포 및 재현성을 검증하기 위해 처음부터 모든 구성 요소를 다시 구축하는 과정을 거치며, 이를 통해 스크립트 오류나 Azure의 리소스 삭제 관련 문제를 발견하고 해결합니다.
- 운영 및 비용 고려사항: 에이전트 스택은 제로 리플리카로 아이들링하여 비용을 절감하지만, 콜드 스타트 지연 시간을 고려해야 합니다.
시사점
이 프로젝트는 네이티브 에이전트 기능을 활용한 다중 클라우드 통합 및 안전한 상호 운용 구현에 대한 실질적인 방법론을 제시하며, 특히 비밀 키 관리를 최소화하는 키리스 인증 방식의 중요성과 재현성 있는 시스템 구축을 위한 운영상의 고려사항을 강조합니다.
원문을 불러오는 중...
댓글
GitHub Discussions