AWS Lambda, S3 Files로 파일 시스템을 만나다!

by DD
2주 전
조회수 16

S3 Files는 람다(Lambda) 함수에서 S3 버킷(Bucket)을 파일 시스템(File System)처럼 마운트(Mount)하여 파일 접근 방식(File Access Method)을 혁신

기존 /tmp 디렉토리(Directory)를 활용한 파일 다운로드, 업로드, 삭제 과정 없이 파일 시스템(File System) 인터페이스(Interface)를 통해 직접 파일 접근 가능

AI 코드 리뷰 에이전트(AI Code Review Agents)를 활용하여, 공유된 S3 파일 시스템(File System)에서 병렬 코드 분석(Parallel Code Analysis) 수행

VPC(Virtual Private Cloud) 설정 및 EFS(Elastic File System) 기반으로 구축되어, 네트워킹 설정(Networking Configuration) 및 일관성(Consistency) 고려 필요

S3 Files 아키텍처(Architecture) 심층 분석

S3 Files는 람다(Lambda) 함수에서 S3 버킷(Bucket)을 파일 시스템(File System)처럼 사용할 수 있도록 지원하며, Amazon EFS(Elastic File System)를 기반으로 구축되었다.

파일 시스템 인터페이스(File System Interface)를 통해 S3 객체(Object)에 접근하여, 기존 /tmp 디렉토리(Directory)를 활용한 복잡한 파일 관리(File Management)를 단순화

VPC(Virtual Private Cloud) 환경에서 람다(Lambda) 함수와 EFS 간의 통신을 위해 네트워킹 설정(Networking Configuration) 필수

Access Point를 통해 람다(Lambda) 함수가 파일 시스템(File System)에 접근할 때 사용할 POSIX ID(POSIX Identity)를 제어하며, 파일 시스템(File System) 내 디렉토리(Directory) 생성 권한 관리

S3 Files를 활용한 AI 코드 리뷰 시스템 구축

저자는 S3 Files를 활용하여 서버리스(Serverless) 기반 코드 리뷰 시스템(Code Review System)을 구축하고, AI 에이전트(AI Agents)를 통한 병렬 코드 분석(Parallel Code Analysis)을 구현했다.

Durable Function을 사용하여 코드 분석 워크플로우(Workflow)를 오케스트레이션(Orchestration)하고, 자동 체크포인팅(Automatic Checkpointing) 기능을 통해 안정성 확보

Strands Agents SDKAmazon Bedrock을 활용하여, 각 에이전트(Agent)가 S3 파일 시스템(File System)에 접근하여 코드 분석을 수행하도록 구현

오케스트레이터(Orchestrator)와 에이전트(Agent) 간의 데이터 공유를 위해 파일 시스템(File System)을 활용하여, S3 키(Key)를 주고받는 과정 제거

S3 Files의 성능 및 일관성 모델

S3 Files는 액티브하게 사용되는 데이터(Actively Used Data)에 대해 서브 밀리초(Sub-millisecond) 레이턴시(Latency)를 제공하며, 대용량 순차 읽기(Large Sequential Reads)의 경우 S3에서 직접 스트리밍(Streaming)하는 방식을 사용한다.

Close-to-open 일관성(Consistency) 모델을 제공하여, 파일 쓰기(File Write) 후 즉시 읽기(File Read) 시 최신 버전의 데이터(Data)를 보장하지 않을 수 있음

VPC(Virtual Private Cloud) 환경 설정NAT Gateway를 통한 아웃바운드 인터넷 접근(Outbound Internet Access) 필요

VPC(Virtual Private Cloud) 환경에서 람다(Lambda) 함수 콜드 스타트(Cold Start) 시간은 2초 미만으로, 성능 저하(Performance Degradation)는 미미함

S3 Files 배포를 위한 SAM 템플릿(Template) 분석

S3 Files를 사용하기 위해서는 S3 버킷(Bucket), IAM 롤(Role), 파일 시스템(File System), 마운트 타겟(Mount Target), 액세스 포인트(Access Point) 등 다양한 AWS 리소스(Resource) 설정이 필요하다.

AWS::S3Files::FileSystem, AWS::S3Files::MountTarget, AWS::S3Files::AccessPoint와 같은 CloudFormation 리소스 타입(Resource Type) 사용

S3 Files IAM 롤(Role)elasticfilesystem.amazonaws.com을 신뢰 주체(Principal)로 설정하고, S3 버킷(Bucket)에 대한 읽기/쓰기 권한(Read/Write Permission)을 부여

Access Point는 람다(Lambda) 함수가 사용할 POSIX ID(POSIX Identity)를 제어하고, 파일 시스템(File System) 내 /lambda 디렉토리(Directory)를 생성하는 데 사용

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