Terraform이란?
IAC 중에 하나 ( Infra As Code )
코드로 인프라를 만든다!
IAC 관련 설명
특징
- AWS, Azure, GCP 제어가능 ( Provider )
- GO언어 기반의 언어 사용
- 코드 재사용이 용이 (프로비저닝)
- 반복적인 인프라 구성
설치
동작 과정
1. 테라폼 초기화 (Init)
2. 인프라 변경 사항 확인 (Plan)
3. 확인한 변경 사항 적용 (Apply)
4. 기존의 디소스 삭제 (Destory)
1. .ft 소스코드 작성
2. Terraform 실행 ( ft파일 실행 )
3. 기존의 인프라의 구조를 설명하고 있는 파일(.ftstate)과 비교
4. 변경사항 적용!
Terraform 코드 작성하기
AWS 계정, 버전 설정
// provider.tf 파일
// 컴퓨터 자원을 제공하는 사용자 정보
provider "aws" {
region = "ap-northeast-2"
profile = "AWS프로필명"
access_key = "공개키"
secret_key = "비밀키"
default_tags {
tags = local.common_tags
}
}
terraform {
// 제공 소스 주소, 버전 설정
required_providers {
aws = {
source = "hashicorp/aws"
version = "~> 4.0"
}
}
}
AWS 저장소 연결
// backend.tf
terraform {
// s3, dynamodb 연동
backend "s3" {
bucket = "버킷 이름"
dynamodb_table = "dynamodb 테이블명"
encrypt = true
key = "remote"
region = "ap-northeast-2"
}
}
Terraform이 EC2 만들 수 있게 정의
// main.tf
locals {
common_tags = {
Environment = "dev"
Application = "myapp"
Terraform = "true"
}
}
// tf-ec2-example이라는 ec2 정의
resource "aws_instance" "ec2_example" {
// 이미지 파일 선택
ami = data.aws_ami.amazon_linux2.id
// 인스턴스 타입 선택
instance_type = "t2.micro"
// 이름 태그 설정
tags = {
Name = "tf-ec2-example"
}
}
Terraform에서 사용할 변수 선언
// variables.tf
variable "region" {
default = "ap-northeast-2"
}
Terraform 실행하기
초기화
terraform init
인프라 변경사항 확인
terraform plan
Terraform 적용
terraform apply
Terraform 자원 삭제
terraform destroy
반응형