Open heowc opened 6 years ago
인프라를 만들고 바꾸고 버전 관리하는 도구
.tf
or .tf.json
https://www.terraform.io/downloads.html
https://github.com/wardviaene/terraform-course
https://github.com/heowc/vagrant-sample/tree/master/ubuntu1604_terraform
.tf
: 각각의 설정.tfvars
: 상수 값 초기화AWS 계정 생성
terraform init
region 확인(https://docs.aws.amazon.com/ko_kr/general/latest/gr/rande.html)
설정 작성(provider 지정)
terraform plan
terraform apply
aws_instance
aws_s3_bucket
aws_db_instance
engine
, username
, password
, ...skip_final_snapshot
: 마지막 스냅샷 skip 여부 main vpc
┌ subnet - [public], [private]
gateway ┼ subnet - [public], [private]
└ subnet - [public], [private]
public subnet
은 gateway
를 통해 접근할 수 있어야 한다. (service, application, etc)private subnet
은 외부로 부터 접근할 수 없어야 하며, nat-gateway
를 통해서만 접근 할 수 있어야 한다. (database, caching service, etc)terraform remote
backend
aws_security_group
※ CIDR 사이더(Classless Inter-Domain Routing, CIDR)는 클래스 없는 도메인 간 라우팅 기법으로 1993년 도입되기 시작한, 최신의 IP 주소 할당 방법이다.
설치
ssh 접속
ssh -i {pem file} {user}@{public ip}
scp -i {pem file} {user}@{public ip}
data
terraform get
설치
$ sudo apt-get update -y
$ sudo apt-get install -y nginx
실행
$ sudo systemctl start nginx.service
or
$ sudo service nginx start
설정 파일 갱신
$ sudo nginx -s reload
프록시 설정(ex. conf.d/ngx_proxy.conf
생성)
api application에 proxy 용도라면,
nginx.conf
에 include된 site-available를 주석하는 것이 좋다?
server {
location / {
proxy_pass http://localhost:8080;
}
}
명령어 | 설명 |
---|---|
apply | provider에 반영 |
destroy | 테라폼으로 provider에 반영된 내용 제거 |
fmt | 설정 파일 포맷과 스타일을 정리 |
get | 모듈 다운로드 및 업데이트 |
graph | Graph Viz 문법의 내용 표기 |
import | state import |
output | output 내용 표기 |
plan | 작성한 내용을 표기 |
push | hashicorp의 엔터프라이즈 툴인 atlas에서 push |
refresh | remote state 갱신 |
remote | remote storge 설정(ex. S3, consul) |
show | plan 내용 보기 |
state | 강화된 state 관리 command |
taint | apply에서 지정한 내용을 없애고 다음 apply에 재생성 |
validate | 테라폼 문법 검증 |
untaint | taint 취소 |
https://www.udemy.com/learn-devops-infrastructure-automation-with-terraform/learn/v4/overview