Lambda에서 Amazon EFS 사용 - AWS Lambda

Lambda에서 Amazon EFS 사용

Lambda는 Amazon Elastic File System(Amazon EFS)과 통합하여 Lambda 애플리케이션에 대한 안전한 공유 파일 시스템 액세스를 지원합니다. VPC 내의 로컬 네트워크를 통해 NFS 프로토콜에서 초기화가 수행되는 동안 파일 시스템을 마운트하도록 함수를 구성할 수 있습니다. Lambda는 연결을 관리하고 파일 시스템과 주고 받는 모든 트래픽을 암호화합니다.

파일 시스템과 Lambda 함수는 동일한 리전에 있어야 합니다. 한 계정의 Lambda 함수는 다른 계정에 파일 시스템을 마운트할 수 있습니다. 이 시나리오에서 함수 VPC와 파일 시스템 VPC 간에 VPC 피어링을 구성합니다.

참고

파일 시스템에 연결되도록 함수를 구성하는 방법은 Lambda 함수에 대한 파일 시스템 액세스 구성 단원을 참조하세요.

Amazon EFS는 여러 함수가 동시에 동일한 파일 시스템에 쓰기 작업을 시도하는 경우 손상을 방지하기 위해 파일 잠금을 지원합니다. Amazon EFS의 잠금은 권고 잠금에 대한 v4.1 프로토콜을 따르며, 애플리케이션에서 전체 파일과 바이트 범위 잠금을 모두 사용할 수 있게 해줍니다.

Amazon EFS는 대규모로 고성능을 유지해야 하는 애플리케이션의 요구에 따라 파일 시스템을 사용자 지정할 수 있는 옵션을 제공합니다. 고려해야 할 주요 요소는 연결 수, 처리량(초당 MiB) 및 IOPS입니다.

할당량

파일 시스템 할당량 및 제한에 대한 자세한 내용은 Amazon Elastic File System 사용 설명서Amazon EFS 파일 시스템에 대한 할당량을 참조하세요.

조정, 처리량 및 IOPS와 관련된 문제를 방지하려면 Amazon EFS가 Amazon에 전송하는 지표를 모니터링하십시오. CloudWatch Amazon EFS의 모니터링에 대한 개요는 Amazon Elastic File System 사용 설명서Amazon EFS 모니터링을 참조하세요.

연결

Amazon EFS는 파일 시스템당 최대 25,000개의 연결을 지원합니다. 초기화하는 동안 함수의 각 인스턴스는 호출 간에 지속되는 파일 시스템에 대한 단일 연결을 생성합니다. 즉, 파일 시스템에 연결된 하나 이상의 함수에서 25,000의 동시성에 도달할 수 있습니다. 함수가 생성하는 연결 수를 제한하려면 예약된 동시성을 사용하세요.

그러나 대규모로 함수의 코드 또는 구성을 변경하면 함수 인스턴스 수가 현재 동시성을 초과하여 일시적으로 증가합니다. Lambda는 새 요청을 처리하기 위해 새 인스턴스가 프로비저닝되며, 이전 인스턴스가 파일 시스템에 대한 연결을 닫기 전에 약간의 지연이 발생합니다. 배포 중에 최대 연결 제한에 도달하지 않게 하려면 롤링 배포를 사용합니다. 롤링 배포에서는 변경을 수행할 때마다 트래픽을 새 버전으로 점진적으로 마이그레이션합니다.

Amazon EC2 등의 다른 서비스에서 동일한 파일 시스템에 연결하는 경우, Amazon EC2에서 연결에 대한 규모 조정 동작을 파악하고 있어야 합니다. 파일 시스템은 버스트에서 최대 3,000개의 연결을 생성할 수 있으며, 그 이후에 분당 500개의 새 연결을 지원합니다.

연결에 대한 경보를 모니터링 및 트리거하려면 ClientConnections 지표를 사용합니다.

처리량

규모에 따라 파일 시스템의 최대 처리량을 초과할 수도 있습니다. 버스트 모드(기본값)에서 파일 시스템의 기준 처리량은 낮으며, 크기에 따라 선형으로 확장됩니다. 활동 버스트를 허용하기 위해 파일 시스템에 100MiB/s 이상의 처리량을 사용할 수 있는 버스트 크레딧이 부여됩니다. 크레딧은 지속적으로 누적되며, 모든 읽기 및 쓰기 작업에 사용됩니다. 파일 시스템에 크레딧이 부족하면 읽기 및 쓰기 작업이 기본 처리량을 초과해 제한되며, 이로 인해 호출 시간이 초과될 수 있습니다.

참고

프로비저닝된 동시성을 사용하는 경우 함수가 유휴 상태에서도 버스트 크레딧을 사용할 수 있습니다. Lambda는 프로비저닝된 동시성을 사용하여 호출되기 전에 함수의 인스턴스를 초기화하고 몇 시간마다 인스턴스를 재활용합니다. 초기화 중에 첨부 파일 시스템의 파일을 사용하는 경우, 이러한 활동에서는 모든 버스트 크레딧을 사용할 수 있습니다.

처리량에 대한 경보를 모니터링 및 트리거하려면 BurstCreditBalance 지표를 사용합니다. 지표는 함수의 동시성이 낮을 때는 감소하고 높을 때는 증가합니다. 피크 트래픽을 처리하기 위한 활동이 적은 동안에 지표가 항상 감소하거나 누적되지 않으면 함수의 동시성을 제한하거나 프로비저닝된 처리량을 활성화해야 할 수 있습니다.

IOPS

초당 입/출력 작업 수(IOPS)는 파일 시스템에서 처리되는 읽기 및 쓰기 작업 수를 측정한 값입니다. 범용 모드에서는 지연 시간을 줄이기 위해 IOPS가 제한되므로 대부분의 애플리케이션에 유용합니다.

범용 모드에서 IOPS를 모니터링하고 경보를 발행하려면 PercentIOLimit 지표를 사용합니다. 이 지표가 100%에 도달하면 함수가 읽기 및 쓰기 작업이 완료되기를 기다리며 시간 초과될 수 있습니다.