AWS를 이용해서 외부에서도 접속가능하도록 API 서버를 배포하겠습니다.
외부의 사용자는 컴퓨터 또는 핸드폰으로 지정된 URL을 입력해 API서버에 접속할 수 있습니다.
접속한 후 AWS의 API Gateway를 통해 API에 접근, 그리고 AWS Lambda를 이용해 함수를 실행합니다.
- AWS의 API Gateway는 규모와 관계 없이 REST 및 WebSocket API를 생성, 게시, 유지, 모니터링 및 보호하기 위한 서비스입니다.
- AWS의 Lambda는 서버를 프로비저닝하거나 관리하지 않고도 코드를 실행할 수 있게 해주는 컴퓨팅 서비스입니다.
API Gateway와 Lambda를 이용하기 위해 IAM을 사용합니다.
AWS의 IAM이란 Identity and Access Management의 약자로, AWS 리소스에 대한 액세스를 안전하게 제어할 수 있는 웹 서비스입니다. IAM을 사용하여 리소스를 사용하도록 인증(로그인) 및 권한 부여(권한 있음)된 대상을 제어합니다.
1. IAM을 이용하기 위해 credential을 생성합니다.
AWS홈페이지에 로그인 후 IAM 클릭, 사용자를 추가합니다.
2. 사용자 이름 입력, 액세스 유형도 선택해줍니다.
3. 유저의 권한을 관리자로 지정해서 만들어줍니다.
4. 설정들을 다 지정하였으면 완료 후 .csv파일을 다운받습니다( 액세스 키 아이디와 비밀번호 등 접속에 필요한 데이터들이 있습니다. )
서버의 배포는 자동으로 분산, 확장해주는 Serverless Framework를 사용하겠습니다.
The Serverless Application Framework | Serverless.com
Build web, mobile and IoT applications using AWS Lambda and API Gateway, Azure Functions, Google Cloud Functions, and more.
www.serverless.com
Flask를 이용해 API서버를 만들었으므로 맨 우측 아이콘을 클릭합니다.
로그인 후 앱을 생성해줍니다.
앱의 이름을 정해주면 하단의 이미지에 나오듯 연결할 AWS서버를 정하고, npm을 다운받아 서버리스 파일을 만들고, 배포하는 명령어를 보여줍니다.
conda환경에서 할 것이므로 Anaconda Prompt에서 실행해줍니다. ( npm을 사용하기 위해 Node.js를 먼저 다운받습니다. https://nodejs.org/en/ 에서 다운받을 수 있습니다.)
AWS 연결에 들어가면 access key, aws secret key를 입력하라고 나오는데, 아까 다운받은 .csv 파일에 있습니다.
-> 자동배포( CI / CD ) 가 잘 안 되어 Role ARN type으로 생성해 연결하였습니다.
만들었다면 하단의 ...을 눌러 환경설정을 해주겠습니다.
깃허브에서 연동할 repository와 AWS의 IAM가 잘 연결되었는지 확인합니다.
이제 깃허브에 코드를 작성하고 commit, push하면 자동으로 AWS 서버에 배포되어 들어갈 수 있습니다.
postman 프로그램에 URL을 입력해 들어가 로그인에 필요한 이메일과 비밀번호를 주었더니 토큰이 나오는 모습을 확인할 수 있습니다.
'프로그래밍 > API 서버' 카테고리의 다른 글
restful API server 만들기 (0) | 2021.05.03 |
---|---|
flask API서버의 다른 함수 사용하기. (0) | 2021.04.19 |
사용자 인증법2 ( feat. JWT ) (0) | 2021.04.15 |
사용자 인증법1 ( feat.JWT ) (0) | 2021.04.11 |
데이터 저장시 특정 데이터 암호화 시키기 (0) | 2021.04.10 |