【読書メモ】【10章】詳解 Terraform 第3版 ―Infrastructure as Codeを実現する

技術書

 

↓の本の「10章 チームでTerraformを使う」のメモを残します。

 

前章のメモ

 

チームでIaCを採用

 

IaCを採用するコスト

  1. スキルのギャップ
    • エンジニアは手動でインフラを管理することに慣れている
    • コードを書く時間が増えることに苦痛を感じる可能性あり
    • 新しい人を採用する必要もあるかも
  2. 新しいツール
    • ツールの学習に時間を要する
  3. マインドセットの変化
    • いままで手動で変更をしていたものがコードになり、作業に時間がかかる
    • 学び始めは効率よく扱えない
  4. 機会コスト
    • IaCを導入することに時間をかけるため他のタスクができない。
    • 他のプロジェクトとIaCを導入することはどちらが重要だろうか?

 

インフラコードのデプロイワークフロー

 

  1. バージョン管理
    • モジュール用とインフラデプロイ用の2つのリポジトリが理想
      • モジュール用リポジトリは0からインフラ構築するコストを減らせる
    • 変更はTerraformのコードからのみ行う
    • 先祖返りしないようにデプロイは特定の1つのブランチからのみ
  2. コードをローカルで実行
    • 実際にデプロイして確かめる必要あり
    • 専用のサンドボックス環境があるのが望ましい
  3. コードに変更を加える
    • 変更を加えたら再デプロイして確かめる
    • 時間がかかるので、変更分のみデプロイできるように工夫する
  4. 変更に対するレビューを依頼
    • バグだけでなく、チームのコーディングガイドラインに沿っているかもレビュー
  5. 自動テストの実行
    • terraform plan を実行して結果を読むべき
  6. 変更をマージしてリリース
  7. デプロイ
    • デプロイツール
      1. Atlantis
      2. Terraform Cloud, Terraform Enterprise
      3. Terragrunt
      4. スクリプト
    • デプロイを実行するのはサーバから。
      • デプロイ時の環境差異をなくすため
      • GitHub ActionsやCircleCI, Jenkinsなど
    • 環境間の昇格
      • 開発⇒ステージング⇒本番 のようにデプロイする

 

 

 

コメント

タイトルとURLをコピーしました