IaCとは「Infrastructure as Code」の略で、文字通りインフラの構成をコードによって管理し、専用の構成管理ツールによって自動的に構築を行う手法の呼び名です。
従来、サーバーの構築はインフラエンジニアによる手作業によって行われていました。しかし人間による手作業では
- 効率が悪い
- 作業者によって品質にばらつきが発生する
- 人的なミスが起きうる
といった問題があります。しかしこうしたインフラの構成や構築手順をコード化することで、
- 何度実行しても同じ結果が得られる
- 人的ミスが起こらない
- 自動化による作業効率のアップ
といった恩恵に与ることが可能になります。
またIaCのコードをGitなどでバージョン管理することで、特定のバージョンのインフラ構成を再現することや、意図しない変更の混入を防ぐことが可能になります。
従来のオンプレミス環境では、ハードウェアのキッティング作業が発生するため、どうしても人力に頼らざるを得ない部分がありました。しかしクラウド環境は、ネットワークの構築やサーバーの起動といった作業であっても、APIを通してソフトウェアから制御することが可能です。これはIaCと非常に相性がよく、現在ではインフラ構築のすべてをコード化、自動化することが可能になっています。