꾸준하고 즐겁게

Serverless에 Github와 AWS Lambda를 연동해서, Flask로 만든 API 서비스 자동으로 배포하기 본문

카테고리 없음

Serverless에 Github와 AWS Lambda를 연동해서, Flask로 만든 API 서비스 자동으로 배포하기

wj9183 2021. 5. 8. 21:34
728x90

사람은 눈으로 보는 게 최고라고 배웠다.

스크린샷을 많이 찍어왔다.

 

일단 이 페이지에 들어가서 시작한다.

이름 나오는 것 정도는 지우기 번거로우니 그냥 두겠다.

 

 

 

 

 

스크린샷이 마우스를 포함해서 찍히지 않는다는 걸 알게 됐다.

오른쪽 구석에 create app을 눌러준다.

 

 

 

그러면 이런 화면이 나온다.

거기서 python flask API를 눌러준다.

 

 

 

 

앱 이름을 지어준다.

 

 

 

 

 

셀렉트 버튼 누르면 가장 밑에 add provider (아마도...) 를 눌러준다.

 

 

 

 

프로바이더 이름을 쓰고, create role 버튼을 누른다.

 

 

 

작성자는 이 과정을 어제만 20번쯤 했다보니, 로그인 과정이 안나와있다.

보통은 aws에 로그인을 해야한다.

 

저 화면에 들어가면, 헷갈리지 않게 스택 이름부터 지어준다.

안짓고 넘어가면 다음 과정에서 못찾을 가능성이 있다.

왜냐면 작성자 본인이 그래서 한 3번쯤 다시 만들었다.

이름을 잘 지어줬으면, 저 기능 메뉴 체크 박스에 체크해주고 스택생성한다.

 

 

 

그럼 다시 이 페이지로 돌아온다.

add provider 창이 알아서 꺼지고 이 화면이 된다.

 

저기서 아까 지어준 그 이름을 찾는다.

 

 

 

 

이제 터미널을 켜고, 원하는 경로로 이동해준다.

아까 지어준 앱 이름대로 새로운 디렉토리가 하나 만들어질 예정이다.

저 뒤에 가려진 검은 칸 안에 있는 걸 복사해서 위에 것부터 입력해 실행한다.

 

경로 이동은 cd 디렉토리명\디렉토리명... 이다.

 

일부 입력하고 탭 키를 누르면 자동완성된다.

비슷한 이름의 디렉토리들이 많다면... 유감이다...

 

 

python 버전 관련해서 실패 메세지가 뜨면, 아나콘다 받아서 프롬프트로 해보길 권한다.

저렇게 초록색으로 성공했다고 뜨면 된 것이다.

 

 

 

 

 

 

 

 

두번째 명령어를 입력해준다.

앱 이름으로 새로 만들어진 폴더로 이동하고, 서버리스를 디플로이하는 명령어다.

 

 

 

 

 

 

이번엔 초록색 문구가 안뜨지만, 성공적으로 퍼블리싱했다고 한다.

이렇게 뜨면 성공이다.

바로 또 쓸 건데 경로 다시 이동하기 귀찮으니 끄지 않길 권한다.

 

 

 

 

이제 새로운 레퍼지토리를 하나 만든다.

 

 

 

 

 

 

레퍼지토리 이름이랑 공개여부를 제외하고는 아무것도 건드리지 않으길 권한다.

정확히는 모르겠지만, 설정에 엄청 민감하게 반응해서 되고 안되고가 갈린다..

 

 

 

 

 

 

 

다시 아까전의 터미널을 열고, git init 을 입력하고 실행한다.

저런 짧은 메세지가 뜨면 성공이다.

 

이어서 git remote add origin...... 이 부분 복붙하고 실행한다.

 

 

 

 

아무것도 안뜨면 성공이다.

이제 터미널은 꺼도 된다.

 

 

 

 

 

 

 

 

 

이제 비쥬얼 스튜디오 코드를 연다.

open folder로 아까 전에 터미널에서 만들어진 폴더를 선택해준다.

 

 

 

그럼 이렇게 미리 세팅이 되어있다.

 

 

 

 

 

작성자는 python 3.7 버전 위에서 돌아갈 앱을 만들 예정이였기 때문에, 저 부분을 python3.7로 바꿔주었다.

 

 

 

 

리콰이어먼츠 파일에 aws에 설치해야할 라이브러리들을 올려주었다.

코딩하다가 라이브러리 다운받게 되면 여기에 입력해둬야한다.

그래야 서버에 올려서도 돌아간다.

서버리스라면서 자꾸 서버서버 거리는데, 서버가 없다는 건 당연히 사용자 입장에서 봤을 때 없다는 것이다.

 

커밋 말고 일단 저장만 해둔다.

아직은 커밋해도 서버에 자동으로 배포가 안되는 상태이다.

이것도 다시 쓸거니까 끄지 않는 걸 권한다.

 

 

마지막 과정이 하나 남았다.

다시 웹브라우저로 돌아온다.

아마 만들어둔 앱이 잘 돌아가고 있을 것이다.

3개중 2번째 쩜쩜쩜 버튼을 누르면, 저렇게 세팅 버튼이 보인다.

그걸 눌러준다.

 

 

 

 

 

 

 

거기서 cicd를 누른다.

번개모양 밑에 있는 cicd 아니다.

그럼 이런 화면이 나온다.

 

 

 

 

깃허브가 연결이 안되어있다면, 커넥트 버튼을 누른다.

 

 

 

 

 

 

온리 셀렉트 레퍼지토리스는 몇몇 레퍼지토리만 골라서 하는 걸로 알고 있다.

작성자는 올 레퍼지토리스를 고르고 세이브를 했다.

 

 

 

 

 

 

저렇게 된다.

레퍼지토리 이름 밑에 밑에 아직 뭐가 안됐다고, 빨간색 메세지가 뜰 것이다.

메세지 내용이 기억이 안나는데, 아무튼 시간이 좀 걸린다.

기다려보면...

 

 

 

 

이렇게 된다.

branch deploys에서 각각 master, dev를 골라준다.

 

 

 

 

 

 

add notifications를 누르면, 알림을 받아볼 방법을 선택하라고 한다.

작성자는 이메일을 눌러줬다.

굳이 안해도 된다.

저장 버튼 같은 거 따로 없으니, 여기까지 다 하면 다시 vscode를 연다.

 

 

메세지 부분만 살짝 바꿔준다.

 

 

 

 

이제는 확실히 알았지만, 헤매는 동안은 정말 지옥이였다.

그 마음을 표현해보았다.

 

 

 

 

 

vscode 왼쪽 상단에 체크표시 눌러서 커밋하고, 거기서 조금 오른쪽에 쩜쩜쩜 누르고 푸쉬도 해준다.

 

 

 

 

 

조금 기다린다.

 

 

 

 

이번엔 저 번개 모양 아래 있는 cicd 메뉴를 눌러준다.

그러면 이 화면에서 디플로잉 석세스 이런거 있는 그 부분만 크게 나온다.

이미지 캡쳐가 빠져서 이 이미지로 대체했습니다만 상관없다.

 

저 deploying이 success로 바뀌면 된다. 한참 걸린다.

failed 뜰 경우 failed를 누르면 지금 이 화면이 보인다.

building 메뉴를 보면, 로그를 볼 수 있다.

 

 

저렇게 success로 바뀌었다면 됐다.

postman을 켠다. 이거 아니여도 상관없다.

Rest API를 테스트할 수 있는 툴이면 된다.

 

이것도 빼먹었는데, 저기 api endpoints 메뉴 누르고 맨 밑에 가보면 endpoint가 나와있다. 그거 복사해둔다.

 

 

 

 

지금 아래에 나와있는 헬로 프롬 루트는 아까 전에 혼자 테스트했던 거니까 신경쓰지 않아도 된다.

아무것도 안나와있을 것이다.

메소드를 GET으로 설정해주고, 조금 전에 복사한 url을 입력해준다.

마음의 준비가 되면 send를 눌러준다.

 

 

 

 

 

지옥!

 

이러면 성공이다.

728x90