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年のライセンス変更を中立的にまとめています。