1. Lambda with VPC에 대한 설명
람다는 일반적으로 Serverless 하게 단발성의 함수를 실행해주는 기능을 가진 서비스로만 많이 인식하고 있다. 그 말이 맞기도 하지만 그렇게만 보기에는 그 안에 설정할 수 있는 것들이 아주 많다. VPC도 그 중 하나이다.
람다 함수에 VPC를 지정할 수가 있다. 아래는 ChatGPT님께서 친절히 설명해주신, Lambda에 VPC를 지정했을 때의 이점들을 설명해준 내용들이다.
이러한 이점들은 Lambda 함수가 기존의 VPC 리소스와 원활하게 통합되어야 할 때 특히 유용합니다. 예를 들어, Lambda 함수가 기업 내부 데이터베이스에 접근해야 하거나, 보안 및 규정 준수를 위해 VPC 내에서 실행되어야 하는 경우 VPC에 Lambda 함수를 배포하는 것이 적합합니다.
AWS의 모든 서비스에는 공용 URL이 존재한다. EC2에서 AWS 서비스에 접근을 하고자 할 때의 방법 중 하나는 인터넷을 거쳐 해당 공용 URL로 접근하는 것이다. 하지만 VPC Endpoint를 사용하면 IGW, NATGW 등 외부 인터넷망 연결을 위한 AWS 인프라 구축없이 VPC를 통해 서비스에 연결될 수 있다.
예를들어 Private Subnet에 존재하며 외부 인터넷과의 접속이 막혀있는 EC2에서 S3 목록을 조회하려고 한다면 기본적으로 조회가 되지 않는다. 특별한 설정을 하지 않았다면 기본적으로 EC2의 신호가 외부망을 거쳐 S3를 호출하고 응답을 받아오지만 이런 경우에는 외부와의 통신이 막혀있다. 이럴때는 두 가지 방법이 존재한다.
- Public subnet에 NAT Gateway를 생성한 후 라우팅을 통해 private EC2의 외부 통신이 가능하도록 한다.
- EC2와 같은 VPC에서 S3의 VPC Endpoint 생성한다.
위와 같은 상황에서 Private IP 만 가진 EC2가 있는 VPC에 S3로 향하는 Gateway Endpoint가 열려있다면 Bastion Host로 접속하여 aws ls s3 —region ap-northeast-2 명령을 통해 s3 bucket 리스트를 받아올 수 있다.
VPC Endpoint 종류
Gateway Endpoints
Interface Endpoints
- ENI(Private IP)를 entry point로 프로비저닝 하며 보안 그룹에서 지정되어야 한다.
- 대부분의 AWS 서비스를 지원한다.
- Site-to-Site VPN, Direct Connect와 같이 **온프레미스에서의 연결**이 필요할 때 주로 쓰인다. 혹은 다른 VPC나 **다른 리전간의 연결**시 주로 쓰임.
요약 비교