Terraformを実務で初めて担当した体験談|既存コード修正で苦労したことと学び方

既存のTerraformコードと参考書で学ぶ女性インフラエンジニア AWS・クラウド

私はインフラエンジニアとしてOCIのクラウド移行プロジェクトに参加し、前任者からの引き継ぎをきっかけに、初めてTerraformを扱いました。

担当したのは、Terraformコードを一から新規作成する仕事ではありません。すでに用意されていたコードを読み、必要な箇所を修正する仕事です。

実務、参考書、Web、前任者や周囲の人からの説明を組み合わせて学びましたが、基礎知識がない状態で既存コードを理解するのは想像以上に大変でした。

この記事では、初めてTerraformを実務で担当したときの仕事内容、苦労したこと、学び方、転職面接での伝え方を紹介します。

※顧客名、システム名、実際のコード、構成、設定値などの機密情報は記載していません。

担当したのは既存Terraformコードの修正

私が担当したのは、OCI環境を構築する既存のTerraformコードの修正です。

公開できる範囲では、次のようなリソースや設定に関するコードを扱いました。

  • 仮想マシン・コンピュートインスタンス
  • オブジェクトストレージ
  • ブロックボリューム
  • Identity and Access Management(IAM)関連
  • Vault
  • Exadata関連

一つの種類だけではなく、コンピュート、ストレージ、権限、セキュリティ、データベースに関係する複数のリソースを確認する必要がありました。

前回の記事では、Terraformに加えてセキュリティとバックアップを担当したOCI移行の全体像を紹介しています。詳しくはオンプレからOCIへの移行で担当したことをご覧ください。

Terraformとは何か

Terraformは、インフラの構成をコードとして定義・管理するInfrastructure as Code(IaC)のツールです。

HashiCorpの公式ドキュメントでは、Terraformの設定ファイルによって、導入するプラグイン、作成するインフラ、取得するデータ、リソース間の依存関係などを記述できると説明されています。基本構文を確認するときは、Terraform Languageの公式ドキュメントが参考になります。

OCIでは、TerraformとOCIサービスをつなぐOCI Terraform Providerを利用します。対応するサービスや仕様は更新されるため、実務ではOracleのOCI Terraform Provider公式ドキュメントも確認する必要があります。

既存コードの修正でも難しかった理由

コードの一部分だけを見ても理解できなかった

既存コードがあるからといって、簡単に修正できるわけではありませんでした。

目の前の設定だけでなく、変数がどこから渡されているか、別のリソースとの依存関係はどうなっているか、修正によってどこまで影響するかを確認する必要があります。

Terraformの基本を十分に理解していない状態では、「この記述が何のためにあるのか」を読み解くことに時間がかかりました。

OCIサービスの知識も同時に必要だった

Terraformの構文だけ分かっても、正しく修正できるとは限りません。

たとえば、インスタンス、ストレージ、IAM、Vault、Exadataでは、それぞれ役割や設定項目が異なります。コードの意味を理解するには、TerraformとOCIサービスの両方を調べる必要がありました。

「Terraformを学ぶこと」と「クラウドサービスを学ぶこと」を同時に進める必要があった点も、難しさを感じた理由です。

変更による影響を考える必要があった

実務のコードは学習用のサンプルと異なり、実際の環境を管理しています。そのため、書き方が合っているだけでは不十分です。

既存リソースへの影響、意図しない変更が含まれていないか、チーム内の運用方法と合っているかなどを確認する必要があります。

コードを修正する前に、Terraformが管理する状態や変更の確認方法など、基本的な仕組みを理解する重要性を感じました。

Terraformは4つの方法を組み合わせて学んだ

前任者からの引き継ぎ

最初にTerraformを教わったのは、前任者からの引き継ぎでした。実際のコードと業務の流れを見ながら、担当する範囲を理解していきました。

実務に直接関係する内容を早く把握できる一方、限られた引き継ぎ時間だけでTerraformの考え方をすべて理解するのは難しかったです。

実務で既存コードを読む

担当するコードを読み、既存の記述がどのOCIリソースに対応しているかを確認しました。

実際に使われているコードから学べることは多くあります。しかし、基礎がないと処理のつながりを理解するまでに時間がかかるため、実務だけに頼るのは効率的ではないと感じました。

参考書『入門Terraform クラウド時代のインフラ統合管理』で基礎を整理する

参考書は、Terraformの全体像や用語を順序立てて理解するために利用しました。私が実際に読んだのは、『入門Terraform クラウド時代のインフラ統合管理』です。

業務で必要になった部分だけを調べていると知識が点になりやすいため、Terraformの概要、基本操作、IaCの考え方などを基礎から整理する目的で読みました。実務コードで分からなかった内容を参考書に戻って確認することで、個別の記述と全体の仕組みを結びつけやすくなりました。

『入門Terraform クラウド時代のインフラ統合管理』を確認する

※Amazonのリンクはアフィリエイトリンクです。価格、在庫、商品の詳細はリンク先でご確認ください。

Webと公式ドキュメントで仕様を確認する

具体的な書き方やOCIリソースの仕様は、Webや公式ドキュメントで調べました。

Terraformやクラウドサービスは更新されるため、検索で見つけた記事だけを信じず、最後に公式情報を確認することが大切です。

前任者や周囲の人に確認する

調べても判断できない部分は、前任者や周囲の詳しい人に確認しました。

特に、コードだけでは分からないプロジェクト固有の設計意図や運用ルールは、人に確認しなければ理解できないことがあります。

実務だけでなく基礎から学ぶことが重要

私が最も強く感じたのは、Terraformは実務コードを触るだけでなく、基礎から学ぶことが重要だという点です。

既存コードの修正から始める場合でも、少なくとも次の内容を先に整理しておくと理解しやすくなります。

  • TerraformとIaCの目的
  • provider、resource、data sourceの役割
  • 変数と出力値の扱い
  • リソース間の依存関係
  • 状態を管理する仕組み
  • 変更内容を事前に確認する考え方
  • モジュールを使う目的

すべてを暗記してから実務に入る必要はありません。しかし、基本用語と処理の流れを知っているだけでも、既存コードを読む負担は小さくなります。

転職面接では担当範囲を正直に伝えた

転職面接では、「Terraformを使ったことがある」とだけ伝えるのではなく、既存コードの修正を担当したことを正直に説明しました。

一からすべてを設計・実装したようには話さず、OCI移行案件で複数のリソースを扱い、調査・設計・構築に関わったことを整理して伝えました。

Terraformについては、面接官が関心を持って詳しく聞いてくれたと感じています。

面接での説明例

私の経験を整理すると、次のように説明できます。

OCIへの移行案件で、前任者から引き継いだ既存のTerraformコードを修正しました。仮想マシン、オブジェクトストレージ、ブロックボリューム、IAM、Vault、Exadataなどに関するコードを扱っています。初めてTerraformを担当したため、引き継ぎに加えて、実務、参考書、Web、公式ドキュメントを使って基礎から学びました。

面接では、経験を大きく見せるよりも、「新規作成か既存修正か」「どのリソースを扱ったか」「何を調べて対応したか」を具体的に説明するほうが伝わりやすいです。

既存コードの修正経験にも価値がある

Terraformの求人を見ると、「設計」「構築」「IaC」といった言葉が並び、一からコードを書けなければ経験として評価されないように感じるかもしれません。

しかし、既存コードを安全に修正するためにも、コードの読解、クラウドサービスの理解、影響範囲の確認、周囲との連携が必要です。

新規作成ではないことを明確にしたうえで、自分が担当したリソースや学んだことを説明すれば、実務経験として正確に伝えられます。

これからTerraformを学ぶ人に勧めたい進め方

  1. IaCとTerraformの基本的な目的を理解する
  2. 小さな学習用コードでresourceや変数の関係を確認する
  3. 担当するクラウドサービスの基礎も並行して学ぶ
  4. 既存コードを読み、各ファイルや記述の役割を整理する
  5. 分からない部分は公式ドキュメントと周囲の人に確認する
  6. 変更内容と影響範囲を確認してから作業する

実務を通じて覚えることは大切ですが、実務だけで理解しようとすると時間がかかります。基礎学習と実際のコードを往復する方法が、結果として理解を早めると感じました。

まとめ

  • 前任者からの引き継ぎで初めてTerraformを担当した
  • 担当内容は新規作成ではなく、既存コードの修正だった
  • OCIのコンピュート、ストレージ、IAM、Vault、Exadataなどを扱った
  • 実務、参考書、Web、前任者や周囲の人からの説明を組み合わせて学んだ
  • 実務だけでは理解に時間がかかり、基礎から学ぶ重要性を感じた
  • 転職面接では担当範囲を正直に伝え、Terraform経験に関心を持ってもらえた

Terraformを初めて担当するときは、既存コードがあっても簡単とは限りません。分からないことを調べながら、基礎知識と実務経験を少しずつ結びつけることが大切です。

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