高可用性と自動化

インフラストラクチャをスケールアップします。Ansible を使用して Web サーバーのプロビジョニングを自動化し、HAProxy をロードバランシングのためにデプロイし、Keepalived を仮想 IP フェイルオーバーのために実装します。

DevOps EngineerAnsibleDevOpsLinux

💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください

はじめに

自動化と可用性は、再現可能な構築、トラフィック分散、安定したサービスアドレス、プロセス停止時の復旧という別々の仕組みに依存します。このプロジェクトでは、1 台の Linux ホスト上で各仕組みを設定し、組み合わせを確認します。

ローカル Ansible Playbook で Nginx を構築し、HAProxy で準備済み Backend 2 つへ分散し、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、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、遠隔ノード、アプリ健康状態は監視しません。

講師

labby
Labby
Labby is the LabEx teacher.