실서비스 배포를 위한 EC2 도메인 연결 & HTTPS 적용 단계별 정리
·
DevOps
1️⃣ 개요AWS EC2에 배포된 Spring Boot 서버는 기본적으로 IP 주소(http://13.124.xxx.xxx:8080)를 통해서만 접근할 수 있다. 그러나 IP는 가독성이 떨어지고, 서비스 브랜드를 식별하기 어렵다는 문제가 있다. 또한 단순한 HTTP 통신은 암호화되지 않아 중간자 공격(MITM), 세션 탈취, 쿠키 노출 등의 보안 취약점이 존재한다.이 문제를 해결하기 위해 다음 두 가지를 적용한다:도메인 연결사용자가 기억하기 쉬운 고유 주소(bbangzip.store)로 접속 가능여러 서브도메인(API, admin 등) 관리 용이HTTPS(SSL/TLS) 적용모든 트래픽을 암호화하여 안전하게 전송비밀번호, 토큰, 세션 정보 등의 유출 방지브라우저 경고(“안전하지 않음”) 제거SEO(검색엔..
무중단 배포 전략 총정리(Blue-Green, Rolling, Canary)
·
DevOps
CI/CD 파이프라인을 구축한 이유는 코드 변경을 빠르고 안전하게 운영 서버에 반영하고 싶었고, 수작업으로 배포를 진행하는 것이 너무 번거로웠기 때문이다. 하지만, 배포가 끝났음에도 불구하고 로컬에서는 잘 작동하던 코드가 서버에 반영되면서 여러 문제에 부딪히게 되었고 따라서 "사용자에게 들키지 않는 배포", 무중단 배포에 대해서 공부해야할 필요성을 느끼게 되었다.🏗️ 기본 용어 정리🧪 수직 확장(Scale Up) vs 수평 확장(Scale Out)부터 이해하자🔸 수직 확장 (Vertical Scaling / Scale Up)하나의 좋은 서버를 이용✅ 장점- 구현이 간단함- 기존 애플리케이션 수정 불필요- 데이터 일관성 보장 쉬움⚠️ 단점- 하드웨어 성능의 한계 존재- 비용이 기하급수적으로 증가- 단..
Nginx 제대로 이해하고 써보기
·
DevOps
nginx는 웹 서버(Web Server) 소프트웨어로, 가벼움과 높은 성능을 목표로 한다. 웹 서버, 리버스 프록시 및 메일 프록시 기능을 포함한다.📌 기본적인 용어 정리✅ 웹 서버와 WAS구분Web ServerWAS (Web Application Server)정의정적 콘텐츠(HTML, CSS, JS 등)를 처리하는 서버동적 콘텐츠(비즈니스 로직 실행, DB 처리 등)를 처리하는 서버역할클라이언트 요청을 정적으로 응답 또는 프록시 전달서블릿/JSP 등 동적인 요청을 처리예시Nginx, Apache HTTP ServerTomcat, Jetty, JBoss, WebLogic보통 웹 서비스는 클라이언트 → 웹 서버 → WAS → DB 로 요청이 되고, DB → WAS → 웹 서버 → 클라이언트 순서대로 응..
JAR 하나로 끝내는 GitHub Actions 기반 무중단 배포 실습
·
DevOps
Docker나 deploy.sh 없이 정말 간단하게 GitHub Actions만으로 자동 배포를 구현해보고 싶었다.그냥 CI/CD 개념과 GitHub Actions에 대해서 공부해보고 싶었달까 .... ㅎㅎ 따라서 복잡한 도구 없이 .jar 하나로 EC2에 Spring Boot 앱을 배포할 수 있을까? 하는 생각으로 시작했다.application-prod.yml은 Secrets로 관리하고빌드된 JAR 파일은 scp-action으로 EC2에 전송ssh-action으로 기존 프로세스를 종료하고 새로 실행그리구 다음과 같은 방식으로 시도했다.🚀 GitHub Actions 기본 개념 정리1. GitHub Actions란?GitHub Actions는 코드 변경(pull request, push 등)이 발생할 때..