Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Terraformのざっくり入門

 Terraformのざっくり入門

チームメンバ向けの勉強資料。
構成要素と、tfstateに主眼をあてた説明です。

kashiwaguma-hiro

June 05, 2019
Tweet

More Decks by kashiwaguma-hiro

Other Decks in Technology

Transcript

  1. Terraformとは • HashiCorp社が開発 • Infrastructure as Codeを実現するツールの一種 ◦ SaaS、AWSやGCP等のクラウドサービスがターゲット ◦

    オンプレサーバの構築や、プロビジョニング周りは{無理|不得意} • サポートしているサービスは様々 ◦ AWS ◦ GCP ◦ Azure … etc
  2. 構成要素 設定ファイル (Resource,Module) ステータス (Backend) 対象環境 (Provider) .tfstate x.tf y.tf

    ・対象環境に作るリソースを定義するファイル .   resource:最小単位.   module :複数のresourceをまとめた単位 ・moduleは自前で作成可能だし、配布も可能 . ref ・resourceは小さい単位なので、適宜 module化がおススメ.
  3. 構成要素 設定ファイル (Resource,Module) ステータス (Backend) 対象環境 (Provider) .tfstate x.tf y.tf

    ・Terraform側のステータスを定義 .   Terraform管理下のリソース情報を保持 . ・保存先はいろいろある . ref
  4. 構成要素 設定ファイル (Resource,Module) ステータス (Backend) 対象環境 (Provider) .tfstate x.tf y.tf

    ・環境構築や認証方法を提供 .   ・様々なクラウドサービス、SaaSが存在. ・複数プロバイダを組み合わせることが可能  →マルチクラウドを構築可能
  5. .tfstateにないリソースが変更された時 .tfstate x.tf y.tf z.tf 設定ファイル (Resource,Module) ステータス (Backend) 対象環境

    (Provider) 一部だけTerraformするのもあり! 手動で作ってからTerraform化、とかやりやすい!
  6. まとめ • Terraformの構成要素は3つ. ◦ 設定ファイル(Resource,Module) ◦ ステータス(Backend) ◦ 対象環境(Provider) •

    Providerが豊富なので自由度が高い. ◦ アプリケーション環境はAWS、モニタリングはDatadogなど • 宣言的に環境を定義できる. ◦ 設定ファイル通りになるように、対象環境を変更する. ◦ ステータスに存在しないリソースは対象外なので、一部だけ適用可能.
  7. 付録:勉強会実施時のQ.A. 1. リソース作成順序はどうなるの? ◦ よしなに計算してくれる. ▪ 依存関係のないものは、並列実行 ▪ 依存関係のあるものは、依存先から実行 2.

    リソースを変更した場合の挙動はどうなるの? ◦ 削除して作成と、更新のパターンがあります。 ◦ 重要なリソースについては予め lifecycleで制御したほうがいい。