エンジニアBLOG

2024/02/21

Terraform importを利用したIaC化

自己紹介

エンジニアBLOGをご覧の皆様、初めまして。
ムラカミと申します。

AWSで構築されているKDDIのシステムの運用と改善を行っています。
1年前まではIaC化されていなかった環境でIaC化の取り組みを記事にします。

既存インフラをIaC化するのに最適な方法でTerraform importを利用したIaC化を記事にします。
(terraform のバージョンが1.5.0 未満での記事です。)

Infrastructure as Code(IaC)とは

Infrastructure as Code(IaC)とは、インフラストラクチャをコードで管理する手法です。

image

IaCを導入することで、インフラの構築・運用・変更を効率化・自動化することができます。
Terraformは、IaCを実現するための人気のあるツールです。
Terraformでは、AWSやAzureなどのクラウドサービスや、オンプレミスのインフラストラクチャをコードで管理することができます。

Terraform importは、Terraformで既存のインフラストラクチャを管理するための機能です。
この機能を使用すると、既存のインフラストラクチャをTerraformの管理下に置くことができます。

Terraform importの基本

IaC化で利用したコマンド
用途:awsリソースをTerraform管理(以後、TF化)下に置く
・コマンド:terraform import
 ※詳細はTerraform公式ドキュメントのimport欄をご確認ください。

https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/instance

用途:TF化したリソース一覧を確認
・コマンド:terraform state list
用途:TF化したリソースの詳細確認
・コマンド:terraform state show
用途:TF化したリソース削除
・コマンド:terraform state rm
用途:TF化したリソースをAWSリソースに適用してみる。(ドライラン)
・コマンド:terraform plan

これから筆者が実践しているterraform importのやり方を記載します。初学者の方はお試しで実践してみてください。

注意:マネコンでTerraform化したいリソースが作成されていることが条件です。

1.公式ドキュメントを参照して適当なtfファイル(リソースファイル)を作成
(リソースの中身はあとで簡単に修正しますが、リソース名(ここではexample)を修正する場合は再度リソース自体を再作成する必要あり)
2.importコマンドを公式から参照(作成したいリソースの最下部に記載してます。)
3.1.で作成したtfファイルを上書き
4.1.で作成したtfファイルを修正
5.terrafom plan
・plan結果でNGが出ると思うので、NGとなった行をtfファイルから削除していく。
6.修正後、terrafom planを実行してNo changesになるまで繰り返す

No changes. Infrastructure is up-to-date.

これで、マネコンで作成したリソースと同じものがTerraform化完成。

image

Terraform importの注意点

・Terraform importを使用する際には、以下の注意点があります。
 他の人とTerraformを同時に触ると間違えて消されるかもしれないので注意

・Terraform importは、すべてのリソースに対応しているわけではありません。

IaCを導入することで、インフラの構築・運用・変更を効率化・自動化することができます。
ご興味を持って頂けると嬉しいです。

最後までご覧いただきありがとうございました。