🐈

Terraformを業務で使用して感じたメリット・デメリット

2022/03/13に公開

概要

職場のインフラ環境がオンプレからAWSに移行したタイミングでTerraformを使う機会がありました。
使ってみて感じたメリット・デメリットをまとめます。

メリット

コミュニケーションコストの低下

僕の職場ではインフラエンジニアとアプリケーション開発のエンジニアは明確に分かれています。
そのためインフラ関係で必要な作業があると、インフラエンジニアに作業内容を説明して作業を行ってもらう必要があります。
AWS上にある程度規模のあるシステムを構築しようとすると、IAMの設定や各種リソースの細かい設定値を漏れなく伝えるコミュニケーションコストが発生していました。
Terraformを使うことにより、これらの設定値をアプリケーションエンジニアがコードで書いて、インフラエンジニアはそのレビューをするだけに出来ました。
これにより、コミュニケーションコストを減らし、連携ミスを減らすことが可能になりました。

レビューが出来る

インフラ作業のレビューをする場合には手順書を作成してレビューしていました。
しかし以下の問題点がありました。

  • 作業手順書の作成にアプリケーションエンジニアが慣れておらず、作成レビューが大変
  • 多数の設定値を手順書に分かりやすく落とし込むのが大変

Terraformであれば、コード自体が手順書なるし、Github上でレビューが出来るので、スムーズでした。

コメントが残せる

GUIでAWS上の作業をした場合、作業の背景や設定値の理由は、ドキュメントとして別途残すことになります。
Terraformであれば、設定値のすぐそばにコメントを残せるので、一番見やすい場所に残すことができます。

デメリット

裏側の設定の把握が必要

GUIでリソースを作成する場合、AWSが気を利かせて必要な権限や設定をよしなにやってくれます。
Terraformの場合、そのような設定も全て自分でやる必要があるため、お試しでサクッと試したいような場面ではGUIを使うのが良いと思いました。

GUI管理との棲み分け

すでに運用しているAWS環境でTerraformを使おうとすると、参照したいリソースがTerraform上にない、と言ったことが起こります。
Terraform importの機能を使えば、対応は可能ですが、リソースが多い場合なかなかに大変だとは思いました。

まとめ

Terraformを使ってみて効率的かつ安全にインフラ管理をできるようになったので導入して良かったと思います。

Discussion