Azure 上の Terraform の概要 - Terraform とは

Hashicorp Terraform は、クラウド インフラストラクチャのプロビジョニングおよび管理を行うためのオープン ソースの IaC (コードとしてのインフラストラクチャ) ツールです。 トポロジに必要な状態を記述する構成ファイル内のインフラストラクチャを体系化します。 Terraform では、Terraform プロバイダーを使用して、パブリック クラウド、プライベート クラウド、SaaS サービスなどのインフラストラクチャを管理できます。

Azure インフラストラクチャ用の Terraform プロバイダー

Azure インフラストラクチャの管理を有効にする Terraform プロバイダーがいくつかあります。

  • AzureRM: 仮想マシン、ストレージ アカウント、ネットワーク インターフェイスなどの安定した Azure リソースと機能を管理します。
  • AzureAD: グループ、ユーザー、サービス プリンシパル、アプリケーションなどの Azure Active Directory リソースを管理します。
  • AzureDevops: エージェント、リポジトリ、プロジェクト、パイプライン、クエリなどの Azure DevOps リソースを管理します。
  • AzAPI: Azure Resource Manager API を使用して Azure のリソースと機能を直接管理します。 このプロバイダーは、リリースされていない Azure リソースの管理を有効にして、AzureRM プロバイダーを補完します。 AzAPI プロバイダーの詳細については、Terraform AzAPI プロバイダーに関するページを参照してください。
  • Azure Stack: 仮想マシン、DNS、VNet、ストレージなどの Azure Stack リソースを管理します。

Azure で Terraform を使用する利点

このセクションでは、Terraform を使用して Azure インフラストラクチャを管理する利点について説明します。

一般的な IaC ツール

Terraform Azure プロバイダーを使用すると、同じ宣言型構文とツールを使用して、すべての Azure インフラストラクチャを管理できます。 これらのプロバイダーを使用すると、

  1. 管理グループ、ポリシー、ユーザー、グループ、ポリシーなどのコア プラットフォーム機能をプロビジョニングすることができます。 詳細については、クラウド導入フレームワークのエンタープライズ規模の Terraform の実装に関する情報を参照してください。
  2. Azure DevOps Projects とパイプラインをプロビジョニングして、通常のインフラストラクチャとアプリケーションのデプロイを自動化します。
  3. アプリケーションに必要な Azure リソースをプロビジョニングします。

インフラストラクチャの管理を自動化する

Terraform のテンプレート ベースの構成ファイル構文を使用すると、Azure リソースの構成を反復的および計画的に行うことができます。 インフラストラクチャの自動化には、次のような利点があります。

  • インフラストラクチャのデプロイおよび管理中に人為的なミスが発生する可能性が低くなります。
  • 同じテンプレートを複数回デプロイして、同一の開発環境、テスト環境、実稼働環境を作成することができます。
  • 開発環境およびテスト環境を要求に応じて作成することで、コストを削減できます。

インフラストラクチャの変更を理解してから適用する

リソースのトポロジが複雑になるに従い、インフラストラクチャの変更の意味と、変更が及ぼす影響を理解することが難しくなる場合があります。

Terraform CLI を使用すると、ユーザーはプランの適用の前にインフラストラクチャの変更を検証してプレビューすることができます。 インフラストラクチャの変更を安全にプレビューすることには、次に示すいくつかの利点があります。

  • チーム メンバーは、提示されている変更とその影響を理解することによってより効率的に共同作業ができます。
  • 開発プロセスの早い段階で、意図しない変更を捕捉できます。

次のステップ

環境に応じて、Terraform をインストールして構成します。