Docker 썸네일형 리스트형 도커(Docker)로 파이썬 에이전트 24시간 무중단 가동하기 1. 도입 및 배경 (Why?) 💡우리가 만든 파이썬 에이전트가 훌륭하게 작동하더라도, 터미널 창을 닫으면 종료되거나 서버 재부팅 시 수동으로 다시 켜야 한다면 '자동화'라고 부르기 민망합니다. 😅진정한 시니어 개발자는 **도커(Docker)**를 사용합니다.도커는 내 프로그램을 하나의 **'독립된 방(Container)'**에 가두어, 어떤 환경에서도 동일하게 작동하고 서버가 켜질 때마다 자동으로 실행되게 만듭니다. 오늘 이 과정을 통해 에이전트에 불사(不死)의 생명력을 불어넣어 보겠습니다.2. 시스템 구성도 (What?) 🏗️에이전트가 컨테이너라는 보호막 안에서 외부(MSSQL, Slack)와 통신하며 주기적으로 임무를 수행하는 구조입니다.Plaintext [ Host OS (Linux) ].. 더보기 리눅스 서버의 숨은 해결사: Logrotate로 디스크 풀(Full) 완벽 방지하기 1. 도입 및 배경 (Why?)서버를 운영하다 보면 분명 어제까진 멀쩡하던 서비스가 갑자기 죽는 경우가 있음. 원인을 파악하려 로그를 보려 해도 No space left on device 에러만 출력되며 터미널조차 제대로 작동하지 않음.범인은 대개 **'로그 파일'**임. 서비스가 내뿜는 로그가 무한정 쌓여 디스크 전체를 점령해버린 것임. 이때 필요한 것이 바로 Logrotate임. 오래된 로그는 압축하고, 더 오래된 로그는 삭제하여 서버의 '숨통'을 틔워주는 필수 관리 도구임.2. 시스템 작동 구조 (What?)Logrotate는 백그라운드에서 주기적으로 실행되며 아래와 같은 워크플로우를 가짐.Plaintext [Active Log: app.log] --(기준 충족: 크기/날짜)--> [Rotate: .. 더보기 리눅스 모니터링 심화: Prometheus & Grafana 컨테이너 구축 1. 도입 및 배경서버 운영의 기본은 안정성이며, 특히 CPU, Memory, Disk 등의 리소스 사용량을 실시간으로 모니터링하는 것이 중요함.Prometheus는 시계열 데이터베이스로 메트릭을 수집하고 저장하며, Grafana는 이를 멋진 대시보드로 시각화하는 강력한 모니터링 도구임.2. Prometheus & Grafana 작동 구조도 (인포그래픽)3. 실전 구축 로그 (Implementation Log)이전에 정리한 [Docker 필수 명령어 및 컨테이너 관리] 포스팅을 참고하여 컨테이너를 운용함.**■ Step 1: Nginx 컨테이너 사전 준비 (HTTP 80) ** 최초 인증서 발급을 위해서는 Let's Encrypt 서버가 내 Nginx 서버의 80포트에 접속할 수 있어야 함.YAML # .. 더보기 리눅스 보안 심화: Fail2Ban으로 무차별 대입 공격(Brute Force) 차단하기 1. 도입 및 배경서버 운영의 기본은 보안이며, 특히 SSH(22포트)는 해커들의 주 공격 대상임.Fail2Ban은 실시간 로그 분석을 통해 무차별 대입 공격을 시도하는 IP를 자동으로 방화벽(UFW)에 등록하여 차단하는 강력한 보안 도구임.2. Fail2Ban 작동 구조도 (인포그래픽)3. 실전 구축 로그 (Implementation Log)이전에 정리한 [Docker 필수 명령어 및 컨테이너 관리] 포스팅을 참고하여 컨테이너를 운용함.**■ Step 1: Nginx 컨테이너 사전 준비 (HTTP 80) ** 최초 인증서 발급을 위해서는 Let's Encrypt 서버가 내 Nginx 서버의 80포트에 접속할 수 있어야 함.YAML # Fail2Ban 컨테이너 예시 (또는 docker run)versio.. 더보기 Docker-Compose: 복잡한 서버 설정을 코드 한 줄로 관리하기 1. 도입 및 배경지금까지 docker run 명령어를 일일이 입력하며 Nginx나 Certbot을 띄웠음.명령어가 길어질수록 오타 위험이 크고, 서버 재부팅 시 수동으로 다시 올리는 번거로움이 발생함.Docker-Compose는 여러 컨테이너(웹 서버, DB, 자동화 에이전트 등)의 설정을 yaml 파일 하나에 정의하여 **'인프라의 코드화(IaC)'**를 실현함.2. 가상 시나리오: 다중 컨테이너 운영 구조도우리가 구축할 시스템은 단순히 웹 서버 하나가 아닙니다. 아래와 같이 유기적으로 연결된 구조를 갖게 됩니다.Nginx: 외부 손님을 맞는 대문 (SSL 보안 적용)Blogger Agent: 사용자님이 만든 파이썬 기반 자동 포스팅 엔진Redis/DB: 포스팅 상태나 데이터를 임시 저장하는 창고3... 더보기 Ubuntu Server - Nginx 컨테이너 HTTPS(SSL) 적용 및 Let's Encrypt 자동 갱신 1. 도입 및 배경서버 운영의 기본은 보안이며, 모든 웹 서비스는 HTTP(80)가 아닌 **HTTPS(443)**로 서비스되어야 함.Docker 환경에서 Nginx를 리버스 프록시로 사용할 때, 무료 SSL 인증서 기관인 Let's Encrypt를 활용하여 인증서를 발급받고 자동 갱신하는 과정을 기록함.윈도우 서버 IIS의 SSL 인증서 등록 방식과 비교해 볼 때, 리눅스 Docker 환경은 스크립트 기반으로 훨씬 유연한 자동화가 가능함.2. Nginx 컨테이너 HTTPS 구조도 (인포그래픽)[가상 인포그래픽] Nginx 컨테이너 HTTPS 구축 및 Let's Encrypt 인증서 발급 흐름도 3. 실전 구축 로그 (Implementation Log)이전에 정리한 [Docker 필수 명령어 및 컨테이너.. 더보기 Ubuntu Server - Docker 설치 및 컨테이너 기초 환경 구축 1. 도입 및 목적애플리케이션(웹 서버, DB, 에이전트 등)을 OS와 격리된 환경에서 쉽고 빠르게 실행하기 위함.venv가 파이썬 환경만 격리한다면, Docker는 OS 커널 레벨에서 애플리케이션 실행에 필요한 모든 파일(라이브러리, 의존성 등)을 이미지로 만들어 격리함.서버 이전이나 확장 시 환경 설정의 번거로움을 원천 차단하는 것이 핵심 목표.2. 아키텍처 비교 (Hypervisor vs Container)나중에 헷갈리지 않게 가상화 방식의 차이점을 텍스트 아트로 정리해 둠. Docker가 왜 가벼운지 직관적으로 파악 가능.Plaintext [Virtual Machine (VM)] [Container (Docker)] │ .. 더보기 이전 1 다음