AWS/CI·CD 파이프라인 구축

GitHub Actions를 이용하여 AWS에 자동 배포하기-2

Fletcher 2024. 7. 6. 18:09

※때에 따라서 소프트웨어 또는 프레임워크의 버전 및 인터페이스에 대해,

조회하시는 시간과 본 포스트 작성의 시간적 격차가 있는 경우

해당 설명과 상이한 부분이 있을 수 있습니다!

 

 

 

 

반갑습니다!

앞전 포스트에서 GitHub Actions 이용을 위해

아래 네 가지의 준비 작업을 진행했었습니다!

 

1. SERVERLESS ACCESS KEY

2. AWS IAM ACCESS KEY

3. AWS IAM SECRET ACCESS KEY

4. GitHub Repository 연동

 

이제 이번 시간에는 이 준비물들을 가지고 GitHub Actions 설정을 마무리해보겠습니다 ^^!

 

 

 

 

먼저 GitHub에 로그인 하신 다음 해당 리포지토리로 이동해주세요!

 

 

 

 

리포지토리 상단의 여러 메뉴들 중에서 Settings를 클릭하시면,

해당 리포지토리의 설정에 관련된 페이지로 이동하실 수 있는데요!

화면 왼쪽에 Setting과 관련된 여러 메뉴들 중에서 Secrets and variables를 선택해주세요!

그러면 세 가지 메뉴가 드롭다운 됩니다!

 

 

 

 

Secrets and variables -> Actions를 클릭하시면 위 이미지와 같은 화면으로 이동이 되실텐데요!

여기서 우리가 준비한 준비물들 세 가지를 설정해주는 겁니다!

"New repository secret"을 클릭해주세요!

 

 

 

 

Name 부분에는 여러분들이 원하는 임의의 문자열로 해당 secret의 이름을 설정해주시되,

여러분들이 보시고 쉽게 식별 가능하도록 지어주셔야겠죠 ^^?

그리고 그 밑의 Secret 부분에는 serverless 홈페이지에서 발급 받은 access key 값을 기입해주시면 되겠습니다!

그 후 Add secret을 클릭해주세요!

 

 

 

 

그럼 이렇게 Repository secrets 목록에, 방금 여러분이 생성하신 secret이 추가될겁니다!

AWS IAM ACCESS KEY와 SECRET ACCESS KEY도 설정을 해줘야 하니

동일 과정을 두 번 더 반복해주시면 되겠습니다 ^^!

 

 

 

 

위와 같이 세 가지 모두 설정을 해주셨다면 이제 다음 단계로 넘어가겠습니다 ^^!

 

 

 

 

아까 해당 리포지토리의 상단에 여러 메뉴 탭 중에서

이번에는 Actions를 클릭해서 위와 같은 화면으로 이동해주세요!

그리고 "Get started with GitHub Actions" 밑에

조그맣게 "set up workflow yourself"라는 부분이 있는데 여기를 클릭해주세요!

 

 

 

 

그럼 이와 같이 여러분들이 직접 .yml파일을 작성해 Actions의 work flow를 설정해줄 수 있습니다!

이 부분에 code를 입력해넣을건데요!

 

 

 

이와 같이 코드를 입력해주시면 되겠습니다!

main 브랜치에 push가 들어왔을 때 workflow가 시작되고,

어떤 work냐면 serverless deploy를 수행하는데 어떤 환경에서 어떤 절차를 거치는지에 대해서 기술되어 있습니다!

python이 설치되고 serverless 프레임워크가 설치되고, $ serverless deploy 명령어가 수행되는 과정이죠!

명령어 기입이 끝났다면 우측 상단의 "Commit changes..."를 눌러주세요!

 

 

Serverless docker deploy 샘플코드.txt
0.00MB

 

위 명령어 코드는 텍스트 파일로 별도로 첨부하겠습니다 ^^!!

 

 

※참고※

npm install -g serverless만 하면 자동으로 최신 버전으로 다운로드 되는데요!

제가 serverless를 설치할 당시에는 4.0대 버전이 새로 나온 때라

안정화되지 않은 Beta 버전이었더래서 오류가 많았습니다!

저는 serverless의 버전을 3.38.0으로 설치했었습니다!

만약에 특정 버전의 serverless를 사용하신다면,

상기 이미지에서 run: npm i -g serverless@버전 으로 명령어를 수정해주시기 바랍니다!

ex) npm i -g serverless@3.38.0

 

 

 

 

그럼 이와 같이 Commit창이 팝업됩니다!

여러분들이 원하시는 임의의 메세지로 지정해주시고 최종적으로 "Commit changes"를 클릭해주세요!

 

 

 

그리고 다시 해당 리포지토리의 Actions 탭으로 들어오시면

위에서 작성한 .yml 파일의 workflow대로 해당 항목이 생성되어 동작 중일텐데요 

 

 

 

이와 같이 deploy 작업이 작동중일겁니다!

저는 이미 작동이 완료된 후에 캡쳐한 화면이라 이미 초록색으로 작업 성공이 표시되어 있네요 ^^!

 

 

 

 

 

해당 작업을 클릭하시면 작업 과정 로그를 확인하실 수 있습니다!

 

 

 

 

GitHub Actions는 이러한 과정으로 작업을 수행했군요?

VSC 터미널에서 직접 $ serverless deploy 명령어를 실행시켰을 때와 마찬가지로,

배포된 리소스의 엔드포인트 주소가 출력되었습니다!

배포가 정말 잘 됐는지 POSTMAN을 통해 API를 호출해볼까요?

 

 

 

 

해당 엔드포인트로 호출을 하니 정상적으로 response가 옵니다!

저는 오류 메세지가 나왔는데, 지금은 설명 과정 편의상

헤더에 인증 토큰을 첨부하지 않았더래서 Authentication 관련한 단순 에러입니다!

 

배포는 정상적으로 됐고, AWS Lambda 함수에 온전히 적용이 되어서 잘 작동하는 모습을 보니 좋습니다 ^^!

 

 

이제부터는 VSC로 작업하시고 Commit, Push 하시면 앞선 과정과 같이

Actions가 동작해 미리 설정해둔 .yml파일의 workflow대로 자동으로 AWS에 배포를 해줄겁니다 ^^!

 

 

이렇게 GitHub와 GitHub Actions를 활용한 CI/CD 구축까지 알아보았습니다!

넓디 넓은 개발의 세계를 항해하시는 모두 늘 건승하시고 모두 행복하시기 바랍니다 ^^