API Gateway 와 Lambda 로 Github API 안전하게 이용하기
들어가며
github 에서 제공해주는 Github API 로 레포지토리의 issues 에 작성해둔 이슈들을 보기좋게 정리해주는 블로그가 갖고싶었습니다. 다만 Github API 의 경우 토큰 없이 요청 시에는 요청 갯수 제한이 있어서 token 을 같이 보내야하더라구요. 안그러면 개발 중에 쫑남...
(만들었습니다 후후 https://snaag.github.io/)
그런데 클라이언트에서 요청하면 요청 중에 토큰이 노출 되는 위험이 있었습니다. 그렇다고 EC2 등으로 서버를 구축하고 거기서 요청 하자니 그건 또 오버스러웠습니다.
저는 단순히 요청을 대신 해주고 결과를 반환 하기만 하는 기능이 필요했고, AWS 의 Lambda 와 API Gateway 가 적절하다는 GPT 선생님의 답변에 따라 그렇게 만들어보았습니다.
AWS Lambda 와 API Gateway
AWS Lambda
AWS Lambda는 서버리스 컴퓨팅 서비스입니다. 즉, 서버를 관리할 필요 없이 코드를 실행할 수 있는 서비스입니다.
개발자가 코드를 작성하면 Lambda 는 필요할 때만 그 코드를 실합니다. 요금은 실행된 만큼만 지불하면 됩니다.
AWS API Gateway
Amazon API Gateway는 API(응용 프로그램 인터페이스) 를 생성하고 관리하는 서비스로, HTTP, REST, WebSocket API 등을 정의하고 배포할 수 있게 해주는 AWS 서비스입니다.
쉽게 말해, API Gateway는 클라이언트(브라우저, 앱 등)에서 HTTP 요청을 받아서 Lambda 함수 또는 다른 백엔드 서비스로 전달해주는 "게이트웨이" 역할을 합니다.
둘을 같이 사용해야 하는 이유
Lambda는 이벤트 기반 함수 실행 서비스입니다. 즉, Lambda 함수는 특정 이벤트 가 발생할 때 실행되며, 직접 HTTP 요청을 처리하는 능력이 없습니다.
여기서 API Gateway가 중요한 역할을 합니다. API Gateway는 HTTP 요청을 이벤트로 변환해 Lambda 함수에 전달해주고, Lambda 함수의 응답을 클라이언트에게 다시 HTTP 응답으로 반환 해줍니다.
실습
실습은 이미지가 많아서 내용이 길어서... 하나에 쭉 적기보단 코멘트를 따로 분리해서 적어봤습니다.
아래의 내용으로 구성되어있습니다.
- Lambda 만들기
- API Gateway 생성 및 연결
- API Gateway 에서 Path 추가하기
- Lambda 함수 코드 작성하기 (javascript)
- Lambda 의 Layer 를 사용하여 라이브러리 관리
- Lambda 에 Layer 추가
AWS 는 GPT 가 엄청 잘 알더라구요. 요거 하면서 80% 는 GPT 를 사용하고 20% 정도만 구글링했습니다.
참고자료
API Gateway 와 Lambda 로 Github API 안전하게 이용하기
들어가며
github 에서 제공해주는 Github API 로 레포지토리의 issues 에 작성해둔 이슈들을 보기좋게 정리해주는 블로그가 갖고싶었습니다. 다만 Github API 의 경우 토큰 없이 요청 시에는 요청 갯수 제한이 있어서 token 을 같이 보내야하더라구요. 안그러면 개발 중에 쫑남...
(만들었습니다 후후 https://snaag.github.io/)
그런데 클라이언트에서 요청하면 요청 중에 토큰이 노출 되는 위험이 있었습니다. 그렇다고 EC2 등으로 서버를 구축하고 거기서 요청 하자니 그건 또 오버스러웠습니다.
저는 단순히 요청을 대신 해주고 결과를 반환 하기만 하는 기능이 필요했고, AWS 의 Lambda 와 API Gateway 가 적절하다는 GPT 선생님의 답변에 따라 그렇게 만들어보았습니다.
AWS Lambda 와 API Gateway
AWS Lambda
AWS Lambda는 서버리스 컴퓨팅 서비스입니다. 즉, 서버를 관리할 필요 없이 코드를 실행할 수 있는 서비스입니다.
개발자가 코드를 작성하면 Lambda 는 필요할 때만 그 코드를 실합니다. 요금은 실행된 만큼만 지불하면 됩니다.
AWS API Gateway
Amazon API Gateway는 API(응용 프로그램 인터페이스) 를 생성하고 관리하는 서비스로, HTTP, REST, WebSocket API 등을 정의하고 배포할 수 있게 해주는 AWS 서비스입니다.
쉽게 말해, API Gateway는 클라이언트(브라우저, 앱 등)에서 HTTP 요청을 받아서 Lambda 함수 또는 다른 백엔드 서비스로 전달해주는 "게이트웨이" 역할을 합니다.
둘을 같이 사용해야 하는 이유
Lambda는 이벤트 기반 함수 실행 서비스입니다. 즉, Lambda 함수는 특정 이벤트 가 발생할 때 실행되며, 직접 HTTP 요청을 처리하는 능력이 없습니다.
여기서 API Gateway가 중요한 역할을 합니다. API Gateway는 HTTP 요청을 이벤트로 변환해 Lambda 함수에 전달해주고, Lambda 함수의 응답을 클라이언트에게 다시 HTTP 응답으로 반환 해줍니다.
실습
실습은 이미지가 많아서 내용이 길어서... 하나에 쭉 적기보단 코멘트를 따로 분리해서 적어봤습니다.
아래의 내용으로 구성되어있습니다.
AWS 는 GPT 가 엄청 잘 알더라구요. 요거 하면서 80% 는 GPT 를 사용하고 20% 정도만 구글링했습니다.
참고자료