Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
2025-01-24-SRETT11-OpenTofuについてそろそろ調べてみるか
Search
SUZUKI Masashi
January 24, 2025
Technology
0
1.8k
2025-01-24-SRETT11-OpenTofuについてそろそろ調べてみるか
OpenTofuについて調べてみた内容
SRETT #11
https://3-shake.connpass.com/event/339212/
SUZUKI Masashi
January 24, 2025
Tweet
Share
More Decks by SUZUKI Masashi
See All by SUZUKI Masashi
2025-11-21 社内エンジニア勉強会 改めて理解するVPC Endpoint
masasuzu
0
32
2025-11-08 Security JAWS TerraformによるIAM Policy記述ガイド
masasuzu
2
750
2025-09-25 SRETT #13 ConftestによるTerraformのPolicy as Codeを試してみる
masasuzu
0
180
2025-09-19 クラウドにおけるシークレット管理
masasuzu
0
200
2025-08-05 Google Cloud Next Tokyo 2025 Cloud RunとCloud SQLの接続方式と事例
masasuzu
0
37
2025-06-20 PrivateLinkがNLBなしで作れるようになり便利になった
masasuzu
2
520
2025-01-31 吉祥寺.pm 37 初めての海外カンファレンス
masasuzu
0
630
2024-03-29 SRETT9 Cloud SQLの可用性について
masasuzu
0
530
2023-12-18 SRETT8 Terraform使いがPulumiに入門する
masasuzu
0
2.5k
Other Decks in Technology
See All in Technology
翻訳・対話・越境で強いチームワークを作ろう! / Building Strong Teamwork through Interpretation, Dialogue, and Border-Crossing
ar_tama
4
1.6k
freeeにおけるファンクションを超えた一気通貫でのAI活用
jaxx2104
3
620
Modern Data Stack大好きマンが語るSnowflakeの魅力
sagara
0
280
Claude Code Getting Started Guide(en)
oikon48
0
140
Oracle Cloud Infrastructure:2025年11月度サービス・アップデート
oracle4engineer
PRO
1
120
私のRails開発環境
yahonda
0
180
AI駆動開発によるDDDの実践
dip_tech
PRO
0
290
一億総業務改善を支える社内AIエージェント基盤の要諦
yukukotani
8
2.8k
Databricksによるエージェント構築
taka_aki
1
120
Security Diaries of an Open Source IAM
ahus1
0
110
Noを伝える技術2025: 爆速合意形成のためのNICOフレームワーク速習 #pmconf2025
aki_iinuma
2
1.1k
.NET 10 のパフォーマンス改善
nenonaninu
2
4.7k
Featured
See All Featured
Build your cross-platform service in a week with App Engine
jlugia
234
18k
Docker and Python
trallard
46
3.7k
Building Flexible Design Systems
yeseniaperezcruz
329
39k
BBQ
matthewcrist
89
9.9k
Music & Morning Musume
bryan
46
7k
Site-Speed That Sticks
csswizardry
13
990
Rebuilding a faster, lazier Slack
samanthasiow
84
9.3k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
9
1k
Faster Mobile Websites
deanohume
310
31k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
36
6.2k
Speed Design
sergeychernyshev
33
1.4k
Agile that works and the tools we love
rasmusluckow
331
21k
Transcript
OpenTofuについてそろそろ調べてみるか SRETT #11 Copyright © 3-shake, Inc. All Rights Reserved.
株式会社スリーシェイクSreake事業部 鈴木勝史
Copyright © 3-shake, Inc. All Rights Reserved. おまえだれよ 2 •
すずきまさし/masasuzu/@masasuz • 株式会社スリーシェイク Sreake事業部所属 • クラウドインフラなんでも屋さんしてます ◦ 設計、運用、構築等の支援をやってます。 ◦ 支援だけでなく実作業もなんでもやります。 • AWSちょっとわかる ◦ AWS Community Builder 2024 Cloud Operation • Google Cloudほんのちょっとわかる • Terraformちょっとわかる • OpenTofuなにもわからない
• KubeCon + CloudNativeCon NA North America 2024に先日行ってきてました。 • その中で共同開催されていた
OpenTofu Dayを見て興味を得ました。 ◦ 参考: OpenTofu Day • 普段Terraform使ってますが、この機会に OpenTofuに深堀りしてみたいというのが動機です。 • 技術検証活動のテーマにも沿ってるのでちょうどいいなと思い調査してます。 ◦ 私のテーマはTerraformを中心にIaC周りの技術調査となってます。 Copyright © 3-shake, Inc. All Rights Reserved. 動機 3
• 普段Terraformを使ってます。 • OpenTofuは業務では使ってません。豆腐職人ではありません。 • 時間の制約上、説明を端折っているところがあります。 ◦ Terraformをある程度知っている前提で話してしまいます。 • 継続的に流れを追ってきたわけではないので、不正確な箇所がある可能性があります。
• 資料自体はConnpassの資料ページにすでにアップロード済みです。 • 後日もう少しまとめてブログに書きます。 Copyright © 3-shake, Inc. All Rights Reserved. 前提、おことわり、言い訳 4
Copyright © 3-shake, Inc. All Rights Reserved. 目次 5 1.
OpenTofuとは 2. ライセンスの課題 3. OpenTofuとTerraformの違い 4. まとめ
Copyright © 3-shake, Inc. All Rights Reserved. OpenTofuとは 01 6
• 2023年8月にTerraformがライセンス変更をしたことにより、これを懸念した企業やコミュニティにより OpenTFとして フォークされます。 • その後OpenTFはHashiCorp社の商標権を侵害しかねないということで OpenTofuに改名されます。 ◦ issueを見ると当時の名前付けに関しての議論を見ることができます。 ◦
参考: https://github.com/opentofu/opentofu/issues/296 • 2023年9月にLinux Foundation傘下となります。 ◦ 参考: Linux Foundation Launches OpenTofu: A New Open Source Alternative to Terraform • コマンドとしては、tofuを使用します。 ◦ サブコマンドは基本的に terraformと同様です。 Copyright © 3-shake, Inc. All Rights Reserved. OpenTofuとは 7
Copyright © 3-shake, Inc. All Rights Reserved. ライセンスの課題 02 8
• HashiCorp社は2023年8月に今後のリリースに関してライセンスを変更する旨を発表しました。 ◦ オープンソースライセンスである Mozilla Public License(MPL) v2.0から商用サービスでの利用を制限する Business Source
License(BUSLあるいはBSL) v1.1に変更。 ◦ 参考: HashiCorp adopts Business Source License • これに対して、利用企業およびコミュニティが懸念を示し、 OpenTofuをフォークしたという流れになります。 Copyright © 3-shake, Inc. All Rights Reserved. ライセンスの課題 9
• 従来BSLは本番使用が制限されます。 ◦ ただし、ライセンスの追加使用許可 (Additional Use Grant)によりTerraformと「競合製品」でなければ本番利 用の制限はないとしてます。 ▪ 参考:
https://github.com/hashicorp/terraform/blob/v1.11/LICENSE • 「競合製品」とは、有料サポート契約を含む第三者に販売される製品で、 HashiCorp のライセンス対象製品の有料版 の機能と大幅に重複する製品を指します。 ◦ TerraformでいうところのHCP Terraform(Terraform Cloud)を想定しているのか? • 組織内でTerraformを利用することは「競合製品」とはみなされない。 • だから、利用者としては基本的には問題なく利用できるとしてます。 • 参考: HashiCorp Licensing FAQ • ここから読み取れるのは、問題となるのは Terraformの機能を有償で提供している SaaSと理解できます。 Copyright © 3-shake, Inc. All Rights Reserved. HashiCorp社の言い分 10
• HashiCorp社が説明したBSLと追加使用許可はあいまいである。 ◦ そのため、自身の行動が許諾範囲内か判断が困難である。 • 「競合製品」の定義やライセンス自体が今後変更されるか不確実である。 • TerraformはOSSの恩恵を受けて成長してきてため、これからもオープンソースソフトウェアであるべき。 • 参考:
OpenTofu FAQ • OpenTofuのスポンサー ◦ Harness ◦ Gruntwork ◦ Spacelift ◦ env0 ◦ Scalr Copyright © 3-shake, Inc. All Rights Reserved. コミュニティの懸念 11
Copyright © 3-shake, Inc. All Rights Reserved. OpenTofuとTerraformの違い 03 12
• OpenTofuはTerraform1.5.6からフォークされているのでそれまでに実装されていたものは互換があります。 ◦ 1.6-alphaから分岐したと書かれている情報もあり、要検証 • Terraform 1.5.6以降に追加された機能に関しても随時取り込まれています。 • そのため、1.5までの機能を使っているのであれば素直に移行できるかとは思います。 ◦
バージョンごとに移行ガイドがあるので細かくはそれを参照すると良いです。 ◦ 参考: https://opentofu.org/docs/intro/migration/ • ただし、別のコードベースで開発がされているので、 OpenTofuのみの独自実装もあります。 • ここではいくつか個人的に気になる違いについてあげていきます。 Copyright © 3-shake, Inc. All Rights Reserved. OpenTofuとTerraformの違い 13
• 基本的には terraform を tofuに置き換えていただければよいです。サブコマンドは一緒です。 Copyright © 3-shake, Inc. All
Rights Reserved. コマンド 14
• Terraform: https://registry.terraform.io/ • OpenTofu: https://registry.opentofu.org • OpenTofu Registryが登場したときに存在した Terraform
Providerは反映されています。 • 反映されていないものに関しても issueを立てれば反映されるようです ◦ https://github.com/opentofu/registry Copyright © 3-shake, Inc. All Rights Reserved. Registry 15
• Terraformではlifecyleブロックでdestroy=falseの記述が必須です。 ◦ 参考: https://developer.hashicorp.com/terraform/language/resources/syntax#removing-resources • OpenTofuではremovedブロックを書くだけで stateから削除されます。 ◦ 参考:
https://opentofu.org/docs/language/resources/syntax/#removing-resources • リソースを削除したいなら対象 resouce 自体を削除すればいいので、 Terraformの記述方法のほうがへんな気がします。 Copyright © 3-shake, Inc. All Rights Reserved. removed ブロック 16
• Terraformでは平文でStateに保存されます。 • これに対してOpenTofuではクライアントサイドで暗号化する機能が追加されてます。 ◦ クラウドプロバイダーの KMSキーなどを利用してStateを暗号化することができます。 • Terraformではたとえsopsプロバイダーで機密情報を暗号化しても、 Stateファイルには平文で保存されているので権
限があれば機密情報が見えてしまう状態にありました。 ◦ Stateが暗号化されることにより機密情報をよりセキュアに扱えるようになります。 • 参考: https://opentofu.org/docs/language/state/encryption/ Copyright © 3-shake, Inc. All Rights Reserved. State Encryption 17
• OpenTofuではbackendブロックで変数参照ができます ◦ 参考: https://opentofu.org/docs/language/settings/backends/configuration/#variables-and-locals • Terraformで同じことをしたい場合、-backend-configを渡さないといけない。 • 同じ環境差分が少ないパターンだとこれがすごく便利 ◦
参考: On Best Practices with OpenTofu Structuring Copyright © 3-shake, Inc. All Rights Reserved. backendブロックの変数参照 18
• 複数プロジェクトでTerraform or OpenTofuを使う場合、プロジェクトごとに使用バージョンを管理する必要がありま す。いくつか選択肢を見ていきます。 • Terraformのバージョン管理ツールとしてよく使われる tfenvはOpenTofuには対応しません。 ◦ https://github.com/tfutils/tfenv/issues/409
• 代わりにTerraformとOpenTofuに対応したtenvができました。 ◦ https://github.com/tofuutils/tenv • 私はTerraformも合わせてプロジェクト内のツールのバージョン管理をまとめて asdfでやってますが、こちらは対応し て います。 ◦ https://github.com/virtualroot/asdf-opentofu • 自分はあまり使わないのですが、 aquaやmiseも両対応しています。 ◦ https://aquaproj.github.io/ ◦ https://github.com/jdx/mise Copyright © 3-shake, Inc. All Rights Reserved. バージョン管理 19
• tflintはOpenTofuをサポートしないようです。 ◦ https://github.com/terraform-linters/tflint/issues/2037 • Linterの議論自体は続いているようです。 ◦ https://github.com/opentofu/opentofu/issues/2213 Copyright ©
3-shake, Inc. All Rights Reserved. Linter 20
• HCP Terraform(旧Terraform Cloud)に相当するSaaSとしては、OpenTofuスポンサーのSpacelift、env0、Scalrな どがあります。 • tfactions、atlantis、diggerもOpenTofuに対応している模様です。 Copyright © 3-shake,
Inc. All Rights Reserved. CI/CD 21
Copyright © 3-shake, Inc. All Rights Reserved. まとめ 05 22
• 現時点でOpenTofuに移行するするべきか? ◦ 利用者側として現状では引き続き様子見 ▪ 概ね揃ってきているが、まだ足りないエコシステムもある。 ◦ IBM社にHashiCorp社の買収による統合完了の様子も追っていきたい。 ▪ >
買収による統合完了予定は、2024年12月から2025年1-3月期への延期とされています。 ▪ 参考: IBM社によるHashiCorp社買収について • とはいえ、1つのツールが使えなくなることで業務が止まるのは避けたいので常に選択肢は複数取っておきたい。 ◦ OpenTofuに限らず、Pulumi、CDK(AWS)なども選択肢として取っておきたい。 • OpenTofuはTerraformとは違う独自進化をしているので、変更を追っていきたい。 ◦ 個人的にはState暗号化とかBackendの変数参照とかTerraformに入ってほしい • それでは良い豆腐ライフを! • minamijoyoさんのTerraform職人のためのOpenTofu再入門2024がものすごく詳しいので、このスライド見るよりこっちのほう が参考になります。 Copyright © 3-shake, Inc. All Rights Reserved. まとめ 23