ブログ | CTO オフィス

F5 金曜日: F5 インフラストラクチャー・アズ・コードと Terraform

ロリ・マクヴィッティ サムネイル
ロリ・マクヴィッティ
2018年10月26日公開

前述したように、「as code」はネットワーク業界全体にわたる重要な動きであり、可能な限りすべてを「as code」で扱うことを支持する DevOps 運動の中核原則に基づいています。

また、ネットワークとapplicationサービスの従来の提供方法の違いにより、ネットワークの世界では必要となる「コードとしてのインフラストラクチャ」と「コードとしての構成」を区別しました。 ほとんどのネットワーク サービスとapplicationサービスはハードウェアに関連付けられていますが、実際にはハードウェアとそれらが提供するサービスの間にはプラットフォームが存在します。 そのため、BIG-IP は、専用ハードウェアだけでなく、クラウドやオンプレミスの仮想マシンとしても提供できます。 BIG-IP はハードウェアではなく、さまざまなapplicationサービスを提供するソフトウェアプラットフォームです。

さて、applicationプラットフォーム (Web サーバー、アプリケーション サーバー、またはアプリケーション エンジン) を最初にプロビジョニングする必要があるのと同様に、ネットワークおよびapplicationサービス プラットフォームも、構成する前にプロビジョニングする必要があります。

特にクラウド環境では、プロビジョニングと構成のプロセスは、HashiCorp の Terraformなどのシステムによって実行されることが多くなっています。

Terraform についてよく知らない場合は、同社の Web サイトから引用します。

Terraform は、インフラストラクチャを安全かつ効率的に構築、変更、バージョン管理するためのツールです。 Terraform は、既存の一般的なサービス プロバイダーだけでなく、カスタムの社内ソリューションも管理できます。

構成ファイルは、単一のapplicationまたはデータセンター全体を実行するために必要なコンポーネントを Terraform に記述します。 Terraform は、目的の状態に到達するために何を行うかを記述した実行計画を生成し、それを実行して記述されたインフラストラクチャを構築します。 

< https://www.terraform.io/intro/index.html >より

基本的に、Terraform はインフラストラクチャの自動プロビジョニングを実行するツールです。 プラグインを使用することで、データセンター全体、またはapplicationアーキテクチャ全体をプロビジョニングするという、一見シシュフォスの苦役とも言える偉業を達成します。 なぜなら、インフラストラクチャとapplicationサービス プロバイダーの非常に堅牢なエコシステムをサポートするために必要な統合と拡張機能を Terraform 自体が開発できると期待するのはほぼ不可能だからです。 セキュリティとスケール、アイデンティティとアクセス管理、パフォーマンス管理と監視など、多岐にわたる業務を担当しています。 今日の市場を考えると、単一のプロバイダーが、考えられるあらゆるインフラストラクチャの組み合わせをサポートできるとは考えられません。 そのため、拡張性を重視し、Terraform では、プロバイダーがインフラストラクチャとapplicationサービスのサポートを「プラグイン」できるシステムが有効になっています。 

つまり、applicationサービスのプロバイダーである当社は、Terraform にプラグインして、BIG-IP プラットフォームを「コードとして」扱えるようになります。

Terraform プロバイダーの詳細については、こちらの Terraform サイトをご覧ください。BIG-IP のプロビジョニング (およびその後のコンフィギュレーション) 方法の例も含まれています。 弊社のコミュニティ DevCentral には、BIG-IP の Terraforming を始めるのに役立つ優れたリソースも用意されています。