VPC에서 프라이빗 리소스 접근하기
AWS Lambda로 구축하는 서버리스 애플리케이션
Claudio Canales
Senior DevOps Engineer
VPC란 무엇인가요?
VPC는 AWS의 프라이빗 네트워크입니다.
주소 공간, 라우팅, 방화벽 제어를 제공합니다.
리소스 연결 방식을 직접 결정할 수 있습니다.
간단한 비유: 게이티드 커뮤니티
서브넷은 구역(neighborhood)에 해당합니다.
보안 그룹은 출입 규칙입니다.
NAT는 공용 인터넷으로 나가는 공유 출구입니다.
Lambda를 VPC에서 실행하는 이유
내부 서비스나 데이터베이스 같은 프라이빗 리소스에 접근합니다.
보안 그룹이 Lambda의 연결 대상을 제어합니다.
구성 항목
서브넷
을 선택합니다.
보안 그룹
을 선택합니다.
Lambda는 VPC 내부 IP를 할당받아 프라이빗 엔드포인트에 접근합니다.
서브넷: 함수가 실행되는 위치
서브넷은 함수가 네트워크에서 배치될 위치를 결정합니다.
프라이빗 서브넷은 직접적인 인터넷 경로가 없습니다.
핸들러가 필요한 리소스에 접근할 수 있는 서브넷을 선택하세요.
보안 그룹: 방화벽 규칙
보안 그룹은 네트워크 인터페이스의 방화벽 규칙입니다.
인바운드 및 아웃바운드 트래픽을 제어합니다.
아웃바운드 규칙이 Lambda의 데이터베이스 접근 가능 여부를 결정하는 경우가 많습니다.
ENI와 콜드 스타트
ENI = 탄력적 네트워크 인터페이스(Elastic Network Interface)입니다.
Lambda는 핸들러 호출 전에 ENI를 생성하고 연결해야 할 수 있습니다.
이 추가 네트워크 설정으로 인해 콜드 스타트 지연이 발생할 수 있습니다.
ENI 비유: 네트워크 케이블 연결
ENI = 함수의 네트워크 연결입니다.
선택한 서브넷 안에 생성됩니다.
설정 작업이 많을수록 콜드 스타트가 느려질 수 있습니다.
아웃바운드 인터넷 접근
프라이빗 서브넷은 일반적으로 공용 인터넷에 접근할 수 없습니다.
아웃바운드 라우팅이 없으면 공용 API 호출이 타임아웃됩니다.
일반적인 해결책: NAT 게이트웨이입니다.
NAT가 필요한 경우
공용 인터넷 엔드포인트를 호출할 때는 NAT가 필요합니다.
VPC 내부 프라이빗 리소스만 사용하는 경우 NAT가 불필요할 수 있습니다.
네트워크 설정 오류 시 나타나는 증상
타임아웃은 라우팅 또는 NAT 누락을 나타냅니다.
연결 거부는 보안 그룹 규칙 문제를 가리킵니다.
모범 사례
프라이빗 연결 목적으로만 VPC를 사용하세요.
설정은 최소한으로 유지하세요.
콜드 스타트 지연과 연결 오류를 모니터링하세요.
핵심 정리
VPC는 Lambda에 프라이빗 네트워킹을 제공합니다.
서브넷과 보안 그룹을 구성합니다.
ENI는 콜드 스타트 오버헤드를 유발할 수 있습니다.
프라이빗 서브넷은 아웃바운드 인터넷 접근을 위해 NAT가 필요합니다.
연습해 봅시다!
AWS Lambda로 구축하는 서버리스 애플리케이션
Preparing Video For Download...