백엔드

AWS에 배포하기 위한 Serverless framework 설치 / 폴더 만들기

Cong_S 2022. 6. 28. 15:50

1. 서버리스 프레임워크 이용하기
https://www.serverless.com/

 

Serverless: Develop & Monitor Apps On AWS Lambda

Easily develop and monitor auto-scaling applications on AWS Lambda, API Gateway, DynamoDB, etc., with the Serverless Framework and Serverless Monitoring Dashboard.

www.serverless.com

- API 서버 프레임워크(Flask)랑 다르게 배포 전문 프레임워크로서 
서버리스 프레임워크를 사용하면 깃허브에 올리면 바로 배포되도록 만들 수 있다.

 

npm install -g serverless


 코드로 설치 가능, 다만 npm은 nodejs로 설치할 수 있다.

 



2. nodejs 설치
https://nodejs.org/en/

 

Node.js

Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine.

nodejs.org

LTS 버전 설치 (안정적인 버전)
( 설치 후 프로그램 검색할 때 Node.js 로 검색)

 



3. 현재 파이썬 3.8이 람다와 가장 잘 맞는 버전이므로 파이썬 3.8로 구성된 가상환경에서
터미널로  npm install -g serverless 명령 실행해서 설치.

 

4.  서버리스 프레임워크 가입하기 

 

5. create app 에서 자신의 환경에 맞는 app 만들기(나의 경우 flask 사용해서 python flask api 선택)...  나온 코드 복사 

 

6. anaconda prompt 나 비주얼스튜디오코드 터미널을 이용해 자신의 깃허브 폴더 (중요)
 (base) C:\Users\-\Documents\GitHub> 로 이동한 후 위에서 복사한 코드 넣고 실행

 

npm i -g serverless && serverless --org=**사용자명** --app=**새로 만든 앱  이름** --name=aws-yh-recipe-server --template=aws-python-flask-api



7. 그러면 자동 배포되는 깃허브 폴더가 생성됨.

 


8. 과정 중에 일단은 skip 누름(access key 인증에 관한 부분인데 나중에 연결할 것이다.)

 


9. 비주얼 스튜디오 코드에서 깃허브 폴더에 위에서 정한 이름으로 생성된 폴더 열기
serverless.yml 파일에서 앱 이름 확인하기( 이 파일이 배포할 때 필요한 파일)

 



10. requirements.txt 파일은 설치한 라이브러리의 정보를 담고 있고 라이브러리의 버전 또한 알 수 있다.
내가 사용한 라이브러리의 정보를 다 적어주어야 한다.  (버전 잘 모르면 skip)

 

 

### app.py 의 마지막 부분에 빠져있을 수 있음. 확인해보고 채워줄 것.

if __name__ == "__main__":
    app.run()


11. flask 기본 구조 만들어주고

 



12. 로컬로 돌아가는지 확인

 

serverless deploy


13.터미널이나 아나콘다 프롬프트에  serverless deploy 로 배포 

 


14. credential없다고 나오면 https://app.serverless.com/사용자명/settings/providers 에서 org > providers로 이동

 


15. access key 에 IAM으로 발급받은 키와 시크릿 키 입력

 



16. serverless deploy 로 다시 배포 

 



17 . 정상적으로 배포가 되었다면 endpoint 주소(호스트 주소)를 복사해서 포스트맨으로 접속해보자
정상적으로 연결이 되었다면 항상 살아있는 서버를 배포하는 데 성공한 것이다.

 

 

18. 로컬로 만들어 포스트맨으로 확인했던 파이썬 코드를 복사하여 AWS랑 연결된 Github 폴더(위의 과정을 통해 만든 폴더) 붙여넣고 배포하면 된다. 

 

배포 코드는 터미널에서 

serverless deploy

# or 

sls deploy