AI 에이전트 프로덕션 배포, 하네스 엔지니어링으로 안전하게!

by DD
1개월 전
조회수 34

Agentic AI 시스템의 프로덕션 배포를 위한 하네스 엔지니어링(Harness Engineering)의 중요성을 강조하며, 안정적인 운영 환경 구축의 필요성을 제기함

Amazon Bedrock AgentCore Runtime을 활용하여 에이전트 실행 환경을 구축하고, microVM 기반 격리를 통해 보안을 강화함

코드 실행 환경 분리를 위해 AWS Fargate를 도입하고, S3를 중간 저장소로 활용하여 데이터 격리 및 Human-in-the-loop 피드백을 구현함

VPC와 VPC Endpoint를 활용한 네트워크 격리를 통해 데이터 유출 위험을 최소화하고, 다층 방어(Defense in Depth) 구조를 구축함

실제 Deep Insight 시스템의 실행 기록을 통해 하네스 엔지니어링 설계의 효과를 검증하고, 에이전트의 자가 복구 메커니즘을 설명함

하네스 엔지니어링(Harness Engineering)의 개념과 중요성

본문은 AI 에이전트의 프로덕션 환경 구축에 있어 하네스 엔지니어링(Harness Engineering)의 중요성을 강조한다. 하네스 엔지니어링은 에이전트의 실행 환경을 제어하고, 안정적인 운영을 위한 규칙을 정의하는 일련의 과정이다.

비결정론적(Non-deterministic) 실행장기 세션(Long-running Session), 외부 도구 호출, 멀티 유저 환경에서의 격리 등 기존 소프트웨어와는 다른 요구사항을 해결해야 한다.

프롬프트 인젝션(Prompt Injection) 공격과 같은 에이전트 고유의 위협에 대응하기 위한 체계적인 접근 방식이 필요하다.

AWS Bedrock AgentCore와 같은 관리형 서비스를 활용하여 에이전트 인프라를 구축하는 추세에 발맞춰, 에이전트의 추론 로직과 실행 인프라 사이의 간극을 메우는 엔지니어링 방법론이 중요해지고 있다.

Amazon Bedrock AgentCore Runtime을 활용한 에이전트 실행 환경

Deep Insight는 에이전트 실행 환경으로 Amazon Bedrock AgentCore Runtime을 선택하고, microVM 기반 세션 격리(Session Isolation)를 통해 보안을 강화했다. AgentCore Runtime은 서버리스(Serverless) 실행 환경을 제공하여, 서버 관리의 부담을 줄여준다.

Active CPU 기반 과금(Active CPU-based Billing)자동 스케일링(Auto Scaling)을 통해 비용 효율성을 확보하고, 프로덕션 수준의 가용성을 손쉽게 구현한다.

VPC 모드(VPC Mode)AWS PrivateLink를 활용하여 네트워크 격리를 구현하고, 데이터 유출 위험을 최소화한다.

AgentCore Runtime은 에이전트 추론에 최적화되어 있으며, 코드 실행 환경 분리를 통해 Runtime과 Compute의 워크로드 특성 차이를 해결한다.

코드 실행 환경 분리를 위한 AWS Fargate 도입

Deep Insight는 코드 실행 환경을 분리하기 위해 AWS Fargate를 도입하고, Custom Code Interpreter를 구축했다. Fargate는 서버 관리 부담 없이 시간 제한 없는 실행을 제공하며, 실행 환경의 자유도를 높여준다.

Docker 이미지(Docker Image)를 사용하여 실행 환경을 패키징하고, 필요한 시스템 라이브러리, 언어팩, Python 패키지 등을 build-time에 자유롭게 추가한다.

Base64 인코딩(Base64 Encoding)을 통해 특수문자 문제를 해결하고, subprocess.run()timeout 유틸리티를 사용하여 코드 실행의 안정성을 확보한다.

ALB(Application Load Balancer)를 통해 요청 분배, Health Check, Sticky Session을 구현하고, Runtime과 Fargate 간의 연결을 관리한다.

S3를 활용한 데이터 격리 및 Human-in-the-loop 피드백

Deep Insight는 S3를 중간 저장소로 활용하여 데이터 격리, 세션 간 아카이브, Human-in-the-loop 피드백을 구현했다. S3는 데이터 내구성, 확장성, VPC Endpoint를 통한 Private Network 접근, 저렴한 비용 등의 장점을 제공한다.

S3의 prefix 구조를 활용하여 세션별 데이터 격리를 구현하고, 세션 간 데이터 충돌을 방지한다.

Context 외부화(Context Externalization)를 통해 에이전트가 생성하는 정보를 S3에 저장하고, 필요한 경우에만 읽어온다.

Human-in-the-loop 피드백을 위해 S3를 사이드 채널로 사용하고, polling 루프와 keepalive 이벤트를 통해 스트리밍 연결을 유지한다.

VPC와 Security Group을 활용한 네트워크 격리

Deep Insight는 VPC(Virtual Private Cloud)VPC Endpoint를 활용하여 안전한 프로덕션 운영을 위한 네트워크 격리를 구현했다. 모든 워크로드는 인터넷 연결이 없는 Private Subnet에 배치되고, AWS 서비스 접근은 VPC Endpoint를 통해 이루어진다.

Private Subnet에 워크로드를 배치하고, NAT Gateway를 통해 최소한의 아웃바운드 통신만 허용한다.

VPC Endpoint를 사용하여 AWS 서비스에 안전하게 접근하고, 데이터가 인터넷을 경유하지 않도록 한다.

Security Group을 통해 컴포넌트 간 통신을 최소한으로 제한하고, 각 컴포넌트는 바로 앞뒤의 컴포넌트와만 통신하도록 설정한다.

하네스 엔지니어링으로 본 Deep Insight – 로컬 개발에서 프로덕션 운영까지의 설계 여정