연재 시리즈

테라폼 시리즈 10편. 출력(Output)

악분 2022. 10. 22. 11:30
반응형

안녕하세요. 이 글은 테라폼스터디 1주차 내용을 정리했습니다.

 

1. 출력(Output)이란?

output Block은 코드가 인프라에 반영된 후, 반영된 세부사항을 테라폼 코드에 저장하고 싶을 때 사용합니다.

 

예를 들어 aws EC2 Instance public IP를 output에 설정하여, 수동으로 aws EC2 Instance 대시보드를 확인하지 않아도 됩니다. 단지 output으로 ec2 Instance IP를 조회할 수 있습니다.

 

2. 예제

아래 테라폼 코드를 terraform apply명령어로 aws에 반영합니다. output은 aws_instance리소스를 참조하여 public IP를 참조했습니다.

cat <<EOT > main.tf
provider "aws" {
  region = "ap-northeast-2"
}

resource "aws_instance" "example" {
  ami                    = "ami-0e9bfdb247cc8de84"
  instance_type          = "t2.nano"
  vpc_security_group_ids = [aws_security_group.instance.id]

  user_data = <<-EOF
              #!/bin/bash
              echo "Hello, T101 Study" > index.html
              nohup busybox httpd -f -p 8080 &
              EOF

  tags = {
    Name = "t101-study-single-webSrv"
  }
}

resource "aws_security_group" "instance" {
  name = "terraform-example-instance"

  ingress {
    from_port   = 8080
    to_port     = 8080
    protocol    = "tcp"
    cidr_blocks = ["0.0.0.0/0"]
  }
}

output "public_ip" {
  value       = aws_instance.example.public_ip
  description = "The public IP of the Instance"
}
EOT

 

terraform init후 apply명령어를 실행하면 EC2 Instance가 생성됩니다.

terraform init
terraform apply

 

aws EC2 Instance의 public IP는 EC2 대시보드에서 수동으로 확인할 수 있습니다.

 

output을 설정했기 때문에 terraform output명령어를 실행하여 매우 쉽게 public IP를 얻을 수 있습니다. aws EC2 Instance 대시보드에서 확인한 public IP와 동일합니다.

 

반응형