Terraform

Terraformとは?

Terraformは、HashiCorpのインフラストラクチャ・アズ・コードのツールです。サーバー、ネットワーク、クラウドサービスを設定ファイルに記述すると、Terraformがそれに合わせて実際のインフラを作成または変更します。

エンジニアに相談する ナレッジベース
上げ床タイルのあるデータセンターホールに並ぶサーバーキャビネット

どういうものか

こうしたツールがないと、インフラはWebコンソールをクリックして構築され、後から何を設定したのか正確に言える人がいなくなります。Terraformでは、エンジニアが存在すべきものを記述するファイルを書きます。たとえば、指定サイズの仮想マシン2台、プライベートネットワーク、ファイアウォールルール、ストレージバケットなどです。

Terraformは、各プラットフォームとプロバイダー(そのプラットフォームのAPIを理解するプラグイン)を通じて通信します。AWS、Microsoft Azure、Google Cloud、DNSサービスなど多数のプロバイダーがあり、Proxmox VEにはコミュニティが保守するプロバイダーがあります。一つの設定で、複数をまとめて扱えます。

プラン、適用、ステート

  • プラン:Terraformはファイルと現状を比較し、作成、変更、削除する内容を一覧にします。この時点では何も変更されません。
  • 適用:誰かがプランを読んだ後で、Terraformはその変更だけを行います。
  • ステート:Terraformは、どの実リソースが設定のどの部分に対応するかを記録したステートファイルを保持します。パスワードなどの機密値が含まれることがあるため、特定のノートPCではなく、保護された共有の場所に保管します。

企業にとっての利点

  • インフラの記録:ファイルをGitで管理すれば、何が存在し、各変更がなぜ行われたかがわかります。
  • 変更の日に驚かない:何かを削除する前に、何が起こるかをプランが正確に示します。
  • 再現可能な環境:テスト環境や2つ目の拠点を、本番と同じファイルから構築できます。

TerraformとAnsible

Terraformは、マシン、ネットワーク、クラウドサービスといったインフラを作成します。Ansibleは、それらのマシンが存在した後で、その上で動くものを設定します。多くのチームが両方を使っています。

ライセンスとOpenTofu

2023年、HashiCorpはTerraformのライセンスを、オープンソースライセンスからBusiness Source Licenseに変更し、HashiCorpと競合する製品での利用を制限しました。これを受けて、オープンソースのフォークとしてOpenTofuが始まり、現在はLinux Foundationのプロジェクトです。設定言語は同じものを読み込めます。IBMは2025年にHashiCorpの買収を完了しました。

KawaConnectのインフラストラクチャ・アズ・コードの扱い方

当社は、インフラをコードとしてバージョン管理し、KubernetesをGitOpsで運用し、Proxmox VEクラスターとMicrosoft Azureの環境を構築しています。インフラをファイルで記述することで、構築を繰り返し再現でき、あらゆる変更を追跡できます。

関連サービス

クラウドインフラ

Azure、ハイブリッド構成、移行、復旧計画。

Proxmoxコンサルティング

クラスター、高可用性、VMwareからの移行。

Kubernetesコンサルティング

GitOpsでGit経由で変更するクラスター。

詳しく見る

  • Terraformドキュメント設定言語とコマンドラインに関するHashiCorpのガイドとリファレンスです。
  • Terraform Registryプロバイダーと再利用可能なモジュールの公開カタログで、それぞれのドキュメントがあります。
  • OpenTofuTerraformのオープンソースのフォークで、Linux Foundationの下で保守されています。
  • WikipediaのTerraformツールの概要、歴史、2023年のライセンス変更を中立的にまとめています。

インフラをクリックして構築していませんか?

サーバーとクラウドサービスをどこで動かしているかをお知らせください。それらをファイルで記述するには何が必要か、それで何が変わるのかを説明します。

相談を始める