DevOps, 첫 프로젝트

박준호·2022년 11월 22일
6
post-thumbnail

DevOps란?

DevOps는 애플리케이션과 서비스를 빠른 속도로 제공할 수 있도록 조직의 역량을 향상시키는 문화 철학, 방식 및 도구의 조합

필자가 DevOps공부를 시작하고 처음으로 DevOps로써 참여 하게된 프로젝트에 대해 얘기해보려고 한다.

필자는 클라우드컴퓨팅 이라는 종목의 기능경기대회 준비를 하는 동아리에서 현재 AWS를 공부 하고있다.
이번 프로젝트를 진행하기 전에 필자는 CS지식Network를 공부하고 AWS의 주요 서비스들을 공부하는 중이었다.

프로젝트 소개

학생들이 학교 시간표를 웹에서 유동적으로 확인 할 수 있도록 하기 위해 시작한 프로젝트 이다.

인원은 프론트엔드 개발자 3명 / 백엔드 개발자 1명 / DevOps Engineer 1명으로 구성하였다.

프로젝트는 2달 조금 안되는 기간동안 진행하였다.

"내가 이걸 할 수 있을지 모르겠다."

사실 프로젝트 참여하기 전에는 많은 걱정을 하며 내가 할일을 다 마칠수 있을지 조차 의문이였다.
그렇게 열심히 해보자는 마음과 팀원에게 피해를 입히지는 말아야지 라는 마음과 함께 시작하였다.

Spring이라니?

나는 백엔드 개발에 Django/DRF 를 사용하고 있다. 하지만 이번 프로젝트 백엔드 개발 스택은 Spring 이였다.
프로젝트를 진행하며 Spring공부를 해보았지만 생각보다 많이 어렵고 복잡하였다.. 그렇기에 백엔드 개발에 힘을 많이 못쓴것 같아서 미안한 마음이 남았다.

CORS오류 ?

프로젝트를 진행하다가 중간에 팀 리더 선배님 께서 CORS오류가 무조건 발생한다고 해결해야 한다고 하셨다.
EC2에 EIP 연결하고 ALB를 통해 EC2에 연결하여 백엔드 어플리케이션을 배포에 성공하고 프론트엔드 에게 fetch() 를 테스트 해달라고 하였다. 예상대로 CORS오류가 발생하였고 백엔드 코드에서 해결해보려고 했지만 잘 되진 않았다.

선배님에게 도움을 요청하였더니, 도메인을 사서 CORS오류의 해결 과 AWS ACM를 통한 HTTPS 적용 까지 하는것이 선배님의 해결책이였다.

하지만 소규모 프로젝트였기 때문에 도메인을 구매하는것이 망설여졌고, 그렇게 또 시간을 헛되게 썻던것 같다.

"조금이라도 빠르게 도메인을 구입하였다면.." 이라는 후회가 남았다.

Route53을 얕보지 말자

도메인을 구매하고 백엔드와 프론트엔드 모두 도메인 하나에 묶으려고 하였는데 굉장히 많은 시간이 소요되었다.

하나의 호스팅 영역에 server.(도메인)www.(도메인) 을 넣어서 그런지 DNS가 작동하지 않았는데 당시 필자는 호스팅 영역을 나눠보자는 생각은 안하고 자꾸 CNAME 레코드A 레코드만 바꿔 보았다.

도메인 적용을 완료하고 AWS ACM DNS 인증으로 도메인에 HTTPS 까지 적용을 완료하였다.

CI/CD가 그렇게 필요하더라

지금 이 글을 작성하고있는 필자는 CI/CD를 구축하는 방법을 알고있다. 그러나 글 속의 필자는 CI/CD를 구축할줄 몰랐다.

프로젝트 초기에 백엔드 서버를 먼저 배포해놓고 수정사항이 있으면 빌드하고 재배포 하자는 아쉬운 판단을 해버리게된다. 그렇게 수정사항이 있으면 다시 빌드하고 배포하는 반복적인 일을 수행하게 된다.


(velog 다크 모드는 위 사진이 잘 안보일수 있습니다.)
(사진 출처 : https://stalker5217.netlify.app/devops/github-action-aws-ci-cd-2/)

백엔드 개발이 끝나갈 때 쯤에 Github ActionsS3, AWS CodeDeploy를 사용하여 CI/CD를 구축하는데에 성공하였다.
(다음엔 JenKins에 도전 해봐야지)

CI/CD를 빠르게 구축하였다면 시간을 조금이라도 낭비하지 않고 개발과정을 최적화 할수 있었을것 같다.

프로젝트를 마치고

나는 정말 행복했다, 내가 이 프로젝트로 DevOps 로써 한 층 더 성장한 것 같고 팀에 도움이 된것같아서 말이다.
물론 아쉽고 내가 못했던 부분도 많지만 잠도 줄여가면서 내 시간을 많이 투자하여 만든 결과에 난 만족한다.

프로젝트 끝나고 팀에 정식 합류 또한 할수 있었기에 정말 뜻깊은 프로젝트이고 함께 고생한 팀원들에게도 고맙다.

그리고 DevOps를 하시고 계시는 동아리 선배님에게 정말정말 감사하다.

다음 프로젝트는,

CI / CD 구축을 조금더 완벽하고 빠르게 해보자.
개발서버를 운영하여 개발자들의 테스트 환경을 구축하자.
조금 더 보안에 신경 써서 아키텍처를 설계하자.
모니터링 환경을 구축하고 SNS 알림을 설정해보자.
프로젝트 환경이 Docker를 사용할수 있다면 Docker에 꼭 도전해보자!

끝👏🏻

profile
클라우드 컴퓨팅 공부중입니다.

2개의 댓글

comment-user-thumbnail
2022년 11월 25일

응원하겠습니다 ~!!

1개의 답글