1. 문제 정의
AWS lambda를 활용해 간단한 정기 알림봇을 만들고자 함.
기존 회사의 vpc-default를 선택하면 외부망과 연결이 안되어 있어 그런지 Slack을 통한 알림이 불가함.
반대로 vpc를 세팅하지 않는 경우, slack으로의 알림은 가능했지만, 회사 rds db와 저장소(s3)로의 접근이 제한됨.
2. 해결 방법
해결은 의외로 간단했고, AWS의 구조를 조금 공부하고, 하기 aws 가이드를 따르면 쉽게 해결할 수 있음.
https://aws.amazon.com/ko/premiumsupport/knowledge-center/internet-access-lambda-function/
- lambda 전용 vpc를 만든다. (vpc-lambda로 명명함)
- subnet을 만든다. (public, private이 동시에 생성됨)
- Public subnet은 인터넷이 연결되어 있기 때문에 Slack API와 연결되고,
Private subnet을 통해서 회사 db, s3가 모두 접근 가능해진다.
3. VPC의 구성요소
내용은 Youtube의 양질의 강의 (https://youtu.be/ZISUSL431bY)를 참고하였음.
- Subnet : CIDR 망 대역으로 VPC를 나눔
- Routing Table : Rule 집합 (어떤 트래픽은 어디로)
- Internet GW : VPC에서 외부 인터넷 통신을 활성화하기 위한 게이트웨이
- NAT GW : private 서브넷에서 인터넷 통신을 연결하는 게이트웨이
(NAT GW →Internet GW → 외부 인터넷) - VPC Endpoint : 인터넷 없이(NAT 등 통하지 않고) AWS 서비스 간 연결 ex) S3 등
4. 참고 자료
상기 도큐먼트 및 상기 유튜브
끗.