AWS

[AWS] Lambda 지연시간, Lambda SnapStart, DynamoDB, DynamoDB 모드 종류

박경태 2024. 5. 4. 14:13

AWS Lambda 지연 시간

람다에서 지연 시간은 함수가 실행되기 위해 필요한 시간임.

이 지연 시간은 여러 요소에 의해 결정됨

 

1. Cold Start vs Warm Start

람다 함수는 Cold Start 및 Warm Start 라는 두 가지 상태를 가짐.

Cold Start는 함수가 처음 실행될 때 발생하며, 람다가 컨테이너를 시작하고 함수 코드를 로드하는 시간이 소요됨.

Warm Start는 이미 실행 중인 컨테이너에서 함수를 다시 실행할 때 발생하며, 이 경우 컨테이너가 이미 실행 중이므로 시작 및 로드 시간이 단축됨.

 

2. 함수 크기

함수 코드의 크기가 함수 실행에 영향을 미칠 수 있음.

큰 함수 코드는 다운로드 및 실행하는 데 더 많은 시간이 걸릴 수 있음.

 

3. 리소스 할당량

람다 함수에 할당된 메모리 및 CPU 리소스도 함수 실행 시간에 영향을 줄 수 있음.

더 많은 리소스가 할당되면 함수 실행이 빨라질 수 있지만, 비용도 더 많이 발생할 수 있음.

 

4. 네트워크 지연

람다 함수가 다른 AWS 서비스에 액세스하거나 외부 서비스와 통신해야 하는 경우, 네트워크 지연이 함수 실행 시간에 영향을 줄 수 있음.

 

5. 외부 종속성

람다 함수가 외부 종속성을 가지고 있는 경우, 해당 종속성을 다운로드하고 초기화하는 데 추가적인 시간이 소요될 수 있음.

 

AWS Lambda 지연 시간 정리

이러한 요소들은 람다 함수의 지연 시간을 결정하는데 중요한 역할을 함.

개발자는 이러한 요소들을 고려해 람다 함수를 최적화하고 성능을 향상시킬 수 있음.

AWS Lambda SnapStart

함수의 시작 시간을 단축하는 기술임.

이 기술은 함수의 초기화 및 실행을 더욱 빠르게 만들어 주어 사용자 경험을 향상시키고 비용을 절감할 수 있도록 도와줌.

 

1. SnapStart는 람다의 Cold Start 문제를 해결하기 위한 한 가지 접근 방식임.

일반적으로 람다 함수는 처음 실행될 때 컨테이너를 시작하고 함수 코드를 로드해야 함.

이 초기화 단계에서 발생하는 지연 시간을 Cold Start로 알려짐.

이것은 사용자가 함수를 호출할 때마다 발생할 수 있으며, 이는 반복적인 작업에 대한 응답 시간을 느리게 만들 수 있음.

 

2. SnapStart는 함수의 시작 시간을 단축하기 위해 미리 컨테이너를 시작하고 함수 코드를 미리로드하는 방식을 사용함.

함수가 호출될 때 미리 시작된 컨테이너를 사용하여 함수 초기화 시간을 크게 줄일 수 있음.

따라서 SnapStart를 통해 함수 호출에 대한 응답 시간을 줄이고 사용자 경험을 향상시킬 수 있음.

 

3. SnapStart의 구체적인 작동 방식은 람다의 내부 구현에 의해 정확히 다를 수 있음.

그러나 이러한 기술은 전반적으로 람다 함수의 성능을 최적화하고 Cold Start 문제를 완화하는 데 사용됨.

 

AWS DynamoDB

다이나모DB는 완전 관리형 NoSQL 데이터베이스 서비스임.

높은 확장성, 성능, 신뢰성을 제공하여 모바일 애플리케이션, 웹 애플리케이션, 마이크로서비스, 게임 등 다양한 애플리케이션에서 데이터를 저장 및 조회할 수 있도록 지원함.

 

AWS DynamoDB 특징

1. 고성능 및 확장성

다이나모DB는 초당 수백만 개의 요청을 처리할 수 있는 높은 처리량을 제공함.

필요에 따라 읽기 및 쓰기 처리량을 쉽게 확장할 수 있음.

 

2. 다양한 데이터 모델

다이나모DB는 키-값 모델과 문서 모델을 모두 지원함.

키-값 모델은 단순한 데이터 조회 및 저장에 적합하며, 문서 모델은 복잡한 데이터 구조 및 쿼리를 지원함.

 

3. 완전 관리형 서비스

다이나모DB는 관리 작업을 AWS가 대신 처리하여 사용자가 인프라를 관리할 필요가 없음.

스케일링, 복제, 백업 등의 작업은 모두 AWS에서 자동으로 처리됨.

 

4. 고가용성

다이나모DB는 여러 가용 영역에 걸쳐 데이터를 복제하여 고가용성을 보장함.

이를 통해 애플리케이션의 가용성을 높일 수 있음.

 

5. 유연한 쿼리 및 인덱싱

다이나모DB는 복합 키 및 지역 및 글로벌 보조 인덱스를 통해 다양한 쿼리 패턴을 지원함.

이를 통해 다양한 쿼리 요구 사항을 지원할 수 있음.

 

6. 보안 및 규정 준수

다이나모DB는 데이터 암호화, 접근 제어, 감사 로깅 등 다양한 보안 기능을 제공하여 데이터의 기밀성과 무결성을 보호함.

 

AWS DynamoDB 요약

다이나모DB는 서로 다른 규모와 요구 사항을 가진 다양한 애플리케이션에 적합한 데이터베이스 서비스임.

 

AWS DynamoDB 모드 종류

다이나모DB는 두 가지 모드가 있음.

온디맨드 모드와 프로비저닝된 모드임.

 

1. 온디맨드 모드 (On-Demand Mode)

온디맨드 모드는 사용자가 최소한의 관리 또는 운영 없이 DynamoDB 테이블을 실행할 수 있는 모드임.

이 모드에서는 사용자가 읽기 및 쓰기 용량을 사전에 예약할 필요가 없음.

대신, 사용자는 필요한 만큼의 읽기 및 쓰기 요청을 수행하고 사용한 용량에 대해서만 비용을 지불함.

다이나모DB는 자동으로 요청량에 따라 처리량을 조정하고 즉시 확장하여 대규모 요청에 대응할 수 있음.

이 모드는 예측할 수 없는 워크로드나 트래픽 변동성이 높은 애플리케이션에 적합함.

 

2. 프로비저닝된 모드 (Provisioned Mode)

프로비저닝된 모드에서는 사용자가 테이블에 대한 읽기 및 쓰기 처리량을 사전에 설정해야 함.

이러한 처리량은 초당 읽기 용량 및 초당 쓰기 용량으로 정의됨.

사용자는 테이블당 최소 및 최대 처리량을 지정하고 워크로드에 따라 자동으로 조정되는 자동 확장 기능을 활성화할 수 있음.

이 모드는 예측 가능한 워크로드 및 처리량이 일정한 애플리케이션에 적합함.

프로비저닝된 모드에서는 사용자가 설정한 용량에 따라 고정 비용이 발생하며, 이용량을 초과하는 경우 요금이 추가로 부과됨.

 

AWS DynamoDB 모드 종류 정리

두 모드 모두 AWS Management Console, AWS CLI, AWS SDK를 통해 구성할 수 있음.

애플리케이션의 특성과 요구 사항에 따라 적절한 모드를 선택하여 다이나모DB를 사용할 수 있음.