본 기사에서는 Lambda의 임시 스토리지(/tmp)를 이용하는 방법에 대해서 안내 해드리는 기사입니다.
AWS Lambda은 서버를 프로비저닝하거나 관리하지 않고도 코드를 실행할 수 있게 해주는 컴퓨팅 서비스입니다.
Lambda 에서는 웹 애플리케이션 개발자의 요구를 충족시키기 위해 포괄적인 범위의 스토리지 옵션을 제공합니다. 대표적으로 Amazon S3 및 Amazon EFS와 같은 다른 AWS 서비스뿐만 아니라 임시 스토리지 옵션도 이용할수있습니다. [1]
/tmp 임시 스토리지
Lambda 실행 환경은 /tmp 임시 스토리지를 제공합니다. /tmp 영역은 실행 환경의 수명 동안 보존되며 호출 간의 데이터에 대한 임시 캐시를 제공합니다. 새로운 실행 환경이 생성될 때마다 이 영역은 삭제됩니다.
따라서 이 영역은 임시 저장 영역으로 사용됩니다. 함수는 호출 사이에 데이터를 캐시할 수 있지만 단일 호출에서 코드가 필요로 하는 데이터에 대해서만 사용해야 합니다. 영구적으로 데이터를 저장하는 곳이 아니므로 임시적으로 사용할때만 이용할수있습니다.
아래의 예시 코드를 이용하여 /tmp 디렉토리에 test 파일을 생성하고 출력할 수 있습니다.
import os
path = '/tmp'
def lambda_handler(event, context):
with open(path+"/test.txt", "a") as file:
file.write("hello world")
files = os.listdir(path)
file_path=path+"/"+files[0]
file = open(file_path, 'r')
test_string=file.read()
print(test_string)
참고
[1] Choosing between AWS Lambda data storage options in web apps
https://aws.amazon.com/ko/blogs/compute/choosing-between-aws-lambda-data-storage-options-in-web-apps/