0. 왜 Github Actions을 사용했나?사이드 프로젝트에서 기존에 사용해봤던 Github Actions 말고 Jenkins를 사용하려고 했는데, 예전에 기술적 의사결정을 해놓고서 깜빡했나보다. jenkins를 제대로 활용하기 위해서는 추가 EC2 인스턴스가 결국 필요했다. 때문에 Docker-Compose 써서 jenkins로 혼자 하루 온종일 시행착오를 겪으며 jenkins와 씨름했지만 서버비 등 상황 상 Github Actions를 다시 쓰기로 했다. Github Actions는 Github에서 인프라 서버를 제공해주는 방식이기 때문에 인프라용 인스턴스를 증설할 필요가 없기 때문이다. 갓 Github. 추가적으로 Docker를 쓰는 이유는 이미지, 컨테이너 방식으로 패키징하여 관리가 쉽고, d..
github actions
0. 무중단배포? 블루그린(blue/green)? 기존에 Spring Boot → Github Actions → Docker image Build → image push to docker hub → image pull to ec2 → image run 이었던 방식에는 push 가 발생하면 서버가 업데이트 되는 동안 잠깐 서버가 내려가는 downtime이 발생한다. 따라서 서비스가 중단되지않고 유지되기 위해서 무중단배포를 진행하였다. 블루 그린 배포방법은 무중단 배포 기법의 하나다. 동작 방식은 다음과 같다. 8080포트를 blue, 8081포트를 green이라 가정한다. blue 포트로 서비스를 실행중일때 업데이트가 일어나면 green 포트로 호스팅을 옮겨 서비스를 말그대로 번갈아가며 배포하는 방법이다...
1. Docker가 뭔데? 도커(Docker)는 컨테이너 기반 가상화 플랫폼으로, 응용 프로그램과 그 종속성을 격리된 환경인 컨테이너로 패키징하여 실행하는 기술이다. 이를 통해 응용 프로그램을 서로 다른 환경에서도 일관되게 실행할 수 있고, 개발 환경과 운영 환경 사이의 차이로 인한 문제를 줄일 수 있다. 본 프로젝트에서는 AWS S3와 CodeDeploy 조합 대신 Docker를 선택했는데 이유는 아래와 같다. Docker 컨테이너는 이식성이 뛰어나고 Docker 지원을 통해 모든 시스템에서 일관되게 실행될 수 있어 S3 및 CodeDeploy를 사용한 기존 배포에 비해 플랫폼 독립성이 뛰어나다. 또한, CodeDeploy는 AWS 환경과의 연동에 대한 이해와 학습곡선이 존재하고, 환경별로 관리해줘야한..
0. 들어가기 전에! 앞으로 다가올 실전프로젝트에 서비스팀과 챌린지팀으로 나눠진다는 소식이 있었다. 운이 좋게도 기술매니저님의 추천을 받아 챌린저팀에 들어올 수 있었고, 기존 서비스팀과는 다르게 대용량 트래픽 처리에 관점을 맞춘 프로젝트를 진행하게 되었다. 자바, 스프링도 항해를 통해서 처음 접하고 맛본건데 내가 이걸 할 수 있나..? 라는 생각이 들지만서도.. 감사한 기회라고 생각하고 도전에 임했다. 기본적인 CRUD 기능을 구현하고 팀원별로 프론트파트 보강작업, Spring security, CI-CD 2명으로 나뉘어 작업을 진행하였다. 나와 도현님, 둘이서 CI-CD를 맡게되어 구글링과 gpt로 조사하고 레퍼런스들을 참고하며 적용해본 기록들을 늦게나마 남겨보려한다. 1. 왜? Why? Github ..