ペットと家畜
サーバーを個別に管理する「ペット」から、使い捨て可能な「家畜」へ移行するインフラ運用の考え方
ペットと家畜とは
「ペットと家畜 (Pets vs Cattle)」は、サーバーの管理方針を表すメタファーだ。この比喩をクラウドの文脈に持ち込んで広めたのは Randy Bias で、本人が 2016 年に公開した来歴解説によれば、着想元は Bill Baker が SQL Server のスケール手法を論じた講演で使った例えであり、そこでの主題はクラウドではなくスケールアップとスケールアウトの対比だった。Bias は 2011 年から 2012 年頃にこれをクラウドの説明に読み替え、「家畜は破棄して差し替えられる、ペットは一意で代替できない」という点を前面に出した。定着したのはこの読み替え以降であり、比喩の核はスケール手法ではなく個体の使い捨て可否にある。
- ペット (Pets): 名前を付けて大切に育てるサーバー。
web-server-01、db-masterのように個別に管理し、障害が起きたら手動で修復する。サーバーが「病気」になったら「治療」する - 家畜 (Cattle): 番号で管理する使い捨てのサーバー。障害が起きたら破棄して新しいものを起動する。個体の識別は不要で、群れ全体の健康を管理する
ペットモデルの問題点
オンプレミス時代のペットモデルには、以下の構造的な問題があった。
- スノーフレークサーバー: 長期間の手動変更が蓄積し、同じ構成を再現できない「雪の結晶」状態になる。構築手順書があっても、暗黙の設定変更が反映されていない
- 障害復旧の遅延: サーバーの修復に数時間〜数日かかる。ハードウェア交換、OS 再インストール、アプリケーション設定の復元が必要
- スケールの限界: 負荷増加時に新しいサーバーを追加するのに数週間かかる (物理サーバーの調達、ラッキング、ネットワーク設定)
- 属人化: 特定のサーバーの設定を知っているのが 1 人だけ、という状況が生まれやすい
家畜モデルへの移行
クラウドの登場により、サーバーを API 1 つで起動・破棄できるようになった。これが家畜モデルを現実的にした。
| 観点 | ペット | 家畜 |
|---|---|---|
| 命名 | 個別の名前 (web-01) | 自動採番 (i-0a1b2c3d) |
| 障害対応 | 修復する | 破棄して再作成する |
| 構成管理 | 手動 + 手順書 | IaC (CloudFormation, Terraform) |
| スケーリング | 手動で追加 | Auto Scaling で自動 |
| 状態 | ローカルに保持 | 外部ストレージに分離 |
| 復旧時間 | 数時間〜数日 | 数分 |
家畜モデルの前提条件
家畜モデルを採用するには、以下の設計原則を満たす必要がある。
- ステートレス設計: アプリケーションサーバーにローカル状態を持たない。セッション情報は DynamoDB や ElastiCache に、ファイルは S3 に保存する
- IaC による再現性: サーバーの構成をコードで定義し、いつでも同一の環境を再作成できる
- ヘルスチェックと自動復旧: ロードバランサーのヘルスチェックで異常を検知し、Auto Scaling が自動的にインスタンスを入れ替える
- イミュータブルデプロイ: 既存サーバーを更新するのではなく、新しいサーバーを起動してトラフィックを切り替える
サーバーレスは「家畜」の究極形
Lambda はこの考え方の究極形だ。実行環境を意識する必要すらなく、コードを渡せばインフラが自動的にスケールする。サーバーの存在自体が抽象化され、「ペットか家畜か」という議論すら不要になる。
ペット (物理サーバー)
→ 家畜 (EC2 Auto Scaling)
→ 群れすら不要 (Lambda)
よくある誤解
「家畜モデル = サーバーを雑に扱ってよい」ではない。個々のサーバーは使い捨てだが、システム全体の信頼性は高く保つ必要がある。Auto Scaling の設定、ヘルスチェックの閾値、デプロイ戦略 (Blue/Green, Rolling) を適切に設計しなければ、家畜モデルでも障害は発生する。
また、データベースサーバーは完全な家畜にはなりにくい。RDS のマルチ AZ 構成はフェイルオーバーを自動化するが、データの永続性という性質上、コンピュートノードほど気軽に破棄・再作成はできない。
逆に「状態を持つなら必ずペット」も誤解だ。Kubernetes は 1.3 で状態を持つアプリケーション向けの機能を Pet Sets という名前で導入したが (1.5 で StatefulSet へ改称)、Bias はその例に挙がった Cassandra・Kafka・MongoDB がいずれも障害前提で設計された分散データストア = 家畜側だと指摘している。境界は状態の有無ではなく、個体が落ちても群れとして回り続けるよう設計されているかどうかだ。ペットに留まるのは、能動/受動の 1 組で冗長化した従来型のように、その 1 台 (または 1 組) を失えないシステムである。
Kief Morris の「Infrastructure as Code」(オライリー・ジャパン・邦訳 2017 年) は、ペットモデルの症状を「スノーフレークサーバー」として、家畜モデルの原則を「使い捨てにできるシステム」として、それぞれ節を立てて論じている。
ペットと家畜については関連書籍でも詳しく扱われている。
この記事は役に立ちましたか?
関連用語
Infrastructure as Code
インフラの構成をコードで定義し、バージョン管理 / 自動化 / 再現性を実現する手法
オートスケーリング
トラフィックや負荷に応じてコンピュートリソースを自動的に増減させる仕組み
サーバーレス
サーバーの管理をクラウドプロバイダーに委ね、コードの実行に対してのみ課金されるコンピューティングモデル
イミュータブルインフラストラクチャ
サーバーを変更せず、新しいイメージで丸ごと置き換えるインフラ運用手法
OpenAI
GPT や ChatGPT を開発する AI 研究 / 開発企業。生成 AI 普及の中心的存在
Cloud
インターネット経由でサーバーやストレージを必要な分だけ利用する形態
関連する記事
インフラ / クラウド本ガイド - AWS や Docker を本で学ぶ
クラウドインフラ、コンテナ、IaC を学べる技術書の選び方と学習順序を紹介。インフラ本の賞味期限問題と公式ドキュメントとの使い分けも解説します。
障害対応の夜に思い出す、あの本の 1 ページ
本番障害の緊迫した場面で、過去に読んだ技術書の知識が助けてくれた経験はありませんか。「いつか役立つ」知識が「今この瞬間」に変わる読書の価値を考えます。
AWS 本の選び方 - 全体像 / 構築 / 設計 / 運用 / セキュリティの 5 視点
AWS を学ぶ技術書の選び方を「全体像 / 構築 / 設計 / 運用 / セキュリティ」の 5 視点で整理。公式ドキュメントと本の役割分担、資格対策書の位置づけまで、2026 年 8 月時点の定番書で AWS 独学のルートを解説します。