서론 프로젝트 기능과 관련하여 클라이언트가 입력한 주소에서 위도 및 경도 좌표를 추출해야할 일이 생겼다. 주소에서 위도 및 경도를 꺼내기 위해서는 직접 주소에 위도 및 경도 정보를 매칭한 데이터를 소장하고 있거나, 배포된 API를 활용하여 주소 정보를 보내고 위도 및 경도 정보를 받는 방법이 있다. 개인 프로젝트에서는 API를 활용하여 주소에 대응하는 좌표값을 받는 것이 현실적인 방안일 것이다. 주소를 좌표로 변환하기 위한 API 종류 주소를 좌표로 변환하기 위해 활용할 수 있는 API는 아래와 같은 옵션이 존재한다. 1. 오픈 API - GeoCoder API 2.0 https://www.vworld.kr/dev/v4dv_geocoderguide2_s001.do 국토교통부에서 제공하는 공식 오픈API이..
서론 지난 글에서 API gateway에 권한 부여한 후 Cognito 인증하여 백엔드 리소스인 Lambda에 접근하는 것을 실습해봤다. 하지만 실제 어플리케이션이 사용자를 인식하여 동적으로 정보를 보여주기 위해서는 이것만으로는 충분하지 않을 것이다. 유저 맞춤형으로 정보를 제공해주기 위해서는 각 API 요청에서 헤더에 담겨있는 유저 정보를 꺼낼 수 있어야 한다. 이번 글에서는 Cognito로 생성한 JWT를 API gateway 뒤에 있는 백엔드 리소스 단에서 추출하여 사용자 정보를 인식하고 사용자 맞춤형 정보를 제공하는 실습을 진행한다. 시스템 구조 및 가정 현재 프로젝트의 시스템의 구조는 아래 그림과 같다. 본 글에서는 이와 같은 연결 설정이 모두 완료되었다고 가정하고 글을 진행할 것이다. 만약 그..
서론 프로젝트를 진행하다보면 기존의 VPC를 삭제하고 새로운 VPC를 생성하여 인스턴스 환경을 바꿔야 할 필요가 있다. 하지만 VPC를 삭제하는 과정에서 VPC 내부에 사용되는 ENI가 남아있어서 삭제가 안 되는 문제가 종종 발생한다. 이 글은 그 중에 빈번하게 발생하는 원인 중 하나인 API gateway 관련 eni 문제 때문에 VPC가 삭제되지 못하는 문제와 해결책을 기록해놓은 것이다. VPC가 삭제되지 않은 원인 '네트워크 인터페이스가 포함되어있습니다.' AWS는 VPC가 삭제되지 않을 때 그 원인을 직접적으로 알려준다. 아래와 같이 VPC에 현재 사용되고 있는 eni가 있어서 삭제되지 않는다고 한다. '네트워크 인터페이스가 포함되어 있습니다.' 를 클릭하면 현재 삭제되지 않는 VPC에 관련된 E..
서론 Cognito의 역할 Cognito는 아래 그림과 같이 동작한다. - 클라이언트 측에서 특정 경로로 접속하려고하는데, 그 경로가 권한이 부여되어있다면 접근이 제한된다. - 클라이언트는 Cognito의 앱 클라이언트로 들어가서 로그인을 실행한다. - 로그인에 성공하면 Cognito에서 인증 토큰을 발급하여 클라이언트 측으로 전송한다. 그리고 Cognito에 의해 Callback URL로 redirect되어 API gateway에 다시 접근하게 된다. - HTTP API gateway는 JWT 권한 부여자를 통해 헤더의 JWT를 인식하고 이를 Cognito에 보내서 알맞은 토큰인지 검증 요청한다. - 토큰이 알맞은 토큰일 경우 라우팅으로 접속하여 어플리케이션을 실행시켜 응답을 클라이언트에게 돌려준다. ..