DevOps BootCamp/Section 2 실습과제

프로젝트 2 회고

cloudmaster 2023. 5. 2. 17:32

 Project 02

 

 - 이번 프로젝트는 CI/CD를 구축하여 3-tier-architecture를 구축하는 것이었습니다

 - 이번에는 프로젝트 단계마다 시간 제한이 있었고 처음이었지만 재밌었던 것 같습니다

 - 이번에도 처음부터 오류도 많이 만나고 어려웠지만 모르는 것을 팀원들과 상의하여 해결해 나갈 수 있었습니다

 

 

day1
마일스톤 1 
  • fastify를 이용해 간단한 서버를 구축하고 dockerfile로 컨테이너화 한 후 ecr로 푸쉬하는 작업을 했었습니다
  • 여기까지는 잘 되었었습니다

 

 

마일스톤 2
  • 서버와 mongo DB를 docker-compose로 작성하여 한꺼번에 컨테이너를 실행 시키는 것이었습니다

 

시험 삼아 로컬에서 컨테이너화 한 mongo DB로 접속을 시도했으나 아래와 같은 오류가 생겼었습니다

 

 > 확인 결과 127.0.0.1의 주소가 잘못된 것이었고 localhost로 주소를 바꾸어 주었습니다 

 > 그랬더니 접속이 되었습니다

 

마일스톤 3
  • GitHub Action을 이용해, 이미지 빌드 및 push를 자동화하는 것이었습니다
  • GitHub에 yaml을 작성해야 했습니다

 

 

day2
  • GitHub Action을 이용해 ECS 배포 자동화를 수행하는 작업을 했습니다
  • 처음에는 tesk-definition을 작성했습니다

 > 먼저 작성해야 ecs에서 tesk-definition을 기반으로 서비스를 생성할 수 있습니다

 

 > 이후 자동화를 위해 workflow에 ecs 배포 코드를 추가했습니다 

 

 

ecs를 실행하고, 로드밸런서로
https 접속을 시도 했는데 다음과 같은 오류가 발생했습니다

 

  > 구글링도 하고, 공식 문서도 봤지만 해결이 되지 않아서 결국 도메인을 새로 발급 받았더니 해결되었습니다

 

 

day3
  • GitHub Action 또는 CodeBuild 활용해서 프론트앤드를 자동 배포하는 작업을 했습니다
  • 저는 codebuild로 작업을 하였고, buildspec.yaml을 작성하였습니다

 > build 작업은 성공해서 배포가 완료됬으나 CloudFront에서 다음과 같은 오류가 발생했습니다

 

 

 CloudFront를 생성하는데 오류가 발생했습니다

  > IAM에 생성했던 codebuild 정책에 여러 사용자가 연결되서 환경 변수를 어떤 사용자에게 변수를 적용할 지 찾지 못하는 것이었습니다.

 

 > 들어가서 제거해 주었더니 해결되었습니다.

 

 

 

day4
  • API 요구사항에 맞춰 서버 애플리케이션을 작성하는 작업을 했습니다
  • 우선 get을 먼저 작성했는데 다음과 같은 오류가 생겼습니다

 

어떤 것이 문제인지 알기 위해 개발자 도구를 보았더니 데이터 Type이 잘못된 것이었습니다

 

 > orders에 있는 index.js와 restaurants에 있는 index.js가 충돌이 나는 것이었습니다

 

 

프로젝트2 후기

 > 이번 프로젝트를 진행하면서 배포와 자동화에 대해 조금 더 생각해 보는 계기가 되었습니다. 어느 부분에서 자동화하면 좋은지(build, deploy 등), 어떻게 코드를 작성해야 하는지를 배웠는데 재밌었습니다. 또한 팀원들과의 의견을 나누고 하는 과정이 개발자에게 꼭 필요하다는 생각이 들었습니다.

'DevOps BootCamp > Section 2 실습과제' 카테고리의 다른 글

Git Action-S3 배포  (0) 2023.05.03
ECS 배포 자동화  (0) 2023.05.03