본문 바로가기

분류 전체보기134

[DevOps] Blue-Green 전략으로 무중단 배포 하기 어떻게하면 배포 과정에서 발생할 수 있는 리스크를 최소화하고, 안정적인 서비스를 유지할까? 에 대한 고민으로 무중단 배포가 떠올랐습니다.Blue-Green 배포는 무중단 배포중 하나로 널리 사용됩니다.1. Blue-Green 배포란?Blue-Green 배포는 두 개의 환경(Blue와 Green)을 운영하여, 새 버전의 애플리케이션을 하나의 환경에서 배포하고, 트래픽을 다른 환경으로 전환하는 방식입니다. 이 방법을 통해 사용자는 서비스 중단 없이 새 버전으로 업그레이드할 수 있습니다.Blue 환경: 현재 서비스 중인 기존 애플리케이션이 실행되고 있는 환경Green 환경: 새 버전의 애플리케이션이 배포된 새로운 환경배포 절차는 매우 간단합니다:Green 환경에 새 버전 배포: Green 환경에 새 애플리케이.. 2025. 4. 19.
[DevOps] CI/CD란? 개발부터 배포까지 자동화의 핵심 CI/CD란?CI/CD는 "지속적인 통합(Continuous Integration)"과"지속적인 전달 또 배포 (Continuous Delivery / Deployment)"를 의미합니다.복잡하고 반복적인 "배포" 과정을 자동화하여더 빠르고 안정적인 소프트웨어 개발 주기를 가능하게 해줍니다.🔧 용어 간단 정리 약어의미설명CIContinuous Integration개발자가 작성한 코드를 자주 통합하고, 테스트까지 자동화하는 과정CD (1)Continuous Delivery테스트를 마친 코드를 자동으로 배포 가능한 상태까지 준비CD (2)Continuous Deployment준비된 코드를 자동으로 운영 환경까지 배포하는 단계 CI/CD가 필요한 이유✅ 수동 배포의 불안정성 해결✅ 버그를 빠르게 발견하고 수.. 2025. 4. 19.
[NGINX]Nginx에서 로드밸런서 사용하기 Feat. HTTPS 웹 트래픽이 늘어나면서, 하나의 서버만으로 감당할 수 없는 상황이 종종 발생합니다. 이때 필요한 것이 바로 로드밸런싱(Load Balancing) 입니다.Nginx는 가볍고 빠른 성능 덕분에 리버스 프록시 서버이자 로드밸런서로 많이 사용됩니다 로드밸런싱이란?여러 서버(백엔드 서버, 앱 서버)에 클라이언트 요청을 분산시켜주는 방식로드밸런서를 통해 다음과 같은 효과를 얻을 수 있습니다:✅ 성능 향상: 부하 분산으로 서버 과부하 방지✅ 확장성: 백엔드 서버를 쉽게 늘릴 수 있음✅ 고가용성: 하나의 서버가 죽어도 서비스 지속 가능Nginx 설정 예시 (nginx.conf)http { upstream backend_servers { server 127.0.0.1:8081; serve.. 2025. 4. 19.
[Nginx] Lua로 JWT 인증 처리하기 – API Gateway에 인증 붙이기 feat. Lua 와 JWT로 사용자 정보 받아오기 왜 Lua + Nginx로 인증을 처리할까?보통 JWT 인증은 백엔드(Spring 등) 에서 처리하지만,Nginx에서 요청을 받기 전에 인증을 미리 처리하면: ✅ 불필요한 부하 감소인증 실패 요청을 사전에 차단✅ 보안 향상API Gateway에서 인증을 처리하므로, 각 서비스에서 인증 로직 중복을 줄여 백엔드 로직을 간단하게 유지✅ API Gateway 성능 최적화 가능특히 마이크로서비스에서 API Gateway를 사용하는 경우 매우 유용합니다.준비사항OpenResty 또는 Lua 모듈이 포함된 NginxLua 모듈 설치resty.jwt Lua 라이브러리luarocks install lua-resty-jwt Nginx + Lua JWT 인증 흐름 단계 설명 1. Spring Boot 서버에서 JWT .. 2025. 4. 19.
[NGINX] Upstream과 API Gateway의 핵심 개념과 연관관계 마이크로서비스 아키텍처, 그리고 API Gateway마이크로서비스(MSA) 구조에서는 각 기능이 독립된 서비스로 존재합니다.그러다 보니 클라이언트는 수많은 API 경로를 알아야 하고,인증, 로깅, 라우팅 같은 기능도 매번 구현해야 하죠.그래서 등장한 것이 바로 API Gateway입니다.모든 API 요청을 한 곳에서 받고,라우팅, 인증, 속도제한, 로깅 등을 처리한 뒤해당하는 서비스에 요청을 전달합니다.🧩 Nginx를 API Gateway로?Nginx는 고성능 웹 서버이자 Reverse Proxy 기능도 제공하기 때문에,API Gateway 역할로도 매우 적합합니다.🔗 리버스 프록시와 API Gateway의 연관관계두 개의 공통점:요청을 중계하고 라우팅하는 역할보안, 로드 밸런싱 등의 기능 수행 가능.. 2025. 4. 19.
[Nginx] 환경변수 설정하고 사용하는 방법 docker- .env , Lua , 템플릿 렌더링(envsubst) 1. Nginx는 왜 환경변수 사용이 어려울까?Nginx는 C로 작성된 고성능 웹 서버이기 때문에, 일반적인 쉘 환경 변수처럼 $ENV_VAR를 직접 인식하지 못합니다.# ❌ 이렇게 쓰면 안됨proxy_pass http://$BACKEND_URL;Nginx는 $BACKEND_URL을 자체 변수로 해석하려 하기 때문에, 제대로 동작하지 않습니다.2. Nginx에서 환경변수 사용하는 방법 4가지📌 방법 1: env 지시어 (정적인 값 전달)Nginx 메인 설정 (nginx.conf)의 main context에서 사용할 환경변수를 명시해줘야 합니다.# nginx.conf (최상단에 선언)env BACKEND_URL;http { server { location / { pr.. 2025. 4. 19.