< 전체 개발 과정 정리 >
# 본격적인 Project 진행 전에 전체 개발과정을 한번 정리!
1) API 서버 개발을 위해, 파이썬 환경 설정
- 먼저 파이썬 3.10 으로 가상환경 생성 (아나콘다 프롬포트)
conda creat -n lambda_app python=3.10
- pip을 이용해서 필요한 라이브러리 설치 (flask 용)
pip install flask flask-restful mysql-connector-python psycopg2-binary passlib flask-jwt-extended email-validator flask-uploads uuid numpy pandas scikit-learn==0.23.2
2) AWS에 배포하기 위한, Serverless framwork 설치
- npm 설치(https://nodejs.org/en/)
- serverless.com 에 회원가입 (로그인)
- Serverless Framework 설치 : Windows cmd에서 실행 (버전은 3.38.0 으로 설치)
npn install -g serverless@3.38.0
3) AWS IAM 에서 유저 생성 (하나씩 권한 설정)
- 참고 : https://sorktjrrb.tistory.com/152
4) Windows CMD 에서 Github 폴더 경로로 이동후 serverless 실행하여, 배포 폴더 생성
- 참고 : https://sorktjrrb.tistory.com/139
※ 혹시 이전에 연동한 서버키값을 까먹어서 새로 생성하였거나, 문제가 발생되어서 수정해야 한다면 아래처럼 수동으로 설정하면 된다.
# Windows CMD 창에서 아래처럼 설정
# () 안에 수정할 내용을 넣고 () 소가로는 삭제하고 맨 마지막에 -o도 같이 입력해서 실행
serverless config credentials --provider aws --key (수정할 키값) --secret (수정할 secret값) -o
5) 서버리스가 생성할 폴더를 Visual Studio Code 로 폴더 열기 한다.
6) 배포를 해보고, 웹브라우저나 Postman으로 테스트 해본다.
- 배포 방법은 VSCode에서 터미널을 열고 sls deploy하여 배포
- 로컬 환경에서 테스트해보고 싶을땐 flask run
7) 중요!) Github.com에 AWS 배포용 레파지토리를 만들고 연동한다.
- .gitignore 작성해야 하는 부분 주의할것!
- 참고 : https://sorktjrrb.tistory.com/153
8) 연동까지 확인되었으면, 개발한 프로젝트를 전부 복사 붙여넣기 해주거나, 해당 화면에서 개발 프로젝트 진행!
- VSC에서 파이썬 인터프리터 가상환경 맞게 설정! (처음에 생성한 가상환경)
- 개발중에는 로컬 환경에서 테스트 flask run
- 테스트는 Postman과 DB 연동사항이 있다면 MySQL Workbench에서 적용되는지도 테스트
- AWS에서 테스트해보면 에러난다. 클라우드 와치에서 확인!
9) 개발과 테스트까지 모두 끝났다면, requirements.txt 파일에 우리가 로컬에서 설치한 파이썬 라이브러리 이름을 적어줘야 한다.
- AWS의 람다가 우리가 설치한 라이브러리를 설치하도록
10) 용량이 크다면 Docker를 이용해서 도커 설정까지 추가
- 참고 : https://sorktjrrb.tistory.com/154
11) VSC 터미널 cmd를 열고 sls deploy 해서 서버 배포!
- 배포가 문제가 없다면 Git Actions를 이용해서 CI/CD 자동 배포화도 실행
- 참고 : https://sorktjrrb.tistory.com/156
다음 게시글로 계속~!
'API 개발 > API 개발 Project' 카테고리의 다른 글
API Project : (1) SNS 서비스 개발 (기본 세팅부터 진행!) (0) | 2024.05.29 |
---|---|
API Project : (2) 영화 추천 API 개발 (대용량 파일 Docker 서버 배포) (1) | 2024.05.29 |
API Project : (1) 영화 추천 API 개발 (DB 데이터 json으로 가져오기) (0) | 2024.05.29 |
API Project : 메모앱 API 서버 개발 (0) | 2024.05.29 |
API Project : 레시피 생성 API 개발 (0) | 2024.05.29 |