FIG-108

Immutable Infrastructure — 直さずに、丸ごと取り替える

インフラ 2026.09.28 公開 読了 約10分

動いているサーバーに、パッチを当てたり設定を書き換えたりして直しながら使い続ける。昔ながらのこのやり方は、長く続けるほどサーバーごとに中身が少しずつずれていくという問題を抱えています。

Immutable Infrastructure(イミュータブルインフラ)は、「動いているサーバーは一切いじらない」と決めるやり方です。変えたいときは、新しい中身で丸ごと作り直して、入れ替える。車でいえば、走りながら修理するのではなく新車に乗り換える運用です。図1で2つのやり方を切り替え、同じ出来事を起こしてみてください。

IMMUTABLE — 変更のたびに「中身の履歴」がサーバーごとにずれるか、そろうか
🏭 イメージ工場 変更はここで焼き込む
v1
v2
v3
v4
v5
server-1
server-2
server-3
中身の違うサーバー 1 種類
動いているサーバーへのログイン 0 回
いまの状態を説明できるもの 最初の手順書
図1 — 色つきの帯は、そのサーバーに加えられた変更の履歴。帯の並びが違えば、中身が違う

直し続けたサーバーは「一点もの」になる

「直しながら使う」で出来事を起こすと、3台の帯の並びがだんだん食い違っていきます。パッチが1台だけ途中で失敗したり、緊急対応で1台だけ設定を直したりするからです。こうして誰にも正確に再現できなくなったサーバーを、雪の結晶にたとえてスノーフレークサーバーと呼びます。

一番困るのは「1台が壊れた」ときです。作り直そうにも、手元にあるのは最初に構築したときの手順書だけ。その後に積み重ねた変更は記録に残っていないので、新しい1台だけ中身が違うことになります。「前のサーバーでは動いていたのに」という障害は、たいていここから生まれます。

変更は工場で焼き込み、現場では取り替えるだけ

「丸ごと取り替える」では、変更は必ずイメージ工場で行います。パッチを当てたOSやアプリを1つのイメージ(マシンイメージやコンテナイメージ)に焼き込み、そのイメージから新しいサーバーを作って、古いものと入れ替えます。動いているサーバーにはログインすらしません。

だから3台はいつも同じイメージから生まれた、同じ中身です。壊れた1台を作り直しても、同じイメージから作るのでまったく同じになります。問題が出たら、1つ前のイメージで作り直せば元どおり。「元に戻す手順」を考える必要がありません。

その代わり、どんな小さな変更でもイメージを作り直して入れ替える手間がかかります。これを現実的にしてくれるのが、IaCやCI/CDによる自動化と、コンテナのように数秒で作れる軽い入れ物です。

用語ミニ辞書
Mutable
「変更できる」。動いているサーバーに手を入れて、直しながら使い続けるやり方。
Immutable
「変更しない」。一度作ったサーバーはいじらず、変えるときは新しく作って取り替えるやり方。
イメージ
OSやアプリ、設定をまとめて焼き込んだ型。同じイメージからは同じサーバーができる。
スノーフレーク
手作業の変更が積み重なり、ほかと微妙に違う一点ものになってしまったサーバー。
構成ドリフト
本来そろっているはずの複数のサーバーの中身が、少しずつずれていくこと。

まとめ

直しながら使うサーバーは、変更が積み重なるほど中身がずれて、再現できなくなります。Immutable Infrastructure は動いているものに手を入れず、変更はイメージに焼き込んで丸ごと取り替えます。全台がいつも同じ中身になり、壊れても戻したくてもイメージから作り直すだけで済むのです。