AWS Lambda 에서는 인터넷 접속이 되지 않는다.
* 참고 자료 : https://aws.amazon.com/ko/premiumsupport/knowledge-center/internet-access-lambda-function/
위 링크에서 Lambda가 인터넷 접속이 되기 위해서 Public Subnet 에 Internet Gateway 를 추가하고, Private Subnet 과 Public Subnet 는 NAT로 연결하라고 쓰여져 있다.
하지만 나는 말을 안듣고...ㅎㅎ Internet Gateway 가 추가 된 Public Subnet 에 Lambda Function 을 배치했다. 그런데 동작하지 않았다.
생각해보니 예전에도 겪었던 문제였는데 오랜만에 AWS를 사용하다 보니 까먹었다..
어찌 되었든 이게 동작하지 않는 이유는 Internet Gateway 가 NAT가 아니기 때문이다. Gateway가 NAT역할까지 해준다고 착각했던 것이다.
Internet Gateway는 Subnet 과 Internet 간 Forwarding 이 가능하게 해줄 뿐 이다. EC2 같은 경우를 보아도 내부 IP가 있지만, 관리 페이지에선 공인 IP 또한 할당되어 있는 것을 볼 수 있다. 이런 경우 EC2는 공인 IP가 있기 때문에 해당 IP로 인터넷 통신이 가능한 것이다.
하지만 Lambda 는 공인 IP가 할당되지 않는다. Subnet 내의 사설 IP만 할당 받을 뿐이다. 따라서 공인 IP가 없기 때문에 인터넷과는 통신이 불가하다.
결론. 외부 통신하려면 공인 IP가 필요하니 NAT가 필요하다.
하지만 NAT는 비용이 발생한다.. 그것도 24시간 내내..
VPC 내부 (API Gateway 등)만 사용해야 한다면 최대한 VPC Endpoint를 이용하자.
'개발 및 운영 > AWS GCP Cloud' 카테고리의 다른 글
AWS VPC Endpoint 쓸 때 요금 폭탄 주의!! (0) | 2021.12.03 |
---|---|
[AWS] VPC 내에서 API Gateway 호출 시 Forbidden (1) | 2021.11.17 |
CloudFront에 API Gateway를 사용할 때 403 Forbidden 오류 문제 (0) | 2021.11.03 |
AWS NAT Instance 포트포워딩시 Source IP 유지하기 (0) | 2019.10.26 |
AWS Lambda 기본 (삽질기) (1) | 2019.10.24 |
댓글