[AWS] Lambda with VPC & VPC Endpoint

NewNewDaddy·2023년 9월 5일
0

AWS

목록 보기
4/13
post-thumbnail

0. INTRO

1. Lambda with VPC에 대한 설명

람다는 일반적으로 Serverless 하게 단발성의 함수를 실행해주는 기능을 가진 서비스로만 많이 인식하고 있다. 그 말이 맞기도 하지만 그렇게만 보기에는 그 안에 설정할 수 있는 것들이 아주 많다. VPC도 그 중 하나이다.

람다 함수에 VPC를 지정할 수가 있다. 아래는 ChatGPT님께서 친절히 설명해주신, Lambda에 VPC를 지정했을 때의 이점들을 설명해준 내용들이다.

  1. 보안: VPC는 AWS 클라우드에서 가상의 네트워크 환경을 제공하며, Lambda 함수를 VPC에 배포하면 해당 함수는 VPC 내에서 실행됩니다. 이는 함수가 애플리케이션과 데이터 소스를 직접적으로 연결하고 보호되는 내부 네트워크에 접근할 수 있다는 것을 의미합니다. 외부 인터넷으로부터의 직접 액세스를 차단하고, 애플리케이션과 관련된 리소스를 보호할 수 있습니다.
  2. 프라이빗 액세스: VPC 내에 있는 Lambda 함수는 VPC 내의 프라이빗 리소스에 액세스할 수 있습니다. 이는 데이터베이스, 캐시, 내부 API 등과 같은 내부 시스템에 직접적으로 연결하여 데이터 전송 및 처리 성능을 향상시킬 수 있다는 것을 의미합니다. 또한, VPC 내에 있는 리소스와의 트래픽은 인터넷 대역폭에 영향을 받지 않으므로, 안정적인 네트워크 성능을 제공할 수 있습니다.
  3. IP 주소 관리: Lambda 함수가 VPC에 연결되면 VPC에서 IP 주소 할당을 관리할 수 있습니다. 이를 통해 IP 주소 관리 및 충돌 문제를 해결할 수 있습니다. 또한, VPC 내에서 실행되는 다른 리소스와 Lambda 함수 간에 라우팅 및 통신을 보다 쉽게 설정할 수 있습니다.
  4. 보안 그룹 및 네트워크 ACL 적용: VPC에 Lambda 함수를 배포하면 해당 VPC의 보안 그룹과 네트워크 ACL을 적용할 수 있습니다. 이를 통해 트래픽 제어, 보안 정책 적용, 네트워크 규칙 설정 등을 수행할 수 있습니다. 따라서 더욱 세밀한 보안 및 네트워크 관리를 할 수 있습니다.

이러한 이점들은 Lambda 함수가 기존의 VPC 리소스와 원활하게 통합되어야 할 때 특히 유용합니다. 예를 들어, Lambda 함수가 기업 내부 데이터베이스에 접근해야 하거나, 보안 및 규정 준수를 위해 VPC 내에서 실행되어야 하는 경우 VPC에 Lambda 함수를 배포하는 것이 적합합니다.


1. Lambda with VPC

  1. 기본적으로 Lambda 함수는 AWS에서 관리하는 네트워크 망에 Default로 생성되며 이는 외부 인터넷과 항상 연결되어있다.
  2. VPC 내에 private subnet을 생성하고 NAT gateway로 외부 인터넷과 통하도록 해준다.
  3. Lambda 함수 생성시 VPC를 해당 private subnet으로 지정해준다.
  4. NAT gateway가 연결되어 있는 동안은 외부 인터넷과 연결이 잘 된다.
  5. NAT gateway를 지우게되면 인터넷과의 연결이 끊어져 Lambda에서 외부 인터넷 접속이 불가능하다.

2. VPC Endpoint

  • AWS의 모든 서비스에는 공용 URL이 존재한다. EC2에서 AWS 서비스에 접근을 하고자 할 때의 방법 중 하나는 인터넷을 거쳐 해당 공용 URL로 접근하는 것이다. 하지만 VPC Endpoint를 사용하면 IGW, NATGW 등 외부 인터넷망 연결을 위한 AWS 인프라 구축없이 VPC를 통해 서비스에 연결될 수 있다.

  • 예를들어 Private Subnet에 존재하며 외부 인터넷과의 접속이 막혀있는 EC2에서 S3 목록을 조회하려고 한다면 기본적으로 조회가 되지 않는다. 특별한 설정을 하지 않았다면 기본적으로 EC2의 신호가 외부망을 거쳐 S3를 호출하고 응답을 받아오지만 이런 경우에는 외부와의 통신이 막혀있다. 이럴때는 두 가지 방법이 존재한다.

    1. Public subnet에 NAT Gateway를 생성한 후 라우팅을 통해 private EC2의 외부 통신이 가능하도록 한다.
    2. EC2와 같은 VPC에서 S3의 VPC Endpoint 생성한다.
  • 위와 같은 상황에서 Private IP 만 가진 EC2가 있는 VPC에 S3로 향하는 Gateway Endpoint가 열려있다면 Bastion Host로 접속하여 aws ls s3 —region ap-northeast-2 명령을 통해 s3 bucket 리스트를 받아올 수 있다.
    image

  • VPC Endpoint 종류

  1. Gateway Endpoints
    image

    • Gateway를 대상으로 프로비저닝하며 이는 반드시 route table에서 지정되어야 한다.
    • S3, DynamoDB 두 가지 서비스만 지원하며 무료이다.
  2. Interface Endpoints
    image

    - ENI(Private IP)를 entry point로 프로비저닝 하며 보안 그룹에서 지정되어야 한다.
    - 대부분의 AWS 서비스를 지원한다.
    - Site-to-Site VPN, Direct Connect와 같이 **온프레미스에서의 연결**이 필요할 때 주로 쓰인다. 혹은 다른 VPC나 **다른 리전간의 연결**시 주로 쓰임.
  3. 요약 비교
    image

profile
데이터 엔지니어의 작업공간 / #PYTHON #SPARK #AWS #NCLOUD

0개의 댓글