Slide 1

Slide 1 text

Terraform Cloudで IaC(Infrastructure as Code) について考えてみよう ⽇本仮想化技術株式会社 ⽥中 智明 [email protected] 2022/06/01 1

Slide 2

Slide 2 text

⾃⼰紹介 • ⽥中 智明 • VTJ技術部所属 • 去年の7⽉に⼊社 • 北海道からリモートで参加 • かんたんDevOpsでツールの検証をやったり • Ops周りの案件をやったり • 調査したことについてブログを書いたり 2

Slide 3

Slide 3 text

本⽇のアジェンダ • IaCとは • IaCって実際どうなの︖ • なぜIaCが必要なのか • かんたんDevOpsでは • 今⽇のデモの流れ • デモ • まとめ 3

Slide 4

Slide 4 text

IaCとは • Infrastructure as Codeの略 • インフラの構成をコード化し、構築や管理はツールに任せる • ここでいうツールとは構成管理ツールのこと • コードは構成管理ツールが解釈できるフォーマットで記述 • ⼿作業でのプロビジョニングは⾏わない • 構築や管理をツールに任せることで冪等性を担保 • ⼈間の⼿が⼊らないことで、⾃動化が可能になり、⼈的ミスやコスト の削減につながる • コードはVCSで管理 • 構成レビュー • いつ、誰が、なぜ変更したのか履歴を残せる 4

Slide 5

Slide 5 text

IaCって実際どうなの︖ • 便利ではあるが上⼿に付き合っていく必要がある • コードについての理解 • ツールによって⽂法は様々、YAMLだったり、JSONだったり、Pythonだったり • 構成管理ツールについての理解 • ⽣成されたこのファイル、必要なんだっけ︖ただのキャッシュなんだっけ︖ • 緊急時つい⼿作業したくなる • ⼿作業をしてしまうと後からその変更をコードに落とし込む必要がある • どういう変更をしたのか履歴が残っていなればコード化が難しい • 対応した⼈しかわからない作業が発⽣していたかもしれない • どこまでコード化するのか • ⼆度とやらない作業や、塩漬けの環境までコード化するのか 5

Slide 6

Slide 6 text

なぜIaCが必要なのか • DevOpsには⾼速化、省⼒化が求められている • 構成をコードで管理することで⼿順書などのドキュメントが不要に • ドキュメントの更新漏れ、記述ミス、わかりづらさから冪等性を担保できない • 構築される構成の正しさをドキュメントではなくコードで担保 • 作業者のスキルに依存しない • 誰が何度やっても同じ構成が作れる • 誰が何度やっても同じ時間で構築ができる • コード化しないとその作業からは離れられない • コード化さえしていれば、あとは誰が実⾏しても同じ • ⾃分でその作業をやらなくてよくなる • ⼿が空けばさらなるコード化や⾃動化が進む 6

Slide 7

Slide 7 text

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

Slide 8

Slide 8 text

今⽇のデモの流れ 8

Slide 9

Slide 9 text

デモ 9

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

参考リンク • 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

Slide 12

Slide 12 text

⽇本仮想化技術株式会社 概要 • 社名︓⽇本仮想化技術株式会社 • 英語名︓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

Slide 13

Slide 13 text

13