본문 바로가기

API 서버

AWS에 배포하기(Serverless 방식으로)+Github로 수정된 내용 적용

1. nodejs설치(LTS로)


2. Serverless Framework 설치

anaconda prompt 키고 cd로 깃허브있는 경로로 이동 후

npm install -g serverless쳐서 깔아주기


3. Serverless Framework 회원가입 후(되도록이면 구글 계정으로 통일시키자)

org -> provider로 가서 add해주기 

Access/Secret Keys 클릭 

하지만! 채울것이 없을것이다 그래서 AWS 콘솔에 로그인한다

IAM이라고 검색 후 IAM 클릭

왼쪽에 사용자 클릭

사용자(회사에서는 개발자들 이걸로 관리한다고함) 추가 클릭 후 flask_app_user라고 이름만들고 다음클릭

직접 정책 연결 클릭 후 강의파일에있는 권한 8개정도를 권한 정책에서 검색해서 똑같이 추가해준다 다하면 다음 클릭 사용자 생성 클릭

완성된 것에서 보안 자격 증명 클릭 엑세스 키란에서 엑세스 키 만들기 클릭 

엑세스 키 모범 사례 및 대안에서 로컬 코드 클릭(다른거선택해도상관없다) 다음 클릭 엑세스 키 만들기 클릭

밑에 .csv 파일 다운로드 클릭 다운로드 받은 파일은 잃어버리면 안되니까 구글 드라이브에 넣어놔라


4. 다시 Serverless Framework로 간다

org-> provider로 가서 add 클릭 후 Access/Secret Keys 클릭

Name(ex:flask_app_user), aws access key, aws secret key 내용 체워주기

apps로 가서 create app클릭 python flask API 템플릿 클릭 aws-recipe-app이라고 이름 적고 create클릭 뜨는 문장들 copy해서 메모장에 붙여놓고 역슬레시 / (메모장에서는 원표시)지워주기 그리고 한줄로 만들어주기


5. anaconda prompt로가서 깃허브 경로로가서 아까 한줄로 만든 문장 붙여넣기하고 enter누른다(새로운 프로젝트 만들고있다고 뜰꺼다 이건 내가 만든 서비스를 배포할 수 있는 폴더라는 뜻)깃허브 폴더에 aws-recipe-app폴더 생성된 것 확인 (여기에 내가만든 서비스를 넣으면 배포가 가능해진다)

endpoint: ANY- 이부분에 있는 주소로 서버 생성된거 들어갈 수 있다


6. visual stuio code로 aws-recipe-app열기app.py에서 우리가 만든 가상환경인 lambda_app선택한다

requirements.txt (이 파일은, 우리 로컬에 설치한 라이브러리를 여기에다가 적어줘야, 서버에서 설치가 된다.)에

전에 적어놓은 설치한 라이브러리들을 적어준다.

ex)  flask, flask-restful, mysql-connector-python, email-validator, passlib, psycopg2-binary, flask-jwt-extended

severless.yml(이 파일은,severless framwork가 가장먼저보는 파일이다.)에서 provider에 python3.9를 가상환경에 맞는 python3.10으로 바꿔준다

원래 만든 서비스와 관련된 코드가 들어있는 visual studio code 열어서 안에있는 내용들을 복사해서

aws-recipe-app에다가 저장한다 그리고 밑에 cmd창에서 sls deploy친다


7. endpoint에 나와있는 주소를 이용하여 포스트맨에 만든 레시피서버에서 url대신에 사용해 Send눌러본다

그러면 서버가 잘 실행한다는 것을 알 수있다!


severless framework가 만든 깃허브에 있는 폴더와 똑같은 이름의 레파지토리를 만들어준다

그리고 이미 폴더에 README파일과 .gitignore파일이 있으므로 추가 안해줘도 된다 

생성 후 Private로 했으니까 visual studio code에서 .gitignore에서 config파일 지워야한다 (그래야 집에 가서 해볼 때 config파일도 제외되지 않고 가져와서 할 수 있으니까)

그리고 node_modules에 있는 파일들은 모두 필요없고 무거우니까 config파일에 node_modules/ 추가해준다

테스트 겸 visual studio code에 있는 코드 일부를 수정해준다

레파지토리 만들면 아래코드가 창에 나온다 참고!

git init --> cmd창에서
git commit -m "first commit" --> cmd 창에서 해도되고 왼쪽에서 commit해줘도 된다
git branch -M main --> cmd 창에서 해줘도 되고 왼쪽에서 branch해줘도 된다
git remote add origin '주소' --> cmd 창에서
git push -u origin main --> cmd 창에서

cmd창에서 sls deploy 친다

포스트맨에서 수정한 부분 Send해서 수정된 결과 확인한다