自動化と可用性は、再現可能な構築、トラフィック分散、安定したサービスアドレス、プロセス停止時の復旧という別々の仕組みに依存します。このプロジェクトでは、1 台の Linux ホスト上で各仕組みを設定し、組み合わせを確認します。
ローカル Ansible Playbook で Nginx を構築し、HAProxy で準備済み Backend 2 つへ分散し、Keepalived で Virtual IP を付与し、Bash Watchdog で Nginx 復旧を定期実行します。単一ノードの限界も明示します。
学習内容
- Nginx を導入・起動・設定するローカル Ansible Inventory、Template、Playbook を作る
- HAProxy を HTTP モード、Frontend
80、Backend8001と8002の round robin で設定する - 反復要求で両方の準備済み Backend 応答が HAProxy 経由で届くことを確認する
- Default Route Interface を特定し、VIP
10.0.0.100の KeepalivedVI_1MASTER を定義する - Keepalived を起動し、ローカル Interface 上の
/32Virtual IP を確認する - 実行可能な Nginx Watchdog を作り、日付付き復旧ログを追記し、Root Crontab で毎分実行する
このコースの対象者
Ansible、HAProxy、Keepalived、Bash、Cron を組み合わせたい DevOps・Linux 学習者向けです。
前提知識: Linux パッケージとサービス、YAML、基本 Ansible Play、HTTP Proxy、Interface と VIP、Shell 条件、Crontab。評価型プロジェクトです。
学習環境: sudo、Ansible、Nginx、HAProxy、Keepalived、Cron、準備済みローカル HTTP Backend 2 つを備えたブラウザー対応単一ノード Linux。クラウドや別サーバーは不要です。
よくある質問
Ansible は実際のサーバー群を構築しますか?
いいえ。Inventory はローカルホストだけです。Package、File、Service を実際の Playbook で管理しますが、複数ホスト SSH は試験しません。
HAProxy Backend は別マシンですか?
いいえ。準備済みサービスがローカルの 8001 と 8002 で動きます。HAProxy は 80 で待受し、両方の応答を確認します。
Keepalived は 2 ノード間の実際の Failover を示しますか?
いいえ。1 つの MASTER と VIP 10.0.0.100 を確認するだけで、BACKUP、VRRP 引継ぎ、Failback はありません。
自動復旧は何を再起動しますか?
Nginx だけです。/var/log/nginx_recovery.log に記録して Root で毎分動きますが、HAProxy、Keepalived、遠隔ノード、アプリ健康状態は監視しません。





