알아두면 쓸모있는 테라폼
https://github.com/seongjumoon
문성주
● 페이스북 그룹 “코딩이랑 무관합니다만,” 운영진
● Move .Inc 병역특례 근무 (공노비 && 사노비)
● 오픈소스 도구들을 가지고 백엔드 개발을 하고 있습니다
● 쿠버네티스 컨트리뷰터 (주워먹기)
API 서버 개발
문성주
트러블 슈팅
서비스 워커
개발
VM Provision
Kubernetes
aws 리소스
관리
Move E-commerce
Education
때는 2019년 마소콘..
“ 퍼블릭 클라우드 환경에서는 Terraform을 많이
사용한다던데 앤서블과 테라폼의 차이는 뭔가요?
IaC? IaC는 뭔가요?
IaC (코드로 관리하는 인프라) 장점
1. 플레이크서버를줄일 수 있다.
2. 관리 포인트를줄일 수 있다.
3. 모듈 단위로재사용이가능하다
4. 반복된작업을자동화로전환하는장점이있다
5. 버전 관리를할 수 있다.
6. 하나의작업으로적용과테스트가가능하다
애드 혹 스크립트
#/bin/bash
…
…
..
구성 관리 도구
서버 템플릿 도구
테라폼
테라폼 설치하기
# windows
scoop install terraform
# macOS
brew install terraform
테라폼은 어떻게 돌아가나요?
provider
cloud
backend
tf. file
server
provision
init plan/apply destroy
1. 아래와 같이 수 많은 프로바이더를 제공합니다.
2. 테라폼은 해당 인프라의 상태를 선언적으로 정의합니다.
- ec2:
count: 10
image: ami-58d28146
instance_type: t2.micro
- ec2:
count: 15
image: ami-58d28146
instance_type: t2.micro
resource “aws_instance” “example” {
count = 10
ami = “ami-40d28157”
instance_type t2.micro
resource “aws_instance” “example” {
count = 15
ami = “ami-40d28157”
instance_type t2.micro
+15 +5
10 10
2. 계획(plan) 명령어로변경될부분을감지 할 수 있습니다.
3. 다양한 내장 함수를 지원합니다.
https://www.terraform.io/docs/configuration/functions.html
https://learn.hashicorp.com/terraform
4. 학습자료가 풍부합니다.
DRY (Do Repeat Yourself)
테라폼 변수 입력과 결과 출력
variable “ami_name” {
type = string
description = “(대충 애플리케이션 이미지 라는 내용)”
default = “ami-0a5e2e3642ba9f979”
}
output “instance_arn” {
value = {resource}.{name}.*.{attr}
}
terraform plan --var ami_name=name
resource “ec2_instance” “test” {
count = 1
ami = var.ami_name
}
테라폼 모듈
provider “aws” {
region = “ap-northeast-2” # 한국(서울리전)
}
module “instance” {
source = “./module”
}
지원하는 모듈 저장소
근데 만약에..
배포를 잘 했는데 제가 휴가가면어떻게 되죠?
provider
cloud
backend
tf. file
server
provision
init plan/apply destroy
테라폼 상태 공유
local remote
공유
.tfstate .tfstate
만약 동시에 같은 상태파일로 테라폼을 실행한다면?
https://www.terraform.io/docs/state/locking.html
lock 관리
.tfstate
TMI.. 굳이 원격 저장소에올리지않아도 되는 것들.
.terraform => 백엔드 정보
.tfstate => 작업 결과
.credentials => 접근 키, 비밀 키
https://gitignore.io/api/terraform
Demo:
어…? 혹시 이게 끝인가요?
# 오늘 다루지 않은 것들..
terraform import => 프로바이더를 통해 리소스를 가져오는 것
terraform v 0.12 feature
- local variables
- unwind string interpolation
질의응답
아무거나라도 좋습니다...
들어주셔서 감사합니다.

[MeetUp][2nd] 알아두면 쓸모있는 테라폼