다디와 괴발개발

DevOps 1기 부트캠프 두 번째 섹션 회고 : 밀당의 달인 AWS 본문

DevOps

DevOps 1기 부트캠프 두 번째 섹션 회고 : 밀당의 달인 AWS

아임다디 2022. 4. 11. 09:58

첫 회고 쓴지 얼마 되지도 않은 것 같은데 벌써 두 번째 회고를 작성하게 되었다...

일단 두 번째 섹션 동안 가장 많이 느꼈던 것은 AWS랑 많이 투닥투닥하지만 친한 친구가 된 것 같은 그런 느낌이 많이 들었다ㅋㅋㅋㅋ 진짜 밀당의 달인이다. 안된다며 에러 삑삑 내면서 밀어낼 땐 언제고, 지쳐갈 때 쯤에 성공이라며 나를 괴롭힌다.. 나쁜남자 AWSㅠㅠ 나도 가만히 있을순 없지, 다음 프로젝트때는 반드시 이 나쁜녀석에게서 주도권을 뺏을거다 쒸익 쒸익 😡

회고에 앞서, 이번 섹션 회고도 역시 KPT(Keep, Problem, Try) 회고 방법을 사용해서 작성해볼 예정이다.

두 번째 섹션 동안 배운 내용을 쭉 적어보면,

  • 네트워크 기초
  • AWS
  • Docker
  • YAML
  • 지속적 통합
  • 배포 자동화
  • 마이크로 서비스

오프라인 프로젝트에서는 마이크로서비스 이전까지 첫 번째 섹션에서 배웠던 지식들까지 활용하여 프로젝트를 진행했다. 이번 섹션에서는 정말 배우고 싶었던 내용들을 하다보니 더욱 더 집중해서 들었던 것 같다. 하지만 그만큼 피도 많이 봤다 ;ㅅ;


두 번째 섹션의 전체적인 KPT 회고

KEEP (지속할 것)

1. 가장 힘든 길에 도전해보기

이번 섹션동안 가장 힘들었던 친구를 꼽자면 아무래도 AWS... AWS..!!!!!!!!!!!!

프로젝트때도 당연히 AWS를 사용해야 했고, 프론트와 백 CI/CD 과정을 만드는데 각각 두 가지 방법이 있었다.

프론트는 GitHub Actions만 사용하여 S3에 배포하는 방법과, CodePipeline과 CodeBuild를 사용하여 S3에 배포하는 방식 두 가지로 갈렸고, 백엔드는 Github Actions, CodePipeline, ECR을 사용하여 ECS에 배포하는 방법과, Github Actions와 ECR만 사용하여 ECS에 배포하는 두 가지 방법이 있었다.

프로젝트 초기에 팀원들과 상의하면서 가장 어렵고 최대한 여러 도구들을 사용하는 방법으로 도전해보자는 의견에 모두 동의하여 프론트는 후자의 방법으로, 백엔드는 전자의 방법으로 CI/CD를 구축하였다.

아래는 우리가 선택한 CI/CD 아키텍처를 도식화 한 것이다. (이미지 출처 : 멋쟁이 짱짱맨 코드스테이츠 크루분들)

Frontend Architecture
Backend Architecture

 

정말 수많은 오류들을 보았고 저번 프로젝트보다 삽질 정리에 정리한 양이 4배나 늘었다... 칼퇴 요정이지만 이번 만큼은 집에서도 팀원의 AWS 계정을 받아 마저 프로젝트를 진행하였고, 성공했을 때는 소리질렀다. 이번 프로젝트 때 고생했던 것을 바탕으로 다음 프로젝트는 더 완벽하게 결과물을 만들어내고 싶다.

2. 오프라인 프로젝트 때 역할 분담 잘 하기

Git으로 협업을 할 때, 소통 없이 진행하다 보면 충돌로 고생하는 경우가 정말 허다하다. 학교 다닐 때 사이드 프로젝트 하면서 Git Conflict로 민폐 끼쳤던 적이 한 두번이 아니라서 신물이 난다. 그래도 꽤 고생해서 그런가 웬만하면 충돌 날 상황을 만들지 않고, 충돌이 나더라도 깃허브 웹페이지에서 금방 충돌을 해결할 수 있는 것 같다.

서두가 길었는데, 이번 프로젝트를 진행하면서 매일 프로젝트에 들어가기 전 마다 팀원들에게 오늘은 어떤 것을 할 지 각자 어떤 역할을 맡을지 세세하게 지정하고 팀원들과 의논해서 진행했기 때문에 진도도 정말 빨랐고, 프로젝트 통틀어 충돌 났던 적이 한 번 밖에 없었다. 그것마저도 Dockerfile 작성 연습하다가 만들었던 것을 지우지 않아서 서로 충돌됐던 문제라 금방 해결됐다.

항상 오기 전에 오늘은 어디서부터 어디까지 할지, 누가 이 역할을 가장 잘 맡을지 고민 또 고민했다. 코드 상으로 아쉬웠던 부분들이 좀 있지만 그래도 우리가 제일 빨리 끝났다. 오예!! 이번 프로젝트 동안 팀원분들이랑 케미도 잘맞아서 정말 즐겁게 했다. 저만 즐거웠던거 아니죠 팀원분들? ^^

조금 아쉬웠던 점을 적자면, 오늘 하루 해야 할 일들과 각자 역할 분담을 문서화하지 않았던 것이 조금 아쉽다. 이 부분은 팀 노션을 통해 다음 프로젝트 때 반영해보려고 한다! 역시 노션이 최고다.

3. 아고라 스테이츠 적극적으로 활용하기

저번 회고에도 올렸던 내용인 아고라 스테이츠!

이번 섹션에서는 저번보다 질문을 많이 올려서 동기분들의 도움을 많이 받을 수 있었다. 하루에 세 개까지 질문글을 올린 적도 있었다... 정말 몇 시간 동안 구글링을 해도 잘 해결되지 않았던 것이 다른 동기분들과 크루분들의 도움으로 빠르게 해결할 수 있어서 지쳐서 포기할 때 쯤에 큰 힘이 됐던 것 같다. 특히 AWS 할 때 너무 많은 에러들을 봐서 에러 로그 보는 것은 정말 많이 늘었다...

올린 질문 글 중에서 제일 짜증나고 오랜 시간 붙잡고 있었던 문제 ;ㅅ;

나중에 블로그에도 정리해서 올릴거지만 진짜 제일 해결하는데 오랜 시간이 걸렸던 문제였다. 구글에 검색해도 pm2 command not found 관련 글들만 나와서ㅠ 여기에다가도 원인을 간단하게 적어보자면 EC2에서 sudo상 환경 설정에서 node 버전문제 이슈가 있었던 것이다. 

4. 노션에 레퍼런스 정리, 트러블 슈팅 관련 정리 잘 해둘 것

웬만하면 저번 회고와 중복되게 적고싶지 않아 최대한 다른 내용으로 채우려고 했는데.. 이건 정말 빠질 수 없어서 꼭 적는다.

이번 프로젝트가 빨리 끝날 수 있었던 이유는 바로 나의 노션 정리력 때문이 아닌가 싶다 :)

AWS 스프린트를 진행할 때 마다 구체적으로 실습했던 사진까지 하나하나 캡쳐하여 정리해두어 프로젝트 셋팅 과정에서도 정말 빨랐고, 삽질 정리도 오류가 생길 때 마다 열심히 정리해두어 팀원분들께서 도움이 많이 됐다고, 좋은 자극이 됐다고 말씀해주셔서 뿌듯했다.

잘 정리해둔 덕분에 크루분들이 열어주신 '천하제일 감자대회'에서도 우승하여 맨투맨도 선물 받았다. 나이따!!!

원문 링크는 부트캠프 수강생 외에는 접근할 수 없어 대신, 블로그에 정리한 같은 내용을 올린다. 블로그라서 글 제목은 저렇게 해놨지만, 원본 글 제목은 '우리 아이가 건강해졌어요'다. 내가 생각해도 제목 잘 지은 것 같다.

https://dadidadi.tistory.com/35

 

[AWS] CD 과정 중에 생긴 로드밸런서 대상그룹 draining, unhealthy 문제

DevOps 2번째 프로젝트를 하면서 가장 골치아팠던 문제를 꼽자면 바로 CD 과정에서 대상그룹이 정신을 못차리고 계속 draining되거나 unhealthy가 되는 문제였다. 프로젝트에서 백엔드 CI/CD를 위해 Github

dadidadi.tistory.com

감자 대회에 올린 원문

내가 비록 다른 개발자 준비생분들보다  블로그도 늦게 시작하고 아직 많은 글들을 올린 것은 아니지만, 열심히 트러블 슈팅했던 내용들을 올려서 같은 에러를 만난 다른 분들께 도움이 되고 싶다.

 

PROBLEM (문제가 된 것)

1. 프로젝트 Credential 문제

이번 프로젝트에서 가장 아쉬웠던 점을 꼽자면, 몽고디비 환경변수를 신경쓰지 못했다는 점ㅠㅠ 

프로젝트 평가에서도 이 부분에서 가장 큰 감점 요소를 받을 것으로 예상된다.

MongoDB에 연결할 url과 각 collection 이름들을 급한 마음에 전부 코드에 하드코딩하고 초반에 중요한 정보들을 다 코드에 노출해버려 되돌릴 수 없는 상태가 되어 버렸다. 이 부분은 정말 뼈저리게 반성한다..

AWS 환경 셋팅이 완료됐다고 기쁜 마음에 너무 급하게 구현 부분으로 진행하다보니 이 부분을 놓쳤던 것 같다.

다음 프로젝트 때는 꼭 환경변수 먼저 셋팅해두고 진행할 것이다. 다시는 이런 실수를 하지 않을 것이다.. 또르륵

2. 동영상 자료들을 열심히 보자.. 특히 원어 동영상!!

AWS나 지금 공부하는 마이크로서비스 같은 경우에는 원어 동영상 자료가 정말 많다. 우수한 동기분들과 크루분들께서 좋은 자료들을 계속 올려주시는데 제대로 본게 많이 없..ㄷr...

부끄럽다. 크루분들이 원어 동영상에 진짜 도움되는 내용들이 많았고 크루분께서도 그 자료들로 공부하셨다고 했으니, 이제부터라도 꼭! 꼭! 열심히 보려고 한다 헤헤

그리고 AWS 영상 자료 같은 경우에 1시간 이상 넘어가는 경우가 많아 다 못본 경우가 종종 있었는데, 시간 날 때 마다 못봤던 내용들도 꼭 정리해야겠다. AWS 자격증 취득에도 정말 좋은 공부가 되는 영상들이라 꼭 놓치지 않고 봐야겠다.

 

TRY (다음에 시도할 것)

1. 트러블 슈팅이라도 업로드 잘하자

저번 회고에서 당당하게 1일 1블로그를 실천하겠다!!! 했는데 기가막히게 실패해버렸다

너무 욕심 내지말고, 트러블 슈팅이라도 잘 정리해두자.. 화이팅^^

2. 프로젝트 코드 리팩토링 하기

프로젝트를 정말 숨가쁘게 달려오고 구현은 결국 성공해냈지만, 코드 구현부에 있어서 아쉬운 내용들이 많다. 

첫 번째, 두 번째 프로젝트 모두 남들에게 보여줄 때 부끄럽지 않도록 부족했던 부분들을 정리하고 리팩토링 해볼 예정이다.

그리고, 자바스크립트 문법은 검색하면 검색할수록 특이하고 재밌는 문법들이 많이 나오는 것 같다. 이번에 사용했던 문법 중에서 spread operator가 가장 신기했다. 이런건 정리 안해두면 분명 다음에 또 까먹기 때문에 노션에도, 블로그에도 잘 정리해 둘 것이다.

아쉬웠던 부분들과 헤맸던 부분들을 정리해두면, 분명 다음 프로젝트는 더 완성도 높게 만들 수 있을거란 기대감이 든다!


벌써 절반을 달려온 부트 캠프, 이제는 친해진 동기분들이 꽤 되는 것 같아서 신난다. 꼭 다들 원하는 길로 가셨으면 좋겠다. 

이상 3/8부터 4/8까지, DevOps 부트캠프 두 번째 섹션 회고 끝!

 

'DevOps' 카테고리의 다른 글

[AWS, RDS] 로컬, EC2에서 RDS 접속하는 방법  (0) 2022.04.29
DevOps 1기 부트캠프 첫 섹션 회고  (0) 2022.03.14
모니터링과 로그  (0) 2022.02.24
자동화와 프로비저닝  (0) 2022.02.24
분산 시스템이란 무엇인가?  (0) 2022.02.22