Infrastructure as Codeを支えるTerraform Pluginの実装のしかた by nasa9084

SRE Kaigi 2026
セッション(30分)

Infrastructure as Codeを支えるTerraform Pluginの実装のしかた

nasa9084 nasa9084 nasa9084

■ 発表カテゴリ

・Tech: SREを支える具体的な技術や手法

■ 発表概要(400字程度)

世は大マイクロサービス時代!Web UIをポチポチして膨大なサービスインフラを構成・管理し続けることは一般人類には難しく、より良く、より安定してインフラを管理するため、人々はインフラをもテキストで管理しようと考えた!Infrastructure as Codeである!

Infrastructure as Codeがもはや一般的なプラクティスとなって幾星霜。Terraformは目新しくも、物珍しくもないソフトウェアとなりました。Terraform (あるいは最近はOpenTofuでしょうか?)、皆さんも使ってますよね?

Terraform/OpenTofuはそれ自体には各種クラウド・SaaSとの連携部分は実装されておらず、Terraform Plugin、あるいはTerraform Providerと呼ばれるプラグインがその機能を担っています。
例えば、AWSではterraform-provider-aws、Google Cloudではterraform-provider-google、GitHubならばterraform-provider-githubといった具合です。

さて、皆さんはこういった、オープンソースのTerraform Pluginの実装を読んだことはありますか?コントリビュートしたことは?あるいはTerraform Pluginを実装したことは?
AWSやGoogle Cloudの様な大手パブリッククラウドを使って、Terraform PluginもHashicorpが提供しているオフィシャルのものを使って、というケースではあまり内部実装まで気にすることは多くはないかと思います。

本セッションでは、Terraform Pluginの実装方法や、多くのTerraform Plugin実装が抱えている問題とコントリビューションチャンスについてお話しします。

■ 発表の詳細(1000字程度)

私が所属する会社ではクラウド基盤としてプライベートクラウドを自社で開発運用しており、モニタリングプラットフォームも自社開発基盤です。
安心・安全にインフラやアラートルール等の設定構築をするため、これらの管理をテキストベースで管理したいと考え、ここ数年、Terraform Pluginを社内向けに2つ開発・保守しています。
これらのTerraform Pluginを開発・保守してきた経験から、Terraform Pluginを開発する方法についてお話しします。

  1. Terraform概論
  • なぜインフラをテキストで管理したいのか、テキストで管理すると何が嬉しいのか
  • Terraformというソフトウェアを構成する要素と、それぞれの責務、Terraform本体とTerraform Pluginがどのように動作するのかといった、Terraform全体のアーキテクチャがどうなっているのか
  1. Terraform Pluginの実装方法
  • 実際にTerraform Pluginを開発したいと考えたときに実装する流れ
  • Terraform Frameworkを使用した具体的な実装の方法
  • テストの方法
  1. Terraform Plugin SDK と Terraform Plugin Framework
  • Terraform Plugin SDKからTerraform Plugin Frameworkへの移行問題
  • オープンソースTerraform Pluginへのコントリビューションチャンス

■ 対象聴衆とその人たちが得られるもの

  • Terraform/OpenTofuユーザー
  • Terraform/OpenTofuに興味があるひと
  • オープンソースのTerraform Pluginにコントリビューションをしたいと考えているひと
  • 何らかのサービスのTerraform Pluginを実装したいと考えている人

実際に明日からTerraform Pluginを開発できるようになります!

■ なぜこのトピックについて話したいのか(モチベーション)

Terraform Pluginはユーザが非常に多い一方で、多くのオープンソースTerraform Pluginが十分に揃っているため、Plugin開発をした経験がある人は少ないと感じています。
自社で、自社内向けにTerraform Pluginを開発している事例はすごく少なく、従って最近のTerraform Plugin実装方法についての情報も少ないため、「自分だからこそ」共有できる内容なのではないかと思いました。