최근 AWS Lambda(이하 Lambda)를 활용해 API Backend를 개발하고 있습니다.
처음하는 일은 늘 어려운 법이지만 이틀 내내 어두운 터널에서 벽을 짚으며 걷는 느낌을 줬던 이슈를 정리해봅니다.
만약 어떤 설정이 필요한지 이해가 필요하다면 이 글을 참고해주세요.
만약 수동으로 생성하고 싶거나, 기존 VPC를 활용해서 구성해야 한다면 이 글을 참고해주세요.
마법사를 이용해 빠르게 시작하기
Elastic IP 발급하기
먼저 고정 IP로 사용할 Elastic IP가 필요합니다.
좌측 메뉴에서 탄력적 IP를 선택하고, 새 주소 할당을 눌러서 Elastic IP를 발급받습니다.
정보 입력하기
좌측 최상단에 있는 대시보드를 선택하면 우측에 VPC 마법사 시작 버튼이 표시됩니다.
해당 버튼을 눌러서 마법사를 시작합니다.
'퍼블릭 및 프라이빗 서브넷이 있는 VPC'를 선택합니다.
우측에 표시되는 이미지를 보면 우리가 원했던 그 구성입니다.
표시되는 항목들을 취향에 맞게 입력합니다.
탄력적 IP 할당 ID에는 앞서 발급받았던 IP를 선택합니다.
모든 항목을 입력하고나면 우측 하단에 VPC 생성을 누릅니다.
구성이 완료될 때까지 잠시 기다립니다.
이 과정은 네트워크 환경과 무관하게 몇 분 정도 걸립니다.
생성이 완료되면 아래 화면이 표시됩니다.
VPC 구성이 완료되었습니다!
AWS Lambda 설정 변경
함수 생성
지난번처럼 내 IP를 확인할 수 있는 함수를 생성하여 확인해보겠습니다.
테스트를 위한 Node.js 코드는 아래와 같습니다.
const http = require('https');
exports.handler = (event, context, callback) => {
const options = {
method: 'GET',
hostname: 'jsonip.com',
};
const req = http.request(options, (res) => {
const chunks = [];
res.on('data', (chunk) => chunks.push(chunk));
res.on('end', () => {
const body = Buffer.concat(chunks);
const results = body.toString();
console.log(results);
callback(null, {
statusCode: 200,
body: results,
});
});
});
req.end();
};
권한 추가
VPC와 연결을 위해서 함수에 권한을 추가합니다.
관리 화면 하단 실행 역할 박스의 역할 편집 링크를 선택합니다.
하단에 정책 연결을 선택합니다.
표시되는 정책 중 'AWSLambdaVPCAccessExecutionRole' 권한을 선택하고 정책 연결을 선택합니다.
VPC 설정 변경
이제 함수를 VPC와 연결합니다.
함수 관리 화면 하단의 네트워크 박스로 이동해서 아래와 같이 설정합니다.
* VPC는 앞서 생성한 VPC로 지정합니다.
* 서브넷은 반드시 Private 서브넷을 선택합니다.
* 보안 그룹은 외부 연결이 허용되도록 합니다.
최종 테스트
다시 테스트를 돌려보면 아래와 같이 발급 받은 EIP, 52.78.137.222가 표시되는 것을 확인할 수 있습니다.
다시 테스트를 돌려보면 아래와 같이 발급 받은 EIP, 52.78.137.222가 표시되는 것을 확인할 수 있습니다.
왜 두 번 써지지?
왜 두 번 써지지?
*
이 글은 총 3편에 걸쳐 작성되었습니다.
1편에서는 AWS Lambda에 고정 IP를 연결하기 위한 배경 지식을 정리했습니다.
2편에서는 VPC 구성을 실제로 진행하는 단계를 정리했습니다.
이번 글에서는 '마법사' 기능을 이용해 빠르게 구성하는 과정을 정리했습니다.