Lambda Just Got a File System. I Put AI Agents on It.

개요

AWS Lambda에 S3 버킷을 로컬 파일 시스템처럼 마운트할 수 있는 S3 Files 기능이 추가되어, Lambda 함수가 S3 객체를 직접 파일처럼 읽고 쓸 수 있게 되면서 AI 에이전트 작업 공간을 쉽게 공유할 수 있게 되었다.

주요 내용

* S3 Files를 통한 파일 시스템 접근: 기존 Lambda 함수는 S3 객체를 처리하기 위해 /tmp 디렉토리에 다운로드하고, 처리 후 다시 업로드하는 복잡한 과정을 거쳐야 했다. S3 Files는 S3 버킷을 /mnt/workspace와 같은 로컬 경로로 마운트하여, Lambda 코드가 open()과 같은 표준 파일 시스템 API를 사용하여 객체를 직접 접근하고 수정할 수 있게 한다.
* AI 에이전트 워크스페이스 구축: S3 Files를 사용하여 여러 Lambda 함수가 동일한 S3 버킷을 공유하는 작업 공간으로 활용할 수 있다. 예를 들어, 코드 리포지토리를 클론하여 보안 및 스타일 분석 에이전트가 병렬로 코드를 분석하고, 분석 결과를 같은 작업 공간에 JSON 파일로 저장하여 S3로 동기화하는 시스템을 구축할 수 있다.
* VPC 설정의 필요성: S3 Files 기능을 사용하려면 Lambda 함수가 VPC 내에 있어야 하며, S3 Files 마운트 타겟과 동일한 VPC에 위치해야 한다. 또한, 외부 인터넷 접근을 위해 NAT Gateway가 필요하다. VPC 설정은 초기 설정의 복잡성을 증가시키지만, 재사용 가능한 네트워크 템플릿을 활용하여 관리할 수 있다.
* S3 Files 동작 방식: S3 Files는 Amazon EFS를 기반으로 하며, 자주 사용되는 데이터의 경우 고성능 스토리지에 캐싱하여 낮은 지연 시간을 제공한다. 대용량 순차 읽기의 경우 S3에서 직접 스트리밍한다. S3 Files를 통해 파일 시스템의 유연성과 S3의 내구성 및 경제성을 동시에 얻을 수 있다.
* CloudFormation 리소스 구성: S3 Files를 Lambda와 함께 사용하기 위해 S3 버킷, IAM Role, S3 Files FileSystem, Mount Targets, Access Point 등 5가지 리소스가 필요하다. 특히, IAM Role은 EFS 서비스 Principal (elasticfilesystem.amazonaws.com)을 신뢰해야 하며, Access Point는 Lambda가 파일 시스템에 접근할 때 사용하는 POSIX ID와 쓰기 권한을 제어하는 데 중요한 역할을 한다.
* 코드 작성 및 배포: S3 Files 기능을 활용하여 GitHub 리포지토리를 분석하는 서버리스 코드 리뷰 시스템을 구축했으며, Strands Agents SDK와 Amazon Bedrock을 사용하여 각 에이전트가 파일 도구를 통해 작업 공간의 파일을 분석하도록 구성했다. Lambda Durable Functions를 통해 워크플로우를 조정하고 체크포인팅 기능을 활용했다.

시사점

S3 Files 기능은 Lambda 함수 간의 파일 공유 및 협업을 위한 복잡성을 크게 줄여주며, S3 API 호출 및 /tmp 디렉토리 관리의 번거로움을 해소하여 AI 에이전트와 같은 복잡한 워크플로우를 더욱 효율적으로 구축하고 배포할 수 있게 한다.

원문 읽기 →
원문을 불러오는 중...

댓글

GitHub Discussions