TIL

[에스넷시스템 부트캠프] TIL Day 81~85 - 프로젝트 8주차

yulee_to 2025. 9. 21. 00:17
728x90
반응형

Day 81 - 모니터링 환경 구성 

CloudWatch 구동 확인

이번 주의 시작은 지난주에 설치했던 CloudWatch가 정상적으로 작동하는지부터 확인하는 것으로 열었다. 다행히 Pod들을 잘 감지하고 있는 것을 확인할 수 있었고, 기본적인 모니터링 환경이 안정적으로 구동되고 있다는 사실에 조금 안심이 되었다.

EFK 스택 구성

이어서 로깅 환경을 마련하기 위해 EFK 스택을 구성했다. Fluent Bit를 DaemonSet으로 배포해 각 노드에서 실행 중인 Pod들의 로그를 수집하도록 했고, 수집된 로그는 Elasticsearch에 저장되도록 연결했다. 이후 Kibana를 통해 로그를 시각화할 수 있는 환경까지 갖추면서 기본적인 로깅 파이프라인이 완성되었다.

이렇게 메트릭과 로그 모니터링을 완성하고 나니 프로젝트가 점점 실서비스 환경에 가까워지는 것 같아 뿌듯했다. 

인덱스 설정
Kibana 모습


Day 82 - SNS 연동 & Jenkins 설치 시도

SNS 연동

CloudWatch에서 설정한 알람을 SNS와 연동하여 특정 임계치를 넘었을 때 내 Gmail로 알림 메일을 받을 수 있도록 구성했다. 이제는 단순히 메트릭을 보는 것에서 그치지 않고 실제로 이상 징후가 감지되었을 때 빠르게 대응할 수 있는 체계를 갖추게 되었다. 

 

Jenkins 설치 시도

이어서 Jenkins 설치도 시도해보았다. 그러나 플러그인 설치 과정에서 일본이나 중국의 미러 서버로 연결되는 문제가 발생하면서 설치가 계속 실패했다. 직접 플러그인 파일을 다운로드해 옮겨보기도 하고, 구글링으로 찾은 다른 방법들을 적용해보기도 했지만 결국 문제를 해결하지는 못했다. 다른 대안적인 방법도 있었지만 프로젝트 마감까지 시간이 얼마 남지 않은 상황에서 안정적으로 진행하는 것이 더 중요하다고 판단했다. 결국 조금 더 익숙하고 빠르게 파이프라인을 구성할 수 있는 GitHub Actions를 활용하기로 결정했다.


Day 83 - CI/CD 파이프라인 구축

Github Actions 워크플로우 작성

GitHub Actions 워크플로우를 작성해 특정 브랜치와 디렉토리에 코드가 push되면 이를 자동으로 감지하고 동작하도록 구성했다. 이 워크플로우는 FastAPI 애플리케이션의 테스트를 실행하고, Docker 이미지를 빌드한 뒤 ECR에 업로드하도록 설계되었으며, 이후 Kubernetes manifest 파일의 이미지 버전을 자동으로 갱신하도록 했다. 이를 통해 코드 변경이 발생했을 때 배포까지 이어지는 과정이 수동 개입 없이 자연스럽게 이어질 수 있게 만들었다.

GitHub Actions
ECR

 

ArgoCD 설치 및 구성

ArgoCD를 설치하고 Kubernetes 환경에 맞게 구성했다. ArgoCD는 manifest의 변경 사항을 감지하고 새로운 이미지 버전에 맞춰 Pod를 자동으로 교체하는 역할을 하도록 설정했다. 이로써 코드 수정에서 배포까지 전 과정을 자동화하는 CI/CD 흐름이 완성되었고, 안정적이고 일관성 있는 배포가 가능해졌다.

 

ArgoCD
news-collector 애플리케이션
news-api 애플리케이션


Day 84 - 발표 자료 및 시연 영상 제

발표 준비

오늘은 본격적으로 발표 준비에 돌입했다. 가장 먼저 발표 자료의 전반적인 디자인 테마를 정하고, 기본적인 목차를 구성했다. 발표의 큰 흐름은 프로젝트 개요 → 기술 설명 → 프로젝트 관리 순서로 잡았으며, 가급적 글보다는 그림 위주의 구성으로 청중이 이해하기 쉽도록 구성하려고 했다. 아직 초기 단계라 채워 넣은 부분은 많지 않지만, 틀을 마련해둔 만큼 차근차근 완성해 나갈 계획이다.

발표 ppt

CI/CD 시연 영상 준비 

CI/CD 시연 영상을 준비했다. 영상을 제작하면서 몇 가지 오류가 드러났는데, ArgoCD에서 자동 감지가 되지 않았던 문제는 Auto Sync 기능이 꺼져 있었기 때문이었고, Kubernetes Manifest의 이미지 버전 수정도 정상적으로 반영되지 않아 수정 작업을 진행했다.

 

문제를 해결한 뒤, 시연 영상에는 테스트용 API를 추가한 뒤 실제 CI/CD 과정을 거쳐 배포가 정상적으로 이루어졌는지 확인하는 과정을 담았다. 최종적으로는 API 실행 결과와 로그 모니터링 화면을 함께 보여주어 CI/CD 파이프라인의 흐름을 명확히 전달할 수 있도록 구성했다.

 


Day 85 - 발표 준

오늘도 어제에 이어 발표 준비를 이어갔다. 다가오는 주말에는 네트워크 관리사 2급 실기 시험 준비로 바쁠 예정이라 발표 자료는 조금 서둘러 진행했다.

 

준비 과정에서 가장 만족스러웠던 부분은 CI/CD 다이어그램이었다. 지금까지의 구현 과정을 시각적으로 잘 표현해낸 것 같아 개인적으로 가장 잘 만든 자료라고 생각한다.

 

CI/CD 과정

 

또한, 기존에 흩어져 있던 요소들을 통합하여 전체 인프라 아키텍처를 새롭게 구성했다. 프로젝트의 모든 기술적 흐름을 한눈에 볼 수 있도록 정리해 두어 발표 시 설명에 큰 도움이 될 것 같다.

전체 아키텍처

✍️ 주간 회고

이번 주는 프로젝트의 마무리 단계라는 느낌이 강하게 들었다. 다행히 목표로 삼았던 모니터링 환경과 CI/CD를 모두 완성할 수 있어 성취감을 느꼈다.

하지만 아쉬움도 남았다. Jenkins를 사용하지 못했고, 로그 모니터링 대시보드 구성이 다채롭지 못했으며, 알람은 단순히 리소스 사용량 기준으로만 설정했다. 또한 비용 최적화를 충분히 고려하지 못했고, ArgoCD를 Helm Chart로 구성해보지 못한 점도 아쉬웠다.

 

화요일 발표를 앞두고 있는 만큼, 남은 시간 동안 지금까지 진행한 프로젝트의 성과와 작업 과정을 후회 없이 보여줄 수 있도록 최선을 다해야겠다.

 

728x90
반응형