☁️ 🏗️

클라우드/인프라 엔지니어가 되는 과정을 기록합니다.

nginx 5

[17] "숫자말고 이름으로 부르기" - 도메인 연결부터 HTTPS까지

키워드 : HTTPS, SSL/TLS, Cloudflare, DNS, NS, Certbot, Let's Encrypt지금까지 홈서버에 접속하려면 `http://211.xxx.xxx.xxx` 처럼 공인 IP를 직접 입력해야 했다.완성도도 떨어져보일뿐더러,무엇보다 HTTP만 쓰니 안전하지 않다. 이전 프로젝트에서 배포를 위해 `waggle-waggle.com` 이라는 도메인을 구매했었다.홈서버를 위해 새로 살까 고민했지만.. 비용도 비용이고해서 재활용하기로 했다.이번 글에서는 기존에 가지고 있던 도메인을 홈서버에 연결하고, HTTPS까지 적용하려고 한다.도메인 연결을 위해서는 HTTPS가 필요한 건가? ❌이전에는 도메인 연결을 위해 HTTPS가 필요한거고,때문에 대부분의 실습에서 이를 함께 진행하는 것이라 ..

[16] "배포 중에도 에러율 0%" - Jenkins Blue/Green 무중단 배포 🚦

키워드 : 무중단배포, Blue/Green, nginx upstream, k6, CI/CD, JenkinsBlue/Green 구현무중단 배포 방식은 여러 가지다.Rolling처럼 컨테이너를 하나씩 교체하는 방법도 있고,Canary처럼 트래픽 일부만 새 버전으로 흘리는 방법도 있다.그 중에서 Blue/Green을 고른 건 단순함 때문이었다. 구버전과 신버전의 완전한 분리전환은 nginx upstream 한 줄로 끝롤백도 마찬가지.Github Actions가 아닌 Jenkins를 고르고 설치한 위치, Blue/Green을 고른 이유, 전체 워크플로 설계 과정은 이전 글에서 다뤘다. 이번 편에서는 앞서 [15]에서 갖춰둔 Jenkins 컨테이너를 바탕으로Blue/Green 배포를 직접 구현하고,k6를 통해 ..

[8] "한 줄이면 뜰 줄 알았지...🤦‍♂️" - 5가지 배포 트러블슈팅

키워드 : Docker Network, SPA, CORS, localhost, DNS [7]편에서 Dockerfile, docker-compose.yml, nginx.conf를 모두 작성했다.이제 docker compose up --build 한 줄이면 뜰 것 같았는데...! 여러 에러들이 발생했다...이번 편은 실제 배포 과정에서 맞닥뜨린 에러 5개를 기록한다. 각각 왜 터졌는지 → 어떻게 고쳤는지 순서로 정리한다.📋 현재 상황 배포 완료 후 트래픽 흐름은 아래와 같다.외부 브라우저 ↓ HTTP :80공유기 (포트포워딩 80 → 갤북:80) ↓Galaxy Book (Ubuntu)└── Docker Compose (app-network) ├── nginx:alpine ←..

[7] 내 첫 앱 홈서버 상륙기 by Docker Compose 🚀

키워드 : Docker Compose, Container, Reverse Proxy 완성 아키텍처 🐳 Docker Compose를 쓰는 이유?[6]에서 Docker로 nginx를 컨테이너에 감싸 띄워봤다.이제 실제 애플리케이션을 배포하려고 한다.하지만 실제 서비스는 [6]의 실습처럼 하나의 컨테이너로 끝나지 않는다!Spring Boot 애플리케이션, Nginx, MySQL그리고 이후 모니터링을 위한 Prometheus, Grafana까지... 이때 하나의 컨테이너에는 하나의 프로세스만 담아야 한다.Docker의 핵심 철학 중 하나 단일 책임 원칙 때문덕분에 각 서비스를 독립적으로 관리하고, 교체하고, 스케일할 수 있다.하지만 컨테이너가 여러 개가 되는 순간 문제가 생긴다.각각을 docker run으..

[6] "홈서버로 뭐하지?" - Docker로 서비스 올리기 🐳

키워드 : 가상화, Hypervisor, VM, Container, Port Binding, Reverse Proxy, nginx 완성 아키텍처 포트포워딩으로 외부 접속까지 뚫었다.이제 어디서든 홈서버에 SSH로 접속할 수 있게 되었지만,아직 막상 홈서버가 하는 일은 아무 것도 없다. 당장 홈서버의 진짜 목적은 내가 만든 애플리케이션을 서빙하는 것. 우선 가장 기본적인 웹서버인 nginx부터 올려보자. 그냥 apt install nginx 하면 되나? 맞긴 한데,앞으로 홈서버에 올릴 서비스들을 생각해보면 이야기가 달라진다. nginx, certbot, mysql, grafana, prometheus, ... 동작하는 서비스가 늘어날수록 버전 충돌, 설정 꼬임 등 문제가 생긴다.때문에 격리된 환경해서 실행..