自己紹介
エンジニアBLOGをご覧の皆様、初めまして。
ムラカミと申します。
AWSで構築されているKDDIのシステムの運用と改善を行っています。
1年前まではIaC化されていなかった環境でIaC化の取り組みを記事にします。
既存インフラをIaC化するのに最適な方法でTerraform importを利用したIaC化を記事にします。
(terraform のバージョンが1.5.0 未満での記事です。)
Infrastructure as Code(IaC)とは
Infrastructure as Code(IaC)とは、インフラストラクチャをコードで管理する手法です。
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化完成。
Terraform importの注意点
・Terraform importを使用する際には、以下の注意点があります。
他の人とTerraformを同時に触ると間違えて消されるかもしれないので注意
・Terraform importは、すべてのリソースに対応しているわけではありません。
IaCを導入することで、インフラの構築・運用・変更を効率化・自動化することができます。
ご興味を持って頂けると嬉しいです。
最後までご覧いただきありがとうございました。