Cisco / CCNA 200-301 v2.0

試験項目 5.3 · CCNA-146

Infrastructure as Code

ドメイン 5 · AI・ネットワーク運用・管理 · Network Management Architecture

このページのゴール

InfrastructureをMachine-readable Definitionとして管理するIaCの特徴、Version Control等のPractice、Declarative / Imperative、単発Automationとの違いを説明できるようにする。

このページで学ぶこと

  • Infrastructure as Code
  • Machine-Readable Infrastructure Definition
  • Version Control Practice
  • Code / Change Review
  • Repeatable Deployment
  • Consistent Configuration
  • Automation Engine Application
  • Validation / Testing Workflow
  • Declarative vs Imperative
  • IaC vs Script Automation
  • IaC with Device / Controller Management

Infrastructure as Code

Infrastructure as Code(IaC)は、InfrastructureのProvisioning・Configuration・ManagementをMachine-readableなCode / Definitionとして扱う方法である。Cloud専用でも特定Tool専用でもない。

Machine-Readable Definition

人がDeviceへ直接Commandを入力することを管理の中心にせず、Infrastructureを表すDefinitionをMachine-readableな形で管理し、Automation等から適用できる。

Version Control

Infrastructure DefinitionはVersion Controlで管理することが一般的で、変更履歴、差分確認、Rollbackの判断などに利用できる。ただしVersion Controlされていること自体をIaC成立の必須条件とはしない。

Code / Change Review

Infrastructure変更をDefinitionの差分として扱えるため、適用前にCode Review / Change Reviewを行うWorkflowと組み合わせやすい。

Repeatable / Consistent Deployment

同じDefinitionとAutomationを用いることで、同じInfrastructureをRepeatableに展開し、複数環境でのConfiguration Consistencyを保ちやすい。

Automation Engine

IaC DefinitionはAutomation Engine等によって実際のDeviceやControllerへ反映される。Definitionを書くだけでInfrastructureが自動的に変わるとは限らない。

Validation / Testing

DefinitionのSyntax、Policy、Expected Stateなどを適用前後にValidation / TestingするWorkflowを組み込める。IaCであること自体が設定の正しさを保証するわけではない。

Declarative / Imperative

Declarativeは「どういう状態であるべきか」というDesired State / Whatを記述し、Imperativeは「その状態へどう到達するか」というProcedure / Howを記述する。IaCはDeclarativeだけに限定されない。

IaCとScript Automation

AutomationはTask / Operationの自動実行だけでも成立する。IaCではInfrastructure Definition自体をCodeとして管理する点が中心になるため、すべてのAutomationがIaCではない。

Device / Controllerとの組み合わせ

IaC DefinitionをDeviceへ直接適用するAutomationにも、Controllerを介して反映する構成にもできる。Device-Based / Controller-Based / Automation-Based / IaCは相互排他的ではない。

重要な注意点

IaCはTerraform専用・Ansible専用・Cloud専用ではない。Version Controlは重要なPracticeだがIaC成立条件ではなく、DeclarativeだけがIaCというわけでもない。

理解確認

このページの内容を22問で確認します。

理解確認22問へ →