서버 정전 대비 자동 복구 설정하기

사무실 서버를 운영하면 정전을 피할 수 없다. 주말에 건물 전기 점검으로 전원이 나간 적이 있는데, 월요일 아침에 출근해보니 서버가 꺼져 있었다. 서비스 전부 다운. 원격으로 켤 수도 없어서 직접 전원 버튼을 눌러야 했다. 그 뒤로 자동 복구를 세팅해뒀고, 이후에는 정전이 와도 전기 복구 후 알아서 서버가 켜지고 서비스까지 올라온다. BIOS 설정: 전원 복구 시 자동 부팅 서버나 PC의 BIOS에 “AC Power Recovery” 또는 “After Power Loss” 같은 옵션이 있다. 보통 세 가지 중 하나를 선택할 수 있다: ...

2025년 5월 10일 · 3 분 · Salmonholic

Elasticsearch + Kibana 모니터링 스택 구축하기

서버 로그를 grep으로 뒤지는 건 한두 대일 때나 가능하다. 서비스가 늘어나면 로그를 한 곳에 모아서 검색하고 시각화할 수 있는 환경이 필요하다. ELK 스택(Elasticsearch + Logstash + Kibana)이 업계 표준인데, 작은 규모에서는 Logstash 대신 Filebeat만 써도 충분하다. Docker로 띄우면 설치 자체는 30분이면 끝난다. Docker Compose 설정 version: "3.8" services: elasticsearch: image: docker.elastic.co/elasticsearch/elasticsearch:8.12.0 environment: - discovery.type=single-node - xpack.security.enabled=false - "ES_JAVA_OPTS=-Xms512m -Xmx512m" volumes: - es-data:/usr/share/elasticsearch/data ports: - "9200:9200" restart: unless-stopped healthcheck: test: curl -s http://localhost:9200 >/dev/null || exit 1 interval: 30s timeout: 10s retries: 5 kibana: image: docker.elastic.co/kibana/kibana:8.12.0 environment: - ELASTICSEARCH_HOSTS=http://elasticsearch:9200 ports: - "5601:5601" depends_on: elasticsearch: condition: service_healthy restart: unless-stopped volumes: es-data: xpack.security.enabled=false는 개발/내부용으로 쓸 때 편하려고 끈 거다. 외부에 노출한다면 반드시 켜야 한다. ...

2025년 4월 18일 · 2 분 · Salmonholic

Redis를 Docker로 빠르게 구축하기

API 응답이 느려서 캐시를 붙여야 하는 상황이 왔다. Redis가 가장 무난한 선택이었는데, 서버에 직접 설치하면 버전 관리도 귀찮고 나중에 지울 때도 깔끔하지 않다. Docker로 띄우면 한 줄이면 되고, 안 쓸 때 컨테이너만 지우면 끝이라 편하다. 기본 실행 가장 간단한 방법: docker run -d --name redis \ -p 6379:6379 \ redis:7-alpine 끝이다. 이것만으로 Redis 서버가 돌아간다. 접속 테스트: docker exec -it redis redis-cli 127.0.0.1:6379> ping PONG 127.0.0.1:6379> set hello "world" OK 127.0.0.1:6379> get hello "world" 근데 이렇게 쓰면 컨테이너가 죽을 때 데이터가 다 날아간다. 캐시 용도라면 상관없지만, 세션 스토어 같은 걸로 쓸 때는 데이터를 보존해야 한다. ...

2025년 3월 25일 · 2 분 · Salmonholic

Docker Compose로 사내 서버 관리하기

회사에서 자체 서버를 운영하다 보면 서비스가 하나둘 늘어난다. 처음에는 docker run 으로 하나씩 띄우다가, 어느 순간 컨테이너가 10개를 넘기면서 관리가 안 되기 시작했다. 어떤 컨테이너가 어떤 포트를 쓰는지, 볼륨은 어디에 마운트했는지, 환경변수는 뭘 넣었는지… 결국 Docker Compose로 전부 옮기고 나서야 숨통이 트였다. 기본 구조 잡기 프로젝트 루트에 docker-compose.yml 하나면 된다. 우리 팀은 보통 이런 식으로 구성한다: /srv/ ├── docker-compose.yml ├── .env ├── nginx/ │ └── conf.d/ ├── data/ │ ├── postgres/ │ ├── redis/ │ └── minio/ └── logs/ docker-compose.yml 기본 뼈대는 이렇다: ...

2025년 3월 5일 · 3 분 · Salmonholic

ComfyUI를 Docker로 설치하는 방법 (RTX 4090 + Ubuntu)

RTX 4090이 장착된 Ubuntu 서버에서 ComfyUI를 Docker로 돌리기까지 꽤 삽질을 했다. 공식 문서대로 하면 될 줄 알았는데, NVIDIA Container Toolkit 설정부터 VRAM 관련 이슈까지 여러 가지 걸림돌이 있었다. 같은 환경에서 작업하는 분들을 위해 처음부터 끝까지 정리해본다. 사전 준비 먼저 확인해야 할 것들이 있다. NVIDIA 드라이버가 제대로 설치되어 있는지 확인하자. nvidia-smi 여기서 RTX 4090이 잡히고, 드라이버 버전이 535 이상이면 된다. 만약 드라이버가 없거나 버전이 낮으면 먼저 드라이버부터 업데이트해야 한다. Docker도 설치되어 있어야 한다. 없으면 공식 문서 따라서 설치하면 되는데, Ubuntu 22.04 기준으로는 이렇게 한다: ...

2024년 12월 15일 · 3 분 · Salmonholic