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

とことんDevOps

June 02, 2022
Tweet

More Decks by とことんDevOps

Other Decks in Technology

Transcript

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  8. 今⽇のデモの流れ
    8

    View full-size slide

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

    10

    View full-size slide

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

    View full-size slide

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

    View full-size slide