AWS re:Invent 리캡

AWS Lambda의 새로운 기능(CNS376)

리캡 시리즈

세션 노트

Lambda의 핵심 차별점: 속도

  • 주요 목표: 고객과 빌더에게 속도 제공
  • 속도에는 코드 생성과 전체 배포 주기가 포함됨
  • 더 빠른 배포는 더 매력적인 애플리케이션과 사용자 피드백으로 이어짐
  • 애플리케이션은 기본적으로 Well-Architected 원칙을 따르며 확장성, 가용성 및 안정성을 처리
  • 주요 이점: 관리할 인프라가 없어 운영을 줄이고 속도를 높임

출시 기능을 3개 범주로 분류

1 새로운 기본 요소

  1. Lambda managed instances 소개

2 Managed Instances

  1. 사고 모델: Lambda는 바늘 끝처럼 순간적으로 치솟는 워크로드(급격한 트래픽 증가)에서 탁월함
  2. 정상 상태 트래픽의 경우 빌더는 성능과 비용 최적화를 추구
  3. 성능 최적화를 위해 컴퓨팅 인스턴스, 네트워크 또는 메모리를 선택할 수 있음
  4. 완전한 모니터링 운영과 개발자 경험 유지
  5. 이벤트 소스 통합, 패치, 라우팅 및 확장을 Lambda가 처리
  6. 더 효율적인 요청 처리를 위해 다중 동시성 도입
  7. 비용 최적화를 위해 EC2의 요금 인센티브(Savings Plans, Reserved Instances)를

포함

3 Capacity Provider

  1. 추가 요구 사항: Capacity Provider 생성

10.컴퓨팅 인스턴스, 메모리 인스턴스 또는 확장 프로필의 선호 사항 지정

11.선택적으로 Lambda가 선택하고 가격 대비 성능을 지속적으로 개선하도록 허용

사용 사례와 기능

  • 정상 상태 애플리케이션: Lambda가 원활하게 처리
  • 순간적인 버스트/트래픽 관리: Lambda가 처리하도록 맡김
  • 정상 상태/인기 증가: 최적화를 위해 managed instances로 이동
  • 성능이 중요한 앱: 특수 인스턴스 사용 가능
  • 다양한 애플리케이션: 미디어 데이터 처리, 웹 애플리케이션, 이벤트 기반 애플리케이션
  • 규제 요구 사항: Managed instances에서 컴퓨팅 영역 선호 사항 지정 가능

테넌트 격리 기능

  • 사용 사례: 요청 간 격리가 필요한 시나리오
  • 이점: 고유한 테넌트 ID 또는 JWT 토큰을 전달해 깔끔하게 격리된 실행 환경 제공
  • 개선 사항: CI/CD 주기를 개선하고 맞춤형 도구의 필요성을 없앰

기본적으로 Well-Architected

  • 가치 제안: 성능 및 보안 수정 사항을 포함한 최신 프로그래밍 언어
  • 최근 추가 사항: Python 3.14, Java 2.5, Node.js 24
  • 이점: 개발자 생산성을 높이고 안전하고 빠른 소프트웨어 배포 지원
  • 사고 모델: 커뮤니티 출시 후 90일 이내에 새 런타임 제공

추가 기능과 이점

런타임 업그레이드

  • 자동 패치: Log4j 같은 취약점 처리
  • 과제: 함수 수가 많을 때 런타임 업그레이드에 많은 노력 필요
  • 해결책: AWS Transform Custom(생성형 AI 기반 업그레이드)
  • 이점: 기술 부채를 최대 85% 줄이고 개발 주기에 원활하게 통합
  • SnapStart:
  • 문제: 함수 초기화 중 콜드 스타트
  • 해결책: 이후 호출 속도를 높이기 위해 실행 환경 스냅샷 생성
  • 이점: 콜드 스타트 시간 단축, 코드 변경이나 맞춤형 도구 불필요
  • Fault Injection Service(FIS) 통합:
  • 목적: 스트레스 조건에서 애플리케이션 복원력 테스트
  • 기능: 지연 시간 증가 또는 다운스트림 서비스 사용 불가 같은 조건 지정
  • 이점: 중단을 계획하고 예방하는 데 도움이 되며 프로덕션 시나리오에 대한 신뢰 향상
  • 향상된 관찰성:
  • 과제: 이벤트 소스 폴링 메커니즘에 대한 가시성 부족
  • 해결책: 개수, 로그 및 throttle에 대한 추가 CloudWatch 지표 활성화
  • 이점: 즉각적인 문제 감지와 해결 시간 개선, 맞춤형 도구 불필요

AWS Transform custom

일반적인 업그레이드 시나리오를 위해 미리 구축되고 AWS가 검증한 즉시 사용 가능한

AWS 관리형 변환입니다. 추가 설정 없이 바로 사용할 수 있습니다.

현재 사용 가능한 변환

  • Java 8에서 17로 마이그레이션(Gradle 및 Maven 모두)
  • Node.js 12에서 22로 업그레이드(Lambda 환경 포함)
  • Python 런타임을 3.11/3.12/3.13으로 업데이트(표준 및 Lambda)
  • AWS SDK 마이그레이션(v1에서 v2)
  • 주요 특징:
  • AWS 검증 - 높은 품질을 갖추도록 AWS가 이러한 변환을 검증
  • 즉시 사용 가능 - 추가 설정 불필요
  • 지속적인 확장 - 추가 변환이 계속 추가됨
  • 사용자 지정 가능 - 조직의 요구 사항에 맞는 특정 규칙으로 사전 구축된 변환을 개선할 수 있음(예: 내부 라이브러리 또는 코딩 표준 처리 규칙 추가)
  • 실험적 지원 - 일부 변환은 추가 테스트 중 실험적으로 표시될 수 있음

추가 기능과 이점

추가 CloudWatch 지표

  • 문제: 이벤트 소스 폴링 메커니즘(Kafka, SQS)에 대한 가시성 부족
  • 해결책: polar count, lag 및 throttle에 대한 추가 지표 활성화
  • 이점: 즉각적인 문제 감지와 해결 시간 개선, 맞춤형 도구 불필요
  • Avro 형식 Schema Registry 지원:
  • 문제: 빌더가 Avro 직렬화/역직렬화를 위한 상용구 코드를 수동으로 추가해야 했음
  • 해결책: Avro 이벤트를 자동으로 직렬화 및 역직렬화하는 기능 추가
  • 이점: 코드와 오류 감소, 스키마 발전 지원, 맞춤형 도구 불필요
  • SQS용 Provision Mode:
  • 문제: 고객이 폴링을 위한 더 빠른 확장과 동시성 제어를 필요로 했음
  • 해결책: Provision Mode를 사용하면 용량을 미리 준비해 급증을 즉시 처리 가능
  • 이점: 급증 시 지연 제거, SLA 충족 지원, 비용 최적화, 맞춤형 도구 불필요
  • 개발자 가속:
  • 목표: 개발자가 소프트웨어를 더 빠르게 배포하도록 지원
  • 개발자 선호: 초기 콘솔 테스트 후 로컬 머신/IDE에서 개발
  • 초점: 개발 프로세스를 간소화하여 출시 기간 단축

개발 주기를 가속하는 기능

콘솔에서 IDE로의 원활한 전환

  • 기능: 한 번의 클릭으로 콘솔에서 최소 구성 애플리케이션 구축
  • 이점: 종속성을 패키징하고 수동 작업 없이 로컬 IDE에서 즉시 코딩할 수 있도록 활성화
  • LocalStack을 사용한 로컬 테스트:
  • 파트너: LocalStack은 AWS 서비스(스토리지, 데이터베이스, 네트워킹)를 에뮬레이션
  • 이점: 로컬 머신에서 완전히 오프라인으로 개발 및 테스트하여 맞춤형 도구 없이 비즈니스 로직을 더 빠르게 반복
  • 원격 디버깅:
  • 기능: 두 번의 클릭으로 체크포인트/중단점 활성화
  • 이점: 코드가 프로덕션에서 실행되는 동안 로컬에서 변수와 소스 코드를 분석하고, 맞춤형 도구 없이 IAM 정책, 역할, 데이터베이스 연결, VPC 및 네트워크 구성을 테스트
  • 모범 사례를 위한 MCP Server:
  • 기능: 모범 사례(입력 검증, 오류 처리, 상태 코드)를 기본 제공
  • 이점: 더 품질 높고 일관된 코드를 생성하고 코드 검토 주기를 줄이며 개발 속도를 높임
  • 지원: 웹 앱 및 이벤트 기반 애플리케이션(Kafka 트리거, 이벤트 기반 아키텍처)