はじめに
この記事では、既存のAWSリソース情報をTerraformに取り込む方法を説明します。これは、手動で作成したリソースや他のツールで作成したリソースをTerraformで管理するために役立つ技術です。
環境
- Terraform v1.0.0以上
- AWSアカウント
- AWS CLI設定済み(認証情報)
既存リソースの情報をtfstateに取り込む
既存のEC2インスタンスのIDを取得します。AWS Management Consoleか、AWS CLIを利用して取得します。
取得したインスタンスIDをに置き換えて以下のコマンドを実行します。
terraform import aws_instance.import-server <your-instance-id>
確認
terraform showコマンドを実行することで、インポートしたリソースの詳細を確認できます。
terraform show
取得した情報の記載
ネットワークに関しては下記に詳細を記載しています。
以下のようにimport-server.tfを作成します。既存のEC2インスタンス情報を取り込んだ後、その設定を反映するためにこのファイルを使います。
import-server.tf
resource "aws_instance" "import-server" {
ami = "ami-xxxxxxxxxx"
subnet_id = "subnet-xxxxxxxxxx"
availability_zone = "ap-northeast-1c"
instance_type = "t2.micro"
key_name = aws_key_pair.keypair.key_name
tags = {
"Name" = "import-server"
}
}
リソースの確認
最後にterraform planコマンドを実行して、現在の状態と計画された状態を確認します。
terraform plan
この方法を用いることで、既存のインフラ環境をコードで管理し、状態の一貫性を保つことができます。