Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Terraformのざっくり入門
Search
kashiwaguma-hiro
June 05, 2019
Technology
200
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Terraformのざっくり入門
チームメンバ向けの勉強資料。
構成要素と、tfstateに主眼をあてた説明です。
kashiwaguma-hiro
June 05, 2019
More Decks by kashiwaguma-hiro
See All by kashiwaguma-hiro
読んだ気になれる_オライリー本の攻略法
kashiwagumahiro
0
18
Ansistrano(&Ansible) への導入
kashiwagumahiro
0
450
DMM.comの課金プラットフォームにおけるサーバーサイドKotlin事情
kashiwagumahiro
1
3.7k
Rundeckで 秘匿情報パラメータを セキュアに扱う
kashiwagumahiro
0
740
Other Decks in Technology
See All in Technology
作り直せるコードは迅速に 作り直せないDBは慎重に - AI時代のプロダクトエンジニアが「判断の不可逆性」で開発速度を変える話
kinosuke01
0
280
omasushiというライブラリを作った
polidog
PRO
0
170
Redmine 7.0で私が開発した新機能の狙いと背景
vividtone
1
130
AIオーケストレーションを活用した 開発ワークフローの設計と実践
bqnq
0
120
推論の観測、できていますか? 〜 Google Cloud Gemini Enterprise Agent Platformで 3つの Gemini モデルを実測して踏んだ、評価の罠 〜
shukob
PRO
0
180
なぜSRE・セキュリティは評価されないのか?守りの組織を事業成長エンジンに変えた実践
cscengineer
PRO
3
2.4k
Reactの設計論
uhyo
13
6k
V8コントリビュート超入門
riyaamemiya
0
160
Snowflakeのコスト最適化を支えるアーキテクチャ設計
ktatsuya
0
1.3k
TinyGo 開発サイクルを高速化する:Go で作るエミュレータ入門
zozotech
PRO
1
370
Amazon Quick on DesktopがIAM Identity Centerで動かない理由
yukiogawa
0
140
The Agent Builder Loop from Daily Work to OSS
minorun365
PRO
3
120
Featured
See All Featured
BBQ
matthewcrist
89
10k
How to train your dragon (web standard)
notwaldorf
97
6.8k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
28
3.6k
Utilizing Notion as your number one productivity tool
mfonobong
4
580
WENDY [Excerpt]
tessaabrams
12
39k
Speed Design
sergeychernyshev
33
2.1k
Building Adaptive Systems
keathley
44
3.2k
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
320
Producing Creativity
orderedlist
PRO
348
41k
The SEO Collaboration Effect
kristinabergwall1
1
550
Building a Modern Day E-commerce SEO Strategy
aleyda
45
9.2k
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
370
Transcript
Terraform ざっくり入門 柏熊 宏幸
Terraformとは
Terraformとは • HashiCorp社が開発 • Infrastructure as Codeを実現するツールの一種 ◦ SaaS、AWSやGCP等のクラウドサービスがターゲット ◦
オンプレサーバの構築や、プロビジョニング周りは{無理|不得意} • サポートしているサービスは様々 ◦ AWS ◦ GCP ◦ Azure … etc
構成要素
構成要素 設定ファイル (Resource,Module) ステータス (Backend) 対象環境 (Provider) .tfstate x.tf y.tf
構成要素 設定ファイル (Resource,Module) ステータス (Backend) 対象環境 (Provider) .tfstate x.tf y.tf
・対象環境に作るリソースを定義するファイル . resource:最小単位. module :複数のresourceをまとめた単位 ・moduleは自前で作成可能だし、配布も可能 . ref ・resourceは小さい単位なので、適宜 module化がおススメ.
構成要素 設定ファイル (Resource,Module) ステータス (Backend) 対象環境 (Provider) .tfstate x.tf y.tf
・Terraform側のステータスを定義 . Terraform管理下のリソース情報を保持 . ・保存先はいろいろある . ref
構成要素 設定ファイル (Resource,Module) ステータス (Backend) 対象環境 (Provider) .tfstate x.tf y.tf
・環境構築や認証方法を提供 . ・様々なクラウドサービス、SaaSが存在. ・複数プロバイダを組み合わせることが可能 →マルチクラウドを構築可能
動作のきほん
動作のきほん .tfstate x.tf y.tf 設定ファイル (Resource,Module) ステータス (Backend) 対象環境 (Provider)
動作のきほん .tfstate x.tf y.tf 設定ファイルとステータスが同一となるよう、差分を 対象環境へ反映する 設定ファイル (Resource,Module) ステータス (Backend)
対象環境 (Provider)
リソース追加した時
リソース追加した時 .tfstate x.tf y.tf z.tf z.tfに設定を追加 設定ファイル (Resource,Module) ステータス (Backend)
対象環境 (Provider)
リソース追加した時 .tfstate x.tf y.tf z.tf 設定ファイルにあるが、 ステータスにない場合、 ステータスに追加 設定ファイル (Resource,Module)
ステータス (Backend) 対象環境 (Provider)
リソース追加した時 .tfstate x.tf y.tf z.tf z.tfのリソースを 対象環境へ 新規作成 設定ファイル (Resource,Module)
ステータス (Backend) 対象環境 (Provider)
リソース削除した時
リソース削除した場合のうごき .tfstate x.tf y.tf z.tf y.tfの設定を消す 設定ファイル (Resource,Module) ステータス (Backend)
対象環境 (Provider)
リソース削除した場合のうごき .tfstate x.tf z.tf 設定ファイルにないステータ スは差分となる ステータスから削除 設定ファイル (Resource,Module) ステータス
(Backend) 対象環境 (Provider)
リソース削除した場合のうごき .tfstate x.tf z.tf y.tfのリソースを 対象環境から 削除 設定ファイル (Resource,Module) ステータス
(Backend) 対象環境 (Provider)
.tfstateにないリソースが変更された時
.tfstateにないリソースが変更された時 .tfstate x.tf y.tf z.tf 設定ファイル (Resource,Module) ステータス (Backend) 対象環境
(Provider) .tfstateに無いリ ソースを手動で作 る
.tfstateにないリソースが変更された時 .tfstate x.tf y.tf z.tf 設定ファイル (Resource,Module) ステータス (Backend) 対象環境
(Provider) .tfstateに無いの で変化なし
.tfstateにないリソースが変更された時 .tfstate x.tf y.tf z.tf 設定ファイル (Resource,Module) ステータス (Backend) 対象環境
(Provider) 一部だけTerraformするのもあり! 手動で作ってからTerraform化、とかやりやすい!
まとめ
まとめ • Terraformの構成要素は3つ. ◦ 設定ファイル(Resource,Module) ◦ ステータス(Backend) ◦ 対象環境(Provider) •
Providerが豊富なので自由度が高い. ◦ アプリケーション環境はAWS、モニタリングはDatadogなど • 宣言的に環境を定義できる. ◦ 設定ファイル通りになるように、対象環境を変更する. ◦ ステータスに存在しないリソースは対象外なので、一部だけ適用可能.
おわり
付録:勉強会実施時のQ.A.
付録:勉強会実施時のQ.A. 1. リソース作成順序はどうなるの? ◦ よしなに計算してくれる. ▪ 依存関係のないものは、並列実行 ▪ 依存関係のあるものは、依存先から実行 2.
リソースを変更した場合の挙動はどうなるの? ◦ 削除して作成と、更新のパターンがあります。 ◦ 重要なリソースについては予め lifecycleで制御したほうがいい。