開発プロセス・方法論
IaC
(いんふらすとらくちゃあずこーど/Infrastructure as Code)
- 登場(海外)
- 2016年
- 更新
- 2026-08-25
一言でいうと
インフラの構成をコードで定義し、適用と変更を再現可能にする実践です。手作業で作った環境は同じ手順を踏んでも差が出る、という前提から始まります。
提唱者と登場年
考え方は構成管理ツールの普及とともに広まりましたが、名前のついた実践として整理されたのは2010年代です。Martin Fowlerは2016年3月にこの語を解説し、Kief Morrisの書籍を基本文献として挙げています。
クラウドを使う組織では前提として語られることが増えました。ただし実際には、一部の環境だけがコード化されている状態も珍しくありません。
何を解決するか
手作業で構築した環境は、同じ手順を踏んだつもりでも差が出ます。誰がいつ何を変えたかも追えません。障害のたびに構成を調べ直すことになり、環境を増やすほど負担が増えます。
構成をコードにすると、変更の履歴がバージョン管理に残り、レビューの対象になります。同じ定義から同じ環境を作れるため、検証環境と本番の差も小さくなります。
実際の進み方
宣言的な定義ファイルで、あるべき構成を記述します。適用はツールが差分を計算して行い、人は差分を確認してから承認します。定義はアプリケーションのコードと同じくバージョン管理に置き、変更はレビューを通します。
運用に入ると、コードと実際の環境がずれる問題が出ます。手作業の変更を許すかどうかを決め、検知する仕組みを用意してください。
導入でよくある失敗
- 手作業の変更を併用する。定義と実態がずれ、適用のたびに事故が起きます
- 定義を書いたきりレビューを通さない。アプリのコードより緩い運用になりがちです
- 秘密情報を定義ファイルに直接書く。バージョン管理に残り続けます
求人票にこの語がある場合に読み取れること
クラウド環境の運用が一定の規模にあることを示します。ただし、ツール名が並んでいるだけで、実際には一部の環境しかコード化されていない組織もあります。
検索条件には、この語ではなくツール名を使います。要件に書く場合も、TerraformやCloudFormationといった具体名のほうが引けます。
自社側では、本番環境のどこまでがコード化されているか、手作業の変更をどう扱っているかを確認します。ここが曖昧なまま求人票に書けば、入社後の食い違いにつながります。候補者には、コードと実環境がずれたときの対処を聞きます。検知の仕組みまで答えられる人は、運用まで担当しています。
隣接手法との違い
| 用語 | 指すもの | この語との違い |
|---|---|---|
| 構成管理 | サーバの状態を定義して揃える取り組み | IaCはネットワークや権限も対象に含む |
| CI/CD | 統合と配信を自動化する仕組み | 対象がアプリケーション側 |
| DevOps | 開発と運用の断絶を埋める取り組み | IaCはその実装のひとつ |
関連キーワード
DevOps / CI/CD / Terraform / クラウド