VPC에서 프라이빗 리소스 접근하기

AWS Lambda로 구축하는 서버리스 애플리케이션

Claudio Canales

Senior DevOps Engineer

VPC란 무엇인가요?

  • VPC는 AWS의 프라이빗 네트워크입니다.
  • 주소 공간, 라우팅, 방화벽 제어를 제공합니다.
  • 리소스 연결 방식을 직접 결정할 수 있습니다.

VPC 구성 요소 개요

AWS Lambda로 구축하는 서버리스 애플리케이션

간단한 비유: 게이티드 커뮤니티

  • 서브넷은 구역(neighborhood)에 해당합니다.
  • 보안 그룹은 출입 규칙입니다.
  • NAT는 공용 인터넷으로 나가는 공유 출구입니다.

게이티드 커뮤니티 비유

AWS Lambda로 구축하는 서버리스 애플리케이션

Lambda를 VPC에서 실행하는 이유

  • 내부 서비스나 데이터베이스 같은 프라이빗 리소스에 접근합니다.
  • 보안 그룹이 Lambda의 연결 대상을 제어합니다.

Lambda VPC 프라이빗 접근

AWS Lambda로 구축하는 서버리스 애플리케이션

구성 항목

  • 서브넷을 선택합니다.
  • 보안 그룹을 선택합니다.
  • Lambda는 VPC 내부 IP를 할당받아 프라이빗 엔드포인트에 접근합니다.

VPC 구성 입력 및 효과

AWS Lambda로 구축하는 서버리스 애플리케이션

서브넷: 함수가 실행되는 위치

  • 서브넷은 함수가 네트워크에서 배치될 위치를 결정합니다.
  • 프라이빗 서브넷은 직접적인 인터넷 경로가 없습니다.
  • 핸들러가 필요한 리소스에 접근할 수 있는 서브넷을 선택하세요.

서브넷 선택 영향

AWS Lambda로 구축하는 서버리스 애플리케이션

보안 그룹: 방화벽 규칙

  • 보안 그룹은 네트워크 인터페이스의 방화벽 규칙입니다.
  • 인바운드 및 아웃바운드 트래픽을 제어합니다.
  • 아웃바운드 규칙이 Lambda의 데이터베이스 접근 가능 여부를 결정하는 경우가 많습니다.

보안 그룹 경비원 비유

AWS Lambda로 구축하는 서버리스 애플리케이션

ENI와 콜드 스타트

  • ENI = 탄력적 네트워크 인터페이스(Elastic Network Interface)입니다.
  • Lambda는 핸들러 호출 전에 ENI를 생성하고 연결해야 할 수 있습니다.
  • 이 추가 네트워크 설정으로 인해 콜드 스타트 지연이 발생할 수 있습니다.

ENI 콜드 스타트 순서

AWS Lambda로 구축하는 서버리스 애플리케이션

ENI 비유: 네트워크 케이블 연결

  • ENI = 함수의 네트워크 연결입니다.
  • 선택한 서브넷 안에 생성됩니다.
  • 설정 작업이 많을수록 콜드 스타트가 느려질 수 있습니다.

ENI 케이블 연결 비유

AWS Lambda로 구축하는 서버리스 애플리케이션

아웃바운드 인터넷 접근

  • 프라이빗 서브넷은 일반적으로 공용 인터넷에 접근할 수 없습니다.
  • 아웃바운드 라우팅이 없으면 공용 API 호출이 타임아웃됩니다.
  • 일반적인 해결책: NAT 게이트웨이입니다.

NAT 게이트웨이 아웃바운드 흐름

AWS Lambda로 구축하는 서버리스 애플리케이션

NAT가 필요한 경우

  • 공용 인터넷 엔드포인트를 호출할 때는 NAT가 필요합니다.
  • VPC 내부 프라이빗 리소스만 사용하는 경우 NAT가 불필요할 수 있습니다.

NAT 필요 여부 결정 다이어그램

AWS Lambda로 구축하는 서버리스 애플리케이션

네트워크 설정 오류 시 나타나는 증상

  • 타임아웃은 라우팅 또는 NAT 누락을 나타냅니다.
  • 연결 거부는 보안 그룹 규칙 문제를 가리킵니다.

네트워크 증상 체크리스트

AWS Lambda로 구축하는 서버리스 애플리케이션

모범 사례

  • 프라이빗 연결 목적으로만 VPC를 사용하세요.
  • 설정은 최소한으로 유지하세요.
  • 콜드 스타트 지연과 연결 오류를 모니터링하세요.

VPC 모범 사례

AWS Lambda로 구축하는 서버리스 애플리케이션

핵심 정리

  • VPC는 Lambda에 프라이빗 네트워킹을 제공합니다.
  • 서브넷과 보안 그룹을 구성합니다.
  • ENI는 콜드 스타트 오버헤드를 유발할 수 있습니다.
  • 프라이빗 서브넷은 아웃바운드 인터넷 접근을 위해 NAT가 필요합니다.

VPC 연결 트레이드오프

AWS Lambda로 구축하는 서버리스 애플리케이션

연습해 봅시다!

AWS Lambda로 구축하는 서버리스 애플리케이션

Preparing Video For Download...