[번역] AWS Lambda를 VPC를 통해 인터넷 연결하기

Harry The Great
해리의 유목코딩
5 min readMay 15, 2018

--

본 내용은 Gist에 올라온 하단의 포스팅을 번역하였습니다. 전체 내용을 인용으로 붙이고싶지만 Gist의 경우 차꾸 코드로 인식하여… ㅠㅠ 가져오는 관계로 링크 형식으로만 남겨드립니다.

AWS람다를 VPC를 통해 인터넷에 연결하는 방법에 대해 설명하고자합니다. 그럼 시작하겠습니다.

다소 어려울 수 있지만, 람다는 세가지 상태를 가질 수 있습니다.

  1. VPC가 없는 상태 — 웹에 자유롭게 접속할 수 있지만 로컬 네트워크로 AWS 서비스들과 연결할 수 없음
  2. VPC가 있는 상태 — 기본적인 설정으로 로컬 네트워크에 연결이 가능하지만 웹에는 접속할 수 없음
  3. VPC와 NAT이 있는 상태 — 가장 좋은 케이스로 AWS 서비스와 웹 둘 다 접속이 가능

이번 내용에서는 3번의 케이스에 대해 설명하겠습니다.

참조: 본 튜토리얼의 모든 단계를 따라갈 필요는 없습니다. 서브넷이 이미 존재할수도 있고 테이블이 이미 세팅되어있을수도 있으니 기존에 세팅된 내용을 수정하여 진행하여도 무방합니다.

서브넷만들기

먼저 할일은 서브넷을 만드는 것입니다. 먼저 4개의 서브넷을 만들어보겠습니다. 아래는 제가 앞서 세팅을 한 서브넷 리스트이며 아이피는 예시를 들어 적용하였으므로 각자에 맞추어 설정을 해주세요. 패턴은 16씩 증가하는 테이블입니다.

132.179.0.0/16 은 예시를 위한 아이피입니다.

IGW는 Internet Gateway의 약자이며 NAT은 Network Address Translatation Gateway의 약자입니다.

3개의 서브넷은 Nat 게이트웨이로 연결하고 1개는 인터넷 게이트로 연결해야합니다. 우선 라우팅 테이블을 만들어보겠습니다.

라우팅 테이블 만들기

VPC 대시보드 -> 라우팅 테이블

먼저 두개의 라우팅 테이블을 만들어보겠습니다.

하나는 nat의 연결을 위한 테이블로 lambda-rt-to-nat으로 이름지어줍니다.

(역주: 이미지에는 NAT이 설정되어 있지만 무시하고 진행합니다.)

다른 하나는 인터넷 게이트웨이로의 연결을 위한 lambda-rt-to-igw로 이름지어줍니다.

(역주: 이미지에는 igw가 설정되어 있지만 무시하고 진행합니다.)

람다 설정하여주기

람다에서 함수를 클릭한 경우 나오는 네트워크탭에서 nat으로 설정한 서브넷을 3개 설정하여줍니다.

NAT 게이트웨이 만들기

이제 Nat Gateway를 만들겠습니다. NAT 게이트웨이로 들어간 후 NAT게이트웨이 생성을 누릅니다. 그 후 서브넷을 lambda-subnet-point-to-igw로 설정하여주고 EIP를 생성하여줍니다.

역주추가

조금 전 만들었던 lambda-table-to-nat 라우팅 테이블을 수정하여야합니다. 라우팅 테이블 메뉴로 이동 후 lambda-table-to-nat를 선택한 후 하단에 나오는 메뉴 중 라우팅을 누릅니다. 그 후 편집버튼을 누른 후 0.0.0.0/0을 대상주소로 조금 전 연결해주었던 nat게이트웨이와 연결하여줍니다.

다음은 인터넷 게이트웨이 메뉴로 들어간 후 igw로 시작하는 인터넷 게이트가 없을경우 인터넷 게이트웨이를 만들어줍니다. 이름 형식은 되도록 igw를 subfix로 갖는것이 좋습니다. 그 후 lambda-table-to-igw로 이동한 후 라우팅 테이블에서 편집 그 후 0.0.0.0/0을 igw로 연결하여줍니다.

(lambda-table-to-igw 예시)

마치며

이제 동작이 될 것입니다. 여러분이 만든 람다 함수는 NAT을 통해 VPS와 웹에 연결할 수 있습니다.

참조

--

--

Harry The Great
해리의 유목코딩

Android & IOS Developer 😀 미디움 이외에 스니펫이나 디버그노트로 활용하는 https://www.harrymikoshi.com/ 블로그도 운영하고있습니다.