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

Terraform CloudでIaC(Infrastructure as Code)について考えてみよう

Terraform CloudでIaC(Infrastructure as Code)について考えてみよう

今回の「とことんDevOps勉強会」では、DevOpsを実現する上で重要な要素となるIaC(Infrastructure as Code)と、それを実現するツールについて紹介します。なぜインフラをコードで記述するのか、なぜIaCがDevOpsにとって重要なのかを一緒に考えていきましょう。

IaCを実現するためのツールとして、かんたんDevOpsでTerraformを選んだ理由や、経緯、どんなことを考慮したのかなどを、Terraform、そしてTerraform Cloudのデモを交えてつつ紹介していきます。皆さんの経験や考えを聞かせていただきながら、効果的なIaCの実現方法について一緒に議論していきましょう。

セミナー動画
https://youtu.be/IcrNIyKTgFE

Acde11d776a108853232d01921eaeb77?s=128

とことんDevOps

June 02, 2022
Tweet

More Decks by とことんDevOps

Other Decks in Technology

Transcript

  1. Terraform Cloudで IaC(Infrastructure as Code) について考えてみよう ⽇本仮想化技術株式会社 ⽥中 智明 ttanaka@VirtualTech.jp

    2022/06/01 1
  2. ⾃⼰紹介 • ⽥中 智明 • VTJ技術部所属 • 去年の7⽉に⼊社 • 北海道からリモートで参加

    • かんたんDevOpsでツールの検証をやったり • Ops周りの案件をやったり • 調査したことについてブログを書いたり 2
  3. 本⽇のアジェンダ • IaCとは • IaCって実際どうなの︖ • なぜIaCが必要なのか • かんたんDevOpsでは •

    今⽇のデモの流れ • デモ • まとめ 3
  4. IaCとは • Infrastructure as Codeの略 • インフラの構成をコード化し、構築や管理はツールに任せる • ここでいうツールとは構成管理ツールのこと •

    コードは構成管理ツールが解釈できるフォーマットで記述 • ⼿作業でのプロビジョニングは⾏わない • 構築や管理をツールに任せることで冪等性を担保 • ⼈間の⼿が⼊らないことで、⾃動化が可能になり、⼈的ミスやコスト の削減につながる • コードはVCSで管理 • 構成レビュー • いつ、誰が、なぜ変更したのか履歴を残せる 4
  5. IaCって実際どうなの︖ • 便利ではあるが上⼿に付き合っていく必要がある • コードについての理解 • ツールによって⽂法は様々、YAMLだったり、JSONだったり、Pythonだったり • 構成管理ツールについての理解 •

    ⽣成されたこのファイル、必要なんだっけ︖ただのキャッシュなんだっけ︖ • 緊急時つい⼿作業したくなる • ⼿作業をしてしまうと後からその変更をコードに落とし込む必要がある • どういう変更をしたのか履歴が残っていなればコード化が難しい • 対応した⼈しかわからない作業が発⽣していたかもしれない • どこまでコード化するのか • ⼆度とやらない作業や、塩漬けの環境までコード化するのか 5
  6. なぜIaCが必要なのか • DevOpsには⾼速化、省⼒化が求められている • 構成をコードで管理することで⼿順書などのドキュメントが不要に • ドキュメントの更新漏れ、記述ミス、わかりづらさから冪等性を担保できない • 構築される構成の正しさをドキュメントではなくコードで担保 •

    作業者のスキルに依存しない • 誰が何度やっても同じ構成が作れる • 誰が何度やっても同じ時間で構築ができる • コード化しないとその作業からは離れられない • コード化さえしていれば、あとは誰が実⾏しても同じ • ⾃分でその作業をやらなくてよくなる • ⼿が空けばさらなるコード化や⾃動化が進む 6
  7. かんたんDevOpsでは • IaCツールとしてTerraform Cloudを採⽤ • 直近の案件で使っていた • デファクトスタンダードなツールがいい • Ansible

    or Terraform ?? • 宣⾔型の構成管理ツールがいい • 構成管理ツールには宣⾔型と命令型がある • 宣⾔型はリソースの状態を記述していき、命令型は⼿順を記述していく • Terraform CLIにはいくつか使いづらい点がある • tfstateの共有 • refresh-onlyオプションを使ったり • tfstateの保存先としてS3やCloud Storageが指定できる • 作業のバッティング • 複数の作業者が同時に作業できてしまう • tfstateがコンフリクトしてしまう 7
  8. 今⽇のデモの流れ 8

  9. デモ 9

  10. まとめ • IaCを使⽤することでDevOpsを⾼速化、省⼒化できる • コード化していれば⾃分以外の⼈でもプロビジョニングできる ので、最悪その作業は⾃分でやらなくてもよくなる • Terraform CloudはCLIに⽐べて楽にはじめられるのでおすす め

    10
  11. 参考リンク • Red Hat社によるIaCについての解説 https://www.redhat.com/ja/topics/automation/what-is- infrastructure-as-code-iac • Terraform Cloud https://cloud.hashicorp.com/products/terraform

    • GitHub、Terraform CloudとGCPのつなぎ⽅を解説 https://devops- blog.virtualtech.jp/entry/20220530/1653878563 11
  12. ⽇本仮想化技術株式会社 概要 • 社名︓⽇本仮想化技術株式会社 • 英語名︓VirtualTech Japan Inc. • 略称︓⽇本仮想化技術/VTJ

    • 設⽴︓2006年12⽉ • 資本⾦︓3,000万円 • 売上⾼︓2億6499万円(2021年7⽉期) • 本社︓東京都渋⾕区渋⾕1-8-1 • 取締役︓宮原 徹(代表取締役社⻑兼CEO) • 伊藤 宏通(取締役CTO) • スタッフ︓11名(専任エンジニア︓8名) • URL︓http://VirtualTech.jp/ • 仮想化技術に関する研究および開発 • 仮想化技術に関する各種調査 • 仮想化技術に関連したソフトウェアの開発 • 仮想化技術を導⼊したシステムの構築 • OpenStackの導⼊⽀援・新規機能開発 ベンダーニュートラルな 独立系仮想化技術の エキスパート集団 12
  13. 13