티스토리 뷰

API를 통해 데이터를 가져와 AWS RDS 적재하는 역할의 Lambda를 사용하면서 겪은 삽질기(경험 부족)입니다.

 

 

제가 만든 Lambda 는 위의 캡쳐 사진처럼 간단합니다. 또한 다음과 같은 역할을 수행하고자 합니다.

  1. 외부 인터넷을 통해 API를 호출하여 데이터를 가져온다.
  2. AWS RDS에 접근하여 데이터를 적재한다.

 

이 Lambda 에는 1) 외부 인터넷을 접속할 수 있는 인터넷 게이트웨이가 필요하며, 2) RDS과 같은 AWS 리소스를 사용하기 위해선 해당 VPC 망에 존재해야합니다.

 

Lambda 의 VPC 활성화 옵션을 통해 RDS 와 같은 VPC 로 지정하였고, 서브넷 또한 퍼블릭 서브넷으로 지정하였습니다.

람다는 기본적으로 인터넷과 통신이 되기 때문에 당연히 될거라 배제하고 진행했었습니다.

하지만 API 를 호출하는 데 있어 NetworkConnection Error 가 반복되면서 인터넷 접속이 불가능하다고 오류를 마구 뱉습니다.


 

공식문서 에서는 인터넷의 사용이 필요한 경우 해당 Lambda가 이용하는 VPC의 서브넷에 NAT 나 NAT 인스턴스를 할당해야한다고 합니다. 따라서 저는 NAT Gateway와 람다의 고가용성을 위해서 가용영역이 다른 서브넷 2개를 만들었습니다.


NAT Gateway의 경우는 인터넷 게이트웨이가 있는 퍼블릭 서브넷에 위치시켰고, 앞서 만든 서브넷 2개는 라우팅 테이블을 만들어 연결하고 그 라우팅 테이블 규칙에는 NAT Gateway 를 추가하여 외부 인터넷을 액세스할 수 없었던 문제를 해결하였습니다.

 

NAT Gateway 의 경우 서울리전 기준-시간당 0.059 USD입니다.

정리

기본적으로 Lambda 함수는 AWS 서비스를 포함하여 인터넷에 액세스할 수 있지만 VPC의 프라이빗 리소스에는 액세스할 수 없습니다.

Lambda를 VPC의 프라이빗 서브넷에 연결하면 VPC의 프라이빗 리소스에 액세스할 수 있지만 인터넷이나 AWS 서비스에는 액세스할 수 없습니다.

모두 원한다면 VPC의 프라이빗 서브넷에 함수를 연결하고 퍼블릭 서브넷에 NAT 게이트웨이를 생성한 다음 트래픽을 GW로 라우팅해야 합니다.

Internet Gateway

  • 인터넷 게이트웨이는 AWS VPC와 인터넷을 연결해주는 논리적인 커넥션
  • 1 VPC에 1 IGW 만 할당할 수 있고 통신 대역폭의 제한은 없음
  • VPC에 인터넷 게이트웨이가 연결되어 있지 않으면, 외부에서 VPC 내부로 접근 할 수 없음
  • 적어도 1개의 퍼블릭 서브넷이 IGW로 접근하는 것을 라우팅 테이블에서 허용해 줘야 함
  • 라우팅 테이블에서 트래픽이 인터넷 게이트웨이를 향하게 된다면, 퍼블릭 서브넷으로 간주함.

NAT Gateway

  • 프라이빗 서브넷안에 있는 리소스들이 인터넷에 접속할 수 있도록 해줌
  • 명시적으로 허용하지 않는 이상 일방통행
  • 외부 트래픽은 NAT Gateway를 통해 들어올 수 없음.
  • Private Subnet 에서 생성된 Lambda 도 NAT Gateway를 지나 외부 인터넷과 통신할 수 있음

 

 

참고자료

- https://aws.amazon.com/ko/premiumsupport/knowledge-center/internet-access-lambda-function/

 

VPC에서 Lambda 함수에 인터넷 액세스 권한 부여

Amazon VPC에 연결된 Lambda 함수에 인터넷 액세스 권한을 부여하려면 어떻게 해야 합니까? 최종 업데이트 날짜: 2023년 2월 16일 Amazon Virtual Private Cloud(VPC)에 연결된 AWS Lambda 함수에 인터넷 액세스 권한

aws.amazon.com

- https://docs.aws.amazon.com/ko_kr/lambda/latest/dg/services-rds-tutorial.html

 

자습서: Amazon VPC에서 Amazon RDS에 액세스하도록 Lambda 함수 구성 - AWS Lambda

이 페이지에 작업이 필요하다는 점을 알려 주셔서 감사합니다. 실망시켜 드려 죄송합니다. 잠깐 시간을 내어 설명서를 향상시킬 수 있는 방법에 대해 말씀해 주십시오.

docs.aws.amazon.com

반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/10   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
글 보관함