본문 바로가기

Cloud/AWS

Lambda Function을 위한 향상된 VPC 네트워크

Today Keys :   Lambda , function , vpc , hyperplane , network , eni , cold start , 람다 , 네트워크 , aws , 클라우드 , cloud


이번 포스팅은 Lambda Function을 위한 향상된 VPC 네트워크에 대한 내용입니다. 

이미 AWS 공식 블로그에서도 볼 수 있는 내용이지만, 개인적인 취향에 맞춰서 정리해 보았습니다.


기존 네트워크 모델
  ▪ Lambda의 모든 컴퓨팅 인프라는 서비스가 소유한 VPC(default system-managed) 내에서 실행
  ▪ Lambda를 이용해서 VPC 내에 액세스가 가능하도록 Lambda를 VPC에 연결 할 수 있음.
  ▪ Lambda가 VPC 내에 접근하기 위해서 Lambda가 VPC로 접근할 수 있는 ENI가 VPC 내에 생성됨
  ▪ Lambda의 호출이 많아지거나, 다수의 Lambda 사용을 위해서 ENI가 다수 생성될 수 있음
  ▪ Lambda가 사용하는 ENI 증가 분을 고려하여 VPC 내의 네트워크 Sizing이 필요
  ▪ 최초의 호출 시 ENI가 생성되고 연결하는 시간으로 인해 Cold-start 시간이 길어질 수 있음.

 


새로운 네트워크 모델  
▪ Hyperplane을 이용한 Lambda VPC 개선 모델
▪  기존 : Lambda에서 VPC로 접근하기 위한 VPC의 ENI를 직접 매핑했던 방식
    변경 : Lambda VPC내에 Hyperplane ENI와 VPC의 ENI가 매핑

▪ Lambda 함수가 생성되거나, VPC 설정이 업데이트 되면, ENI가 생성됨.
    - 함수 호출 시, 바로 네트워크 터널을 신속하게 연결해서 호출 (Cold Start시의 대기 시간을 단축)
    - 최초의 호출 시에는 최대 90초가 소요될 수 있음.
    - 생성된 Hyperplane 리소스는 보통은 유지가 되지만, 몇 주 이상의 장기간 미사용 시에는 회수 됨.
          : 다시 재 사용 시에 초기 호출 시와 동일하게 시간이 소요

 


▪ Security Group:Subnet 조합별로 1개의 ENI만 생성 됨.
   즉, Lambda가 다르더라도 해당 조합이 공유하는 경우에는 동일한 ENI를 사용
     - VPC 내에 생성된 ENI는 해당 ENI를 사용하는 Lambda 삭제 후, 삭제되나 삭제까지 20여분 이상 소요됨.
▪ Lambda를 VPC에 연결 시에는 Dedicated instance tenancy인 VPC에는 연결 불가
▪ 서울 리전에서는 2019년 11월 6일부터 변경된 형태로 지원.
▪ Lambda에서 VPC를 연결하기 위해서는 ENI 관리를 위해서 CreateNetworkInterface / DeleteNetworkInterface / DescribeNetworkInterfaces 권한 필요.