Apollo 에이전트의 역할과 통신
Apollo 에이전트는 관리되는 스포크 환경에서 실행되며, 허브가 제공한 변경 계획을 수행하고 보고된 상태를 허브로 전달합니다. 스포크 제어 플레인의 helm-chart-operator가 이러한 에이전트의 한 예입니다.
에이전트는 배포 환경 안에서 실제 대상과 상호작용합니다. 허브가 변경을 판단하는 위치라면, 에이전트는 환경 안에서 그 변경을 실행하고 결과를 보고하는 구성 요소입니다.
통신 대상
에이전트는 환경을 관리하기 위해 다음 대상과 통신합니다.
| 대상 | 통신 목적 |
|---|---|
| Apollo 허브 | 실행할 계획을 확인하고 계획의 진행 및 결과와 상태를 보고 |
| 환경에 지정된 아티팩트 저장소 | 계획 실행에 필요한 Helm 차트와 컨테이너 이미지를 가져옴 |
계획 메타데이터에 접근할 수 있어도 산출물을 가져올 수 없다면 설치나 업그레이드를 완료할 수 없습니다. 네트워크 구성을 확인할 때에는 허브 연결과 아티팩트 저장소 연결을 각각 확인해야 합니다.
환경에서 시작하는 아웃바운드 요청
에이전트는 해당 서비스들과 암호화된 아웃바운드 요청으로 통신합니다. 요청을 시작하는 쪽은 스포크 환경입니다. 운영자는 허용할 목적지와 네트워크 경로를 통제할 수 있습니다.
에이전트는 허브에 HTTP 요청을 보내 계획을 받고, 저장소에 요청을 보내 필요한 파일을 받습니다. 요청은 스포크에서 시작하지만 응답으로 계획과 산출물이 전달됩니다.
전송 중 암호화와 환경 식별
환경 등록 과정에서는 해당 환경에 고유한 암호학적 키와 인증 정보를 구성합니다. 허브가 서명한 인증서를 에이전트의 허브 통신에 사용하여 어느 환경에서 온 통신인지를 식별하고 가장을 방지합니다.
에이전트는 환경을 식별하는 인증 정보를 사용하며, 사용자가 관리 화면에 로그인할 때 사용하는 인증과는 별도로 구성합니다.
HTTP 프록시 뒤의 환경
스포크가 HTTP 프록시 뒤에 있다면 에이전트의 프록시 구성을 제공해야 합니다. 주요 환경 변수는 다음과 같습니다.
| 변수 | 목적 |
|---|---|
HTTPS_PROXY | HTTPS 요청이 사용할 프록시 경로 지정 |
NO_PROXY | 프록시를 거치지 않을 목적지 지정 |
값은 실제 네트워크 구성에 맞춰 지정합니다. 프록시를 설정한 뒤에는 허브와 필요한 저장소 모두에 접근할 수 있는지 확인해야 합니다. 프록시 경로만 맞추고 허용 목적지나 인증을 충족하지 못한 상태에서는 계획 정보를 받거나 산출물을 가져오는 작업이 실패할 수 있습니다.
다른 종류의 에이전트와 구분하기
| 종류 | 역할 |
|---|---|
| Apollo 에이전트 | 소프트웨어와 인프라의 배포 상태를 보고하고 변경 계획을 실행 |
| Data Connection 에이전트 | Foundry의 외부 시스템 연결 경로 등에 사용 |
| AI 에이전트 | 모델, 문맥과 도구를 이용하여 업무를 수행 |
에이전트라는 이름이 같더라도 설치 위치, 권한, 연결 대상과 실행 목적은 다릅니다. 네트워크 문제나 실행 실패를 조사할 때에는 어떤 에이전트인지 먼저 구분합니다.