TOPSoftware > IaC:コードとしてのインフラとは(前)

Software

IaC:コードとしてのインフラとは(前)

2022/01/11

Scott Carey InfoWorld

IaCの定義

 「Infrastructure as Code:Dynamic Systems for the Cloud Age」の著者、Kief Morris氏は、IaCの中心をなすプラクティスとして3つを挙げている。すべてをコードとして定義すること、作業を進めているすべての対象物のテストとデリバリーを継続的に行うこと、疎結合の小さな要素を使ってシステムを構築することである。

 IaCの基本的な定義について、Morris氏は次のように述べている。「インフラの自動化に対するアプローチの1つで、ソフトウエア開発に由来するプラクティスを基盤にしている。システムとその構成のプロビジョニングと変更に関して、一貫性があり反復可能なルーチンに重きを置く」

 実践上は、DevOpsチームが対応にあたることが多く、環境の構成を定義する記述ファイルの修正やバージョン管理を担う。こうしたファイルの記述では、JSONやYAMLなどのフォーマットを用いる。いったん構築した環境に後から変更を加える時には、環境そのものを直接操作するのではなく、その元になった記述ファイルの内容を修正する。これにより、インフラに繰り返し変更を加える処理を、安全かつ大規模に適用できる。

IaCとDevOpsの接点

 IaCは、最初の構成とその後の変更を自動化する手段として、DevOpsのプラクティスで重要な位置を占める。DevOpsは、開発担当者と運用担当者の密接な協力と連携を通じて、ソフトウエアのデプロイを迅速化し、その頻度を高める。IaCツールを利用し、インフラの構築に自動化とバージョニングを取り入れることで、アプリケーション開発者は開発に専念する時間が増え、システム管理者は手作業の苦労から解放される。

 インフラのプロビジョニングとメンテナンスをコードで行うことにより、ソフトウエアの開発ライフサイクルの早い段階から、開発担当者と運用担当者の関係が密接になり、ソフトウエア開発で取り入れられてきた規律性、明確性、反復可能といった特徴を、運用にも適用できる。自動化と連携がDevOpsのプラクティスで重要な軸となる中、IaCツールも、チームが効果的に協力するための中心的な存在となる。

翻訳:内山卓則=ニューズフロント

↑ページ先頭へ