コンフィグ管理 こんふぃぐかんり
簡単に言うとこんな感じ!
ネットワーク機器やサーバーの「設定ファイル(コンフィグ)」を、いつ・誰が・どう変えたかを記録・管理することだよ。家の電気配線図を最新状態に保っておかないと修理できないでしょ?それと同じで、設定の「現在地」を把握しておくための仕組みなんだ!
コンフィグ管理とは
コンフィグ管理(Configuration Management、構成管理)とは、ネットワーク機器・サーバー・クラウドリソースなどの設定情報(コンフィグレーション)を記録・追跡・変更管理する一連の活動のことです。スイッチやルーターに書かれた設定ファイル、OSのパラメーター、アプリケーションの設定値など、システムの「ふるまい」を決めるすべての情報が対象になります。
障害が起きたとき「昨日から何が変わったのか」をすぐに答えられるかどうかは、コンフィグ管理の質によって決まります。変更前後の差分を追える仕組みがあれば、問題の原因特定が格段に速くなります。逆に管理が甘いと、「誰かが設定を変えていたが誰も知らなかった」という事態が起き、復旧に何時間もかかることになります。
近年はクラウドやコンテナの普及により管理対象が急増しており、IaC(Infrastructure as Code) と組み合わせてコンフィグをコードとして扱い、Gitで版管理するアプローチが主流になっています。システム発注・選定の場面では「コンフィグ管理をどう行うか」を運用設計の段階で決めておくことが、後々のトラブル防止に直結します。
コンフィグ管理の4つの柱
コンフィグ管理は大きく4つの機能で構成されています。
| 機能 | 内容 | 具体例 |
|---|---|---|
| 収集(Discovery) | 現在の設定を自動または手動で取得する | show running-config の出力を保存 |
| バージョン管理 | 変更のたびに世代を記録し、差分を追跡する | Git、RANCID、Oxidized |
| 変更管理 | 誰が・いつ・なぜ変更したかを承認フローで管理 | チケット連携、承認ワークフロー |
| 監査・検証 | 想定した設定(あるべき姿)と実際の差異を検出 | コンプライアンスチェック、ドリフト検出 |
覚え方:「収・版・変・監」でカバー!
「収集→版管理→変更管理→監査」の順番で回す、というサイクルを覚えておくと整理しやすいです。この4ステップを繰り返すことで、設定の「信頼できる唯一の情報源(Single Source of Truth)」を維持できます。
管理対象の主な種類
- ネットワーク機器: ルーター・スイッチ・ファイアウォールの running-config / startup-config
- サーバー: OS設定ファイル(
/etc/配下など)、ミドルウェア設定 - クラウドリソース: Terraform の state ファイル、CloudFormation テンプレート
- アプリケーション: 環境変数、設定ファイル(YAML/JSON)
歴史と背景
- 1980年代: 大規模ネットワークの普及に伴い、機器設定の手動管理が限界に。テキストファイルをFTPで回収するだけの原始的な管理が始まる
- 1997年: RANCID(Really Awesome New Cisco confIg Differ)がオープンソースで登場。定期的に設定を収集・差分検出する仕組みを自動化した先駆け
- 2002年: ITILがConfiguration Management(CMDB: 構成管理データベース)を体系化。IT全般の構成情報管理の考え方が普及
- 2008年頃〜: Chef・Puppet などの構成管理ツールが登場し、サーバー設定をコードで記述する「IaC」の概念が定着
- 2013年〜: Ansible の登場でエージェントレスな構成管理が広まり、ネットワーク機器にも適用しやすくなる
- 2014年〜: Oxidized がRACIDの後継として登場。マルチベンダー対応・Git連携が容易に
- 2016年〜: NetDevOps(ネットワーク×DevOps)の文脈で、Gitを中心に据えたコンフィグ管理が業界標準に近づく
代表的なツールと比較
コンフィグ管理ツールは「ネットワーク機器向け」と「サーバー・クラウド向け」に大別できます。
| ツール | 主な対象 | 特徴 | エージェント |
|---|---|---|---|
| Oxidized | ネットワーク機器 | Git連携・マルチベンダー対応、設定収集に特化 | 不要 |
| RANCID | ネットワーク機器 | 老舗。CVSベース。後継はOxidized | 不要 |
| Ansible | サーバー・NW機器 | YAML記述・SSH接続・変更適用まで可能 | 不要 |
| Puppet | サーバー | 宣言型。あるべき姿を記述して自動修復 | 必要 |
| Chef | サーバー | Ruby DSL。柔軟だが学習コスト高め | 必要 |
| Terraform | クラウドリソース | インフラをコードで定義・state管理 | 不要 |
コンフィグ管理の全体フロー(SVG図解)
ドリフト(設定ずれ)とは
コンフィグ管理で特に重要な概念がコンフィギュレーションドリフトです。「あるべき設定(ゴールデンコンフィグ)」と「実際の機器の設定」がいつの間にかずれてしまう現象で、担当者が緊急対応で直接機器を触ったり、複数人が別々に設定変更したりすることで起きます。ドリフトを定期検出して自動修復する仕組みが、成熟したコンフィグ管理の目標です。
関連する規格・RFC
| 規格・RFC番号 | 内容 |
|---|---|
| RFC 6241 | NETCONF(Network Configuration Protocol)— 機器設定をXMLで操作するプロトコル |
| RFC 8342 | NETCONFにおける「実行中・候補・スタートアップ」各データストアの定義 |
| RFC 8040 | RESTCONF — NETCONFをREST APIで扱えるようにしたプロトコル |
| RFC 7950 | YANG — ネットワーク機器の設定・状態をモデル化するデータ記述言語 |
関連用語
- IaC(Infrastructure as Code) — インフラ設定をコードとして管理・自動化する手法
- NETCONF — ネットワーク機器の設定をXMLで操作するプロトコル(RFC 6241)
- YANG — ネットワーク機器の設定データをモデル化する記述言語
- Ansible — エージェントレスで機器設定の収集・変更を自動化するツール
- Git — コードや設定ファイルのバージョン管理システム
- 変更管理(ITIL) — ITILで定義された変更リスクを制御するプロセス
- CMDB(構成管理データベース) — ITリソースの構成情報を一元管理するデータベース
- NetDevOps — ネットワーク運用にDevOpsの考え方を適用する手法