반응형
안녕하세요. 이 글은 테라폼스터디 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와 동일합니다.
반응형
'연재 시리즈' 카테고리의 다른 글
테라폼 시리즈 12편. 1주차 과제 (0) | 2022.10.22 |
---|---|
테라폼 시리즈 11편. 변수와 입력 (0) | 2022.10.22 |
테라폼 시리즈 9편. 리소스 참조 (0) | 2022.10.22 |
테라폼 시리즈 8편. 변경/변경불가능 속성 (0) | 2022.10.21 |
테라폼 시리즈 7편. 테라폼 상태파일(tfstate) (0) | 2022.10.21 |