Infrastructure as Code
読み方: いんふらすとらくちゃー あず こーど
Infrastructure as Code(Iac)とは
システムのインフラ構築においてプログラミングコードでインフラを記述し構成管理する手法です。手動で構築を行う従来のインフラ構築とは異なりコードで記述するため、再現性が高くまた再利用性が高いのが特徴です。
Infrastructure as Codeの特徴
- コードである
インフラの各構成要素をコードとして記述し、API化されたインフラストラクチャと統合します。またコードで表現することでテストが可能になり、またOpsチームだけでなくDevチームによるインフラの変更も可能になりCI/CDパイプラインに組み込むことでDevOpsの実践が可能になります。 - 再現性
コードで表現するためリポジトリでバージョン管理されます。これにより構成管理の要素として必須である変更記録の追従とロールバックが可能になります。またコードで表現されているため既に構築されているインフラの状態との比較が可能になり、差分を検出することが可能になります。 - 再利用性
コードで記述されているため再利用性が高くシステム構成要素が同じであれば、数十分で同様の環境を再構成することも可能です。
歴史
システム構築において、インフラ構築は従来手動で行い、手順書を記述したり変更を手動で記録したりすることで、構成管理するのが伝統的な手法でした。しかしクラウドネイティブな環境の一般化、インフラの大規模化に伴い、インスタンスの破棄と再構築が頻繁に発生し、場合によっては数千台に及ぶようなインスタンスを扱うことも多くなり、従来の管理手法では変更を追いきれず構成管理が破綻するようになるという課題がありました。
クラウド環境の進化やDevOps文化の実践に伴い、Chef, Ansible, Terraform等の構成管理ツールが台頭した結果、IaCが広く行われるようになりました。現在ではクラウド環境を利用しDevOpsを実現する上では不可欠の要素になっています。
現場の声
現在ではある程度の市民権を得た感のあるIaCではありますが、セキュリティ分野においてはまだ十分な実践がされているとは言えず、継続的セキュリティの実践を念頭に置いたDevSecOpsの実践が今後重要になっていくことが予想されます。
<執筆・監修>
アルサーガパートナーズ株式会社 DX技術用語集制作チーム