[AWS] Lambda의 /tmp directroy (임시 스토리지)란?? 쉽게 정리
Lambda Ephemeral Storage (일시적인 저장소)
/tmp
디렉토리
AWS Lambda 함수는 실행되는 동안만 Ephemeral Storage(임시 스토리지)를 제공한다.
이 임시 스토리지는 /tmp
디렉토리이며, 이곳에 파일을 저장하면된다.
기본적으로 512 MB 만큼 제공되는데 최대 10 GB까지 확장 가능하다.
주의점은 함수가 종료되면 저장된 데이터는 자동을 삭제된다. 함수가 실행되는 동안은 파일이 유지된다.
(그리고 Lambda 함수가 여러 번 호출되더라도 각 호출 사이에 데이터가 유지된다는 보장이 없다)
공식 문서: https://docs.aws.amazon.com/lambda/latest/api/API_EphemeralStorage.html
🤔 문제 1
개발자가 AWS Lambda 함수에서 호출(invocation) 중에 임시 파일을 생성하도록 설계하고 있습니다. 이 파일은 호출(invocation) 중에 여러 번 접근하고 수정할 예정이며, 크기는 10MB 미만입니다. 개발자는 이 파일을 이후에 저장하거나 가져올 필요가 없습니다.
임시 파일을 어디에 저장해야 할까요?
- /tmp 디렉토리
- Amazon Elastic File System (Amazon EFS)
- Amazon Elastic Block Store (Amazon EBS)
- Amazon S3
정답
정답. 1번
문제 2
한 회사가 AWS Lambda 함수로 구축된 애플리케이션을 운영하고 있습니다.
하나의 Lambda 함수가 매 실행 시마다 인터넷에서 50MB 파일을 다운로드해야 하며,
이 함수는 초당 여러 번 호출되기 때문에 성능 문제가 발생하고 있습니다.
다음 중 가장 큰 성능 향상을 제공할 해결책은 무엇입니까?
- /tmp 디렉터리에 파일을 캐시합니다.
- Lambda의 최대 실행 시간을 늘립니다.
- Lambda 함수 앞에 Elastic Load Balancer를 배치합니다.
- Amazon S3에 파일을 캐시합니다.
정답
정답. 1번
4번은 S3에 저장하여 인테넷 대신 AWS 내부 네트워크에서 빠르게 다운로드 할 수 있지만 여전히 매번 다운로드 하는 과정이 필요하다.
반면에 1번은 함수 실행시간 동안은 /tmp 디렉토리에 있는 파일을 재사용할 수 있다.