Infrastructure as Code(IaC)とは、再現可能な構成ファイルを使用してCI/CD開発のための一貫した導入環境を生成する、ITシステム インフラストラクチャの管理へのアプローチです。

Infrastructure as Codeとは何か

Infrastructure as Codeとは、ハードウェア、仮想リソース、プラットフォーム、コンテナ システム、サービス、トポロジなどを含むプロビジョニングおよび管理インフラストラクチャを指し、手動での構成または従来の構成ツールを使用するのではなく、宣言型またはスクリプト型の定義つまりコードを使用します。IaCは、構成、ポリシー、プロファイル、スクリプト、テンプレートをコードのように保存、共有、変更、適用できるように、それらが導入されているハードウェアやソフトウェアから分離します。

クラウド インフラストラクチャの普及に伴って利用が増えているこのアプローチは、DevOpsの考え方から生まれており、開発者がアプリケーションのソース コードに使用するのと似たバージョン管理と再現性をインフラストラクチャのオーケストレーションに適用します。IaCアプローチは、適用するたびに同じインフラストラクチャ環境を作成することで、継続的な統合、デリバリ、導入をサポートします。

Infrastructure as Codeが重要な理由

インフラストラクチャをコードのように扱うことができると、インフラストラクチャ管理に自動化、可視性、効率、スケーラビリティなどのメリットがもたらされるため、手動での作業、人的エラーやセキュリティ脆弱性のリスクが減り、アプリケーション導入の速度と信頼性が向上します。構成がシステムから分離されるため、別の場所の同様のシステムでその構成をより簡単に導入できます。このようにして、データ センタからクラウドへの移行やクラウド間での移行の課題を緩和することができます。

IaCでは、サンドボックス環境、テスト環境、本番環境がすべて同じ宣言型コードまたはスクリプトを使用して構成されることから、これらの環境が同一のもので、時間が経っても一貫していることが保証されるため、俊敏な開発とCI/CD戦略もサポートされます。

Infrastructure as Codeの仕組み

サーバ、ロード バランサ、仮想マシン、その他のデータ センタまたはクラウド リソースのIaC構成は、(結果の詳細を説明せずに)指示を指定する命令型アプローチまたは(既存のワークフローやテンプレートに基づく可能性のある方法を説明せずに)期待される構成結果を指定する宣言型アプローチのいずれかを使用して行うことができます。これらのアプローチの違いは、作る人がその手順を心得ていると信じてサンドイッチを作るように依頼する場合(宣言型)と、サンドイッチを作ることには言及せずに、必要な手順を1つずつ指定する場合(命令型)に例えることができます。

アプローチが宣言型か命令型かにかかわらず、IaCはプロビジョニングとインフラストラクチャの管理を自動化します。

F5でのInfrastructure as Codeへの対応方法

プラグイン、またはTerraformやAnsibleなどのIaC構成ツールとバージョン管理ツール向けのF5 Application Services 3(AS3)拡張機能を使用すると、F5 BIG-IPプラットフォームを「コードとして」扱うことができます。

F5 Automation Toolchainには、AS3拡張機能とF5 Declarative Onboarding(DO)拡張機能が統合されています。AS3はJSON宣言に基づく柔軟でオーバーヘッドの低いメカニズムであり、BIG-IPシステムでのL4~L7アプリケーション サービスの構成に使用します。DO拡張機能により、BIG-IP製品の宣言型L~L3オンボーディングが可能になります。