Lambda와 엣지 컴퓨팅

은채의 성장통·2025년 2월 21일
0

AWS

목록 보기
74/79

AWS Lambda와 엣지 컴퓨팅: 개념과 활용 사례

AWS Lambda란?

AWS Lambda는 서버를 직접 프로비저닝하거나 관리할 필요 없이 코드를 실행할 수 있는 서버리스 컴퓨팅 서비스이다. 실행 요청이 있을 때만 컴퓨팅 리소스를 사용하므로 비용 효율적이며, 다양한 AWS 서비스와 긴밀하게 통합된다.


1. AWS Lambda의 주요 특징

1) 실행 환경 및 제한 사항

항목제한 사항
메모리12MB ~ 10GB
최대 실행 시간15분
환경 변수 크기최대 4KB
동시 실행 가능 개수기본 1,000개 (조정 가능)
배포 크기압축 시 50MB, 압축 해제 후 250MB
임시 저장 공간/tmp 디렉터리에 최대 10GB

Lambda는 실행할 때 필요한 패키지를 포함한 배포 패키지를 제공해야 하며, 파일 크기가 클 경우 /tmp 디렉터리를 활용할 수 있다.


2. SnapStart: Lambda 성능 최적화

SnapStart는 Java 기반의 Lambda 함수의 초기 실행 시간을 최대 10배까지 단축하는 기능이다.

SnapStart 동작 방식

  1. Lambda 함수가 처음 실행될 때 초기화 과정을 수행한 후, 메모리 스냅샷을 저장한다.
  2. 이후 동일한 함수가 실행될 때 저장된 스냅샷을 복원하여 빠르게 실행한다.
  3. 이로 인해 Lambda Cold Start(초기 실행 지연) 문제가 크게 줄어든다.

💡 추가 비용 없이 제공되며, Java 11 및 17 환경에서 사용 가능하다.


3. Lambda@Edge와 CloudFront Functions 비교

Lambda는 기본적으로 특정 리전에 배포되지만, Lambda@EdgeCloudFront Functions를 활용하면 엣지 로케이션에서 실행되어 글로벌 사용자에게 더욱 빠른 응답을 제공할 수 있다.

Lambda@Edge vs. CloudFront Functions

비교 항목Lambda@EdgeCloudFront Functions
지원 언어Python, Node.jsJavaScript
실행 위치CloudFront 엣지 로케이션CloudFront 엣지 로케이션
반응 이벤트뷰어 요청, 오리진 요청, 오리진 응답, 뷰어 응답뷰어 요청, 뷰어 응답
사용 사례- 동적 컨텐츠 변경 - HTTP 헤더 조작 - 인증/권한 부여- URL 리디렉션 - 보안 헤더 추가 - 캐시 키 정규화
실행 시간상대적으로 느림 (100ms 이상)매우 빠름 (10ms 이하)
외부 라이브러리사용 가능제한적
비용사용량 기반매우 저렴

Lambda@Edge와 CloudFront Functions 활용 예시

  • CloudFront Functions:
    • URL 리디렉션 (예: http://example.comhttps://example.com)
    • 보안 헤더 추가 (CORS 정책 적용)
    • 캐시 키 정규화 (쿼리 파라미터 제거 등)
  • Lambda@Edge:
    • 쿠키 기반 A/B 테스트 적용
    • 특정 국가에서만 콘텐츠 제공 제한
    • API 응답을 Edge에서 미리 가공하여 최적화

4. Lambda와 VPC (Virtual Private Cloud) 연동

기본적으로 AWS Lambda는 VPC 외부에서 실행된다. 따라서 프라이빗 서브넷에 위치한 RDS, ElastiCache 등의 리소스에 직접 접근할 수 없다. 이를 해결하기 위해 Lambda를 VPC에 연결할 수 있다.

Lambda를 VPC와 연결하는 과정

  1. Lambda 설정에서 VPC ID, 서브넷, 보안 그룹을 지정
  2. Lambda는 ENI(Elastic Network Interface)를 생성하여 VPC 내에서 실행됨
  3. VPC 내 RDS와 연결 가능

RDS Proxy: Lambda의 데이터베이스 연결 최적화

AWS Lambda가 대규모 트래픽을 처리할 경우 RDS의 커넥션 개수가 급격히 증가하여 과부하가 발생할 수 있다. 이를 해결하기 위해 RDS Proxy를 활용한다.

RDS Proxy의 장점

  • DB 커넥션을 풀링하여 연결 수 제한을 관리
  • 장애 조치(Failover) 시 빠르게 복구
  • IAM 기반 인증을 지원하여 보안 강화

5. Lambda와 CloudWatch를 활용한 자동화

Lambda는 CloudWatch Events (EventBridge) 를 통해 자동 실행할 수 있다.

💡 예제: 1시간마다 Lambda 실행 (Cron 작업)

{
  "schedule": "rate(1 hour)"
}

이 설정을 사용하면 Lambda 함수가 1시간마다 자동으로 실행된다.

활용 사례

  • S3 버킷의 주기적 정리
  • 비용 절감을 위한 인스턴스 자동 중지
  • 주기적인 데이터 백업

결론

AWS Lambda는 다양한 AWS 서비스와 통합하여 서버리스 아키텍처를 구축하는 핵심 요소이다.

  • SnapStart를 활용하면 실행 시간을 줄일 수 있다.
  • Lambda@Edge와 CloudFront Functions를 활용하여 엣지 컴퓨팅을 최적화할 수 있다.
  • RDS Proxy와 함께 사용하면 데이터베이스 부하를 효과적으로 관리할 수 있다.
  • CloudWatch Events를 활용하여 자동화된 워크플로우를 구축할 수 있다.

🚀 Lambda는 효율적이고 확장성이 뛰어난 서버리스 애플리케이션을 만드는 데 강력한 도구가 된다.

profile
인생 별거 없어

0개의 댓글