프로비저닝을 이용한 EC2 인스턴스 생성 실습 3-3

2019-02-06

variable과 output을 이용하여 인스턴스 생성해보기

그림, 실습코드 등 학습자료 출처 : https://gitlab.com/radajin

step1) 디렉토리 생성 및 이동

$ mkdir -p ~/python3/provisioning/05_vars_output

$ cd ~/python3/provisioning/05_vars_output

step2) vars.tf 생성 및 코드 작성

variable “server_port” {

description = “server_port”

default = 8080

}

variable “ami” {

type = “map”

default = {

ubuntu = “ami-06e7b9c5e0c4dd014”

}

}

step3) terraform console에서 선언된 변수 확인

$ terraform console

-> var.server_port

8080

-> var.ami[“ubuntu”]

ami-06e7b9c5e0c4dd014

step4) vars.tf 생성 및 코드 작성

provider “aws” {

region = “ap-northeast-2”

}

resource “aws_security_group” “dss_sg” {

name = “dss_sg”

ingress {

from_port = “${var.server_port}”

to_port = “${var.server_port}”

protocol = “tcp”

cidr_blocks = [

“0.0.0.0/0”,

]

}

}

resource “aws_instance” “vars_output” {

ami = “${var.ami[“ubuntu”]}”

instance_type = “t2.nano”

vpc_security_group_ids = [

”${aws_security_group.dss_sg.id}”

]

tags {

Name = “dss_vars_output”

}

}

step5) output.tf 생성 및 코드 작성

output “public_ip” {

value = “${aws_instance.vars_output.public_ip}”

}

step6) .tf 스크립트 확인 및 플러그인 설치, 인스턴스 실제 생성

$ terraform init

$ terraform plan

$ terraform apply -auto-approve

step 7) 인스턴스 생성 후 output 변수가 잘 출력되었는지 확인

step 8) 생성한 인스턴스 삭제

terraform destroy -auto-approve