Spring Boot + Nginx + Let’s Encrypt 환경에서 실제로 겪은 장애 복구 기록 1. 갑자기 서비스가 모두 안됐다외주 개발을 완료한지 6개월이 지난 지금, 고객사에서 연락이 왔다.저희 홈페이지 관리자 로그인이 안돼요 ㅠㅠ홈페이지도 안들어가져요...확인 한번 부탁드립니다! 홈페이지 확인을 해보니 데이터가 undefined로 내려오고 있고, 관리자 페이지 로그인도 500에러로 뜨고 있었다.처음엔 이렇게 생각했다.DB가 죽었나? 서버가 내려갔나?배포를 잘못했었나?근데 이상한 점이 하나 있었다. 2. 서버에 들어가보니... 다 살아있다?배포되어있는 AWS EC2에 접속해서 확인해봤다.ps -ef | grep app.jar백엔드 살아있음sudo ss -lntp | grep java포트도 정..
분류 전체보기
예전에 개발 팀장으로 있을 때 인턴으로 들어와 함께 일했던 동생과 오랜만에 술자리를 가졌다.근황 얘기를 하면서 내가 이직 준비중이라고 하니, 동생이 본인 회사 면접 준비 해보라면서 면접에 대한 얘기를 했다.본인 회사에서 주로 묻는 질문중의 예시로 한가지 질문을 해 주었다.Java에서 String을 사용할 때 왜 조심해야 한다고 생각하나요? 순간 머릿속이 복잡해졌다.자바 개발만 5년째 하고 있지만, 막상 그 질문을 정리해서 설명하려니 선뜻 말이 나오지 않았다. "String은 불변 객체라서 연산할 때마다 객체가 새로 생성되고, 그게 쌓이면 GC에 부담을 준다" 이 정도 설명밖에 하지 못했다. 대답을 하고 나서도 마음 한켠이 찝찝했다.틀린 말은 아니지만, 어딘가 부족하다는 느낌이 계속 남았다.String이..
최근 외부 파트너사에서 “React Server Components(RSC) 취약점(CVE-2025-55182)” 관련 보안 점검 요청을 받았다.문제는… 내가 개발했던 프로젝트가 Next.js App Router 기반이라는 점.즉 구조적으로 취약 버전의 영향을 받을 가능성이 있어 보였다.그래도 운영 중인 서비스라 보안 패치는 바로 대응해야 했다. 이번 글에서는 React 19 / Next.js 15 환경에서 보안 패치를 적용하며 겪은 과정들을 기록해본다. 1. 상황 파악 — 어떤 취약점인가?React 19 계열의 RSC 관련 패키지에서 원격 코드 실행(RCE) 취약점이 발견되었다는 내용이었다.취약 버전은 아래와 같고, 보안 패치는 해당 라인별로 발표된 상태. 🔸 취약 버전react-server-dom..
EC2 서버 띄워놓고 Public IP로만 접근하다가이제 도메인을 붙이기 위해 AWS Route53을 만져봤다.Route53으로 도메인 등록하고 EC2에 연결하는 과정에서A 레코드, CNAME, 네임서버 설정이 생각보다 헷갈려서나중에 다시 보려고 정리해둔다.이 글은 AWS Route53으로 도메인을 구매하고EC2에 연결하면서 실제로 했던 순서 위주로 적은 기록이다. ✅ Route53이란?💡 한 줄 요약 : 도메인을 발급하고 관리해주는 서비스이다.www.naver.com, daum.net, youtube.com처럼 문자 형태로 표현된 인터넷 주소를 도메인(Domain)이라고 한다. AWS의 Route 53은 이러한 도메인을 구매하고 관리할 수 있는 서비스이며, 더 정확히는 DNS(Domain Name ..
AWS EC2(Elastic Compute Cloud) 인스턴스에 Spring Boot 애플리케이션을 직접 배포해봤다.EC2 환경에서 JDK 설치부터 애플리케이션 실행까지 순서대로 정리해보았다.이 글을 보면 EC2에서 Spring Boot 서버를 띄우는 전체 흐름을 볼 수 있다. ✅ Ubuntu 환경에 JDK 설치spring boot를 배포하려면 java가 설치되어야한다. EC2 인스턴스에 접속해서 jdk를 설치하자.각자 필요한 jdk를 설치하면 되는데, 나는 jdk 17 버전 설치를 할 것이다. # root 권한 변경sudo su# jdk17 버전 설치 (그대로 2줄 복붙하면 됨)sudo apt update && /sudo apt install openjdk-17-jdk -y ✅ jdk가 잘 설치됐..
AWS EC2 인스턴스는 기본 할당된 퍼블릭 IP가 인스턴스를 중지했다 다시 시작하면 바뀐다.그래서 중지/재시작해도 변하지 않는 고정 IP가 필요해서 Elastic IP(탄력적 IP)를 설정해봤다.이 글은 EC2 인스턴스에 Elastic IP를 할당하고 연결하는 순서를 기록한다. ✅ 탄력적 IP가 왜 필요할까?EC2 인스턴스를 생성하면 IP를 할당받는다. 하지만 이렇게 할당받은 IP는 임시적인 IP이다. 위와 같이 EC2 인스턴스를 잠깐 중지시켰다가 다시 실행시켜보면 IP가 바뀌어있다. EC2 인스턴스를 중지시켰다가 다시 실행시킬 때마다 IP가 바뀌면 굉장히 불편하다.그래서 중지시켰다가 다시 실행시켜도 바뀌지 않는 고정 IP를 할당받아야 한다. 그게 바로 탄력적 IP이다. ✅ 탄력적 IP 설정 방법화..