피드로 돌아가기
Dev.toInfrastructure
원문 읽기
Serverless 아키텍처 기반의 고효율 URL Shortener 설계 및 구현
I Built My First Production AWS Project as a Career Changer
AI 요약
Context
비용 효율성과 운영 단순화를 위해 상시 가동 서버가 필요 없는 이벤트 기반 구조 설계 필요성 대두. 기존 EC2 기반 서버 방식의 리소스 낭비를 방지하고 요청 시에만 컴퓨팅 자원을 사용하는 구조로 전환.
Technical Solution
- API Gateway와 Lambda를 조합한 Serverless API 레이어 구축으로 요청 시에만 실행되는 온디맨드 컴퓨팅 환경 구현
- Key-Value 룩업 패턴에 최적화된 DynamoDB 채택을 통한 단일 키 기반의 빠른 URL 리다이렉션 처리
- S3 정적 웹 호스팅과 CloudFront OAC 결합을 통한 S3 버킷의 완전한 프라이빗화 및 보안 강화
- IAM Least Privilege 원칙 적용으로 Lambda 함수에 DynamoDB PutItem, GetItem 권한만 부여하여 보안 사고 영향 범위 최소화
- OPTIONS preflight 요청 처리를 위한 API Gateway 라우팅 및 Lambda 응답 헤더 설정을 통한 CORS 이슈 해결
- S3 Website Endpoint 대신 REST Endpoint를 사용하여 CloudFront OAC와의 호환성 확보 및 접근 제어 구현
실천 포인트
- Lambda와 DynamoDB 연동 시 boto3의 region_name 명시적 설정을 통한 리전 미스매치 방지 - S3 버킷 보안을 위해 CloudFront OAC를 적용하고 버킷으로의 직접 접근을 차단하는 설정 검토 - API Gateway 도입 시 CORS 처리를 위해 OPTIONS 메서드 생성과 Lambda 응답 헤더의 일관성 유지 확인 - IAM Role 설계 시 FullAccess 권한을 지양하고 구체적인 Action 단위로 정책을 제한하는 Least Privilege 적용