고가용성 및 자동화

인프라를 확장하십시오. Ansible 을 사용하여 웹 서버 프로비저닝을 자동화하고, 로드 밸런싱을 위해 HAProxy 를 배포하며, 가상 IP 장애 조치를 위해 Keepalived 를 구현합니다.

DevOps EngineerAnsibleDevOpsLinux

💡 이 튜토리얼은 영어로 번역되었습니다. 원본을 보려면 영어로 전환

소개

자동화와 가용성은 반복 가능한 프로비저닝, 트래픽 분산, 안정적인 서비스 주소, 프로세스 중단 시 복구라는 서로 다른 메커니즘에 의존합니다. 이 프로젝트는 단일 Linux 호스트에서 각 요소를 구성해 연동 방식을 보여 줍니다.

로컬 Ansible Playbook으로 Nginx를 구성하고, HAProxy로 준비된 두 Backend에 요청을 분산하고, Keepalived로 Virtual IP를 할당하고, Bash Watchdog으로 Nginx 복구를 예약합니다. 단일 노드 한계도 명확히 다룹니다.

학습 내용

  • Nginx 설치·시작·구성을 위한 로컬 Ansible Inventory, Template, Playbook 만들기
  • HAProxy를 HTTP 모드, Frontend 80, Backend 8001·8002 Round Robin으로 구성하기
  • 반복 요청으로 두 준비된 Backend 응답이 HAProxy를 통해 도달하는지 확인하기
  • Default Route Interface를 찾고 VIP 10.0.0.100의 Keepalived VI_1 MASTER 정의하기
  • Keepalived를 시작하고 로컬 Interface의 /32 Virtual IP 확인하기
  • 실행 가능한 Nginx Watchdog을 만들고 날짜가 있는 복구 로그를 남기며 Root Crontab에서 매분 실행하기

추천 대상

Ansible, HAProxy, Keepalived, Bash, Cron을 결합할 준비가 된 DevOps 및 Linux 학습자에게 적합합니다.

선수 지식: Linux 패키지·서비스, YAML, 기본 Ansible Play, HTTP Proxy, Interface와 VIP, 셸 조건, Crontab에 익숙해야 하는 평가형 프로젝트입니다.

학습 환경: sudo, Ansible, Nginx, HAProxy, Keepalived, Cron, 준비된 로컬 HTTP Backend 두 개와 네트워크가 있는 브라우저 기반 단일 노드 Linux이며 클라우드나 추가 서버는 필요하지 않습니다.

자주 묻는 질문

Ansible이 실제 서버 Fleet을 프로비저닝하나요?

아니요. Inventory는 로컬 호스트만 대상으로 합니다. 실제 Playbook으로 Package, File, Service를 관리하지만 다중 호스트 SSH는 시험하지 않습니다.

HAProxy Backend는 별도 머신인가요?

아니요. 로컬 8001과 8002에서 준비된 서비스가 동작합니다. HAProxy는 80에서 수신하고 양쪽 응답을 확인합니다.

Keepalived가 두 노드의 실제 Failover를 보여 주나요?

아니요. 단일 MASTER와 VIP 10.0.0.100만 검증하며 BACKUP, VRRP 인계, Failback은 없습니다.

자동 복구는 무엇을 재시작하나요?

Nginx만 확인하고 시작하며 /var/log/nginx_recovery.log에 기록하고 Root로 매분 실행합니다. HAProxy, Keepalived, 원격 노드, 앱 상태는 감시하지 않습니다.

강사

labby
Labby
Labby is the LabEx teacher.