✅ Sonar란?💡 30개 이상의 언어, 프레임워크 및 IaC 플랫폼에서 코딩 문제를 감지하도록 설계된 코드 분석 도구클린 코드를 지향하며 새로운 코드에서 문제를 감지할 때마다 경고하여서 높은 표준을 유지하고 전체 코드를 개선할 수 있게 해준다.- 온프레미스 환경이면 sonarQube 추후 개발자가 직접 서버를 배포해야 한다.- 클라우드 환경이면 sonarCloud 클라우드 기반의 서비스로 개발자가 별도의 서버설정이나 유지보수를 할 필요가 없음 기본적인 동작과정개발자가 코드를 작성하고 푸시한다.빌드 및 테스트를 한다.이후 SonarQube/SonarCloud가 해당 소스코드를 분석한다.분석 결과를 SonarQube/SonarCloud UI에 표시해준다. ✅ SonarCloud 선택💡 직접 인..
데브코스
✅ 개요배포할 때마다 블루/그린 서버가 번갈아가며 실행되는 것은 확인했지만 배포 과정 중 새로고침을 눌러보면 일정시간동안 502 Bad Gateway 오류가 발생한다. 물론 시간이 지나면 서비스가 다시 정상작동하긴 하지만 단 한순간 이라도 서비스가 끊기지 않는 것이 무중단 배포의 핵심이다.이번 포스트에서는 이 문제를 해결하는 과정에 대해 이야기하도록 하겠다. ✅ 문제 원인 파악아무래도 서버를 실행시키는 부분에서 문제가 발생했을 거라고 생각했다.그 부분은 바로 CodeDeploy에 의해 EC2에 관련 파일들이 다운로드 됐을 때 실행되는 start-server.sh이다.#!/bin/bashNGINX_CONF="/etc/nginx/sites-available/default"cd /home/ubuntu/ssca..
✅ 개요지난 포스트에서 기본적인 인프라 구성은 완료했었다.이번 포스트에선 Github Actions를 통해 본격적으로 CI/CD 파이프라인을 구축해보겠다. ✅ 1. Github Actions 사용자 생성Github Actions는 다양한 AWS 인프라에 접근해야 한다. 따라서 그 권한을 가진 사용자를 설정해준다.해당 사용자는 다음의 세 가지 정책을 가진다.AmazonEC2ContainerRegistryFullAccess: ECR에 Spring Boot 이미지를 업로드하기 위함AmazonS3FullAccess: S3에 CodeDeploy 관련 파일 및 기타 파일을 업로드 하기 위함AWSCodeDeployFullAccess: CodeDeploy에게 배포명령을 내리기 위함 액세스 키 발급 ✅ 2. Docker..
✅ 블루/그린 배포란?💡 기존 서버(블루)와 새로운 서버(그린) 간의 트래픽 전환을 통해 무중단 배포를 구현하는 전략.핵심 아이디어는 현재 운영 중인 애플리케이션(블루)과 새 버전의 애플리케이션(그린)을 두 개의 동일한 환경에서 동시에 운영한 후, 새 버전이 정상적으로 작동하는 것을 확인한 다음 트래픽을 전환하는 방식.블루/그린 배포와 같은 무중단 배포는 배포 시 서버가 내려가는 Downtime을 없앤다고 해서 Zero Downtime이라고도 불린다.이를 통해 유저들은 서비스를 불편함없이 사용할 수 있게 된다. ✅ 아키텍처 무작정 생각해보기우선 자동 통합/배포를 위해 CI/CD 툴인 Github Actions를 떠올렸다.그리고 해당 서버를 배포하기 위한 인프라가 필요한데 후보는 많았다. AWS EC2,..