개인 프로젝트를 운영하던 중 예기치 못한 문제가 발생하여 원인 분석과 해결하는 과정을 정리해보았습니다. 개발 환경 : AWS EC2 프리티어(ubuntu 24), Nginx 1.24.0, Sentry1. 문제 시작개인적으로 운영하는 사이트에서 백엔드 API 요청 시 500 에러가 발생하였습니다. (어라? 어제까지는 잘 됐는데..) 2. 원인 분석일단 원인을 찾기 위해 모니터링 툴인 Sentry 들어가서 이슈를 확인했는데 새로운 이슈는 없었습니다.그 다음, 운영 서버에 들어가서 백엔드 프로젝트에 에러 로그를 보았습니다.하지만 에러 로그에는 기록이 남겨있지 않았습니다. 요청 로그에도 요청한 기록이 없었습니다. 백엔드에 문제가 아니라 "다른 문제일 수도 있겠구나" 생각이 들어서 Nginx 로그를 ..
블루-그린 배포 방식인 Nginx의 로드 밸런싱 기능과 헬스체크를 통해 무중단 배포에 대해 알아보겠습니다. 무중단 배포 시나리오는 다음과 같습니다.새로운 배포 시 두 인스턴스 중 하나만 업데이트하고 Nginx가 트래픽을 새 인스턴스로 라우팅하도록 합니다.배포가 완료되면, 나머지 인스턴스도 동일하게 업데이트합니다.이 과정에서 Nginx가 트래픽을 분산하여 중단 없이 배포를 수행할 수 있습니다. 개발 환경 : AWS EC2(ubuntu 24), Nginx 1.24.0, Spring Boot 31. 헬스 체크 API 만들기헬스 체크는 애플리케이션 인스턴스가 정상적으로 작동하는지 확인하는 메커니즘입니다.간단한 헬스 체크 API 만듭니다.@RestControllerpublic class KeepAliveCont..
Nginx에서 SSL 인증서 만료가 되면 갱신을 해야한다. 만약 갱신을 제때 못하면 신한카드 SSL 인증서 만료로 인한 결제 장애 생기는 일이 생긴다.이번에 갱신을 하면서 대표적인 인증 기관(CA : Certificate Authority), 각각의 인증서가 어떻게 이루어져 있는지, 갱신은 어떻게 하는지에 대해 알아보았다.일단 인증 기관을 정리하면 아래와 같다.1. Let's Encrypt: Let's Encrypt- 무료로 SSL/TLS 인증서를 발급하는 비영리 기관이다. 많은 웹 호스팅 서비스 및 웹 서버에서 Let's Encrypt를 지원하고 있어, 사용자들이 쉽게 무료 SSL/TLS 인증서를 획득할 수 있다.2. DigiCert: DigiCert- 글로벌 인증 기관 중 하나로, 고급 보안 솔루션을..
Nginx를 사용하여 단일 인스턴스에서 여러 도메인에 로드밸런싱과 HTTPS 연결하여 안전하게 운영하는 법에 대해 알아보겠습니다. 1. 도메인 구입하기가비아 사이트에서 1년 할인 받아서 15,000원에 구입하였습니다. 2. AWS route 연결AWS route에서 호스팅을 생성합니다. 호스팅 이름은 도메인을 맞춰서 진행하였습니다. 아래 사진을 보면 총 레코드가 5개인데 그 중 2개는 기존에 만들어져 있었고 3개 레코드를 생성합니다.이름 : seolyu.com 유형 : A 값 : 퍼블릭 IPv4 주소이름 : api.seolyu.com 유형 : A 값 : 퍼블릭 IPv4 주소이름 : www.seolyu.com 유형 : CNA..