terraform은 클라우드 리소스의 생성, 업데이트 및 삭제를 스크립팅 할 수 있는 cli기반 선언형 코드 인프라 툴 이다.
코드로 리소스를 관리하게 되면 인프라 업데이트 반복성 유지, 새로운 참여자를 위한 문서화, 휴먼에러를 없애는 이점을 누릴 수 있다.
테라폼은 모든 클라우드 공급업체에 적용할 수 있는 범용 언어이며 공급업체에 구애받지 않는다. 이 말의 뜻은 테라폼을 배우면 모든 클라우드 서비스의 스크립팅이 가능하며 다향한 곳에 적용할 수 있다.
init
을 하게 되면 tfstate
라는 파일이 생기게 되는데 이 파일 안에 인프라의 상태가 저장되게 된다.우리는 클라우드 밴더들의 서비스를 먼저 공부해야 한다.
그 이유는,
만약 내가 테라폼을 이용해서 AWS EC2를 시작하고 싶을때 클라우드 업체의 서비스를 알지 못하면 테라폼 자체를 작성 할 수 없다. 그래서 테라폼을 사용하기전에 클라우드 공급업체의 서비스 들을 이해한 뒤 사용하는 것을 추천한다.
테라폼을 작성할 때는
terraform{
}
이라는 블록안에 공급자와 리소스등을 구성한다.
테라폼 명령어 사용을 위해 각종 설정을 진행한다.
테라폼으로 작성한 코드가 실제로 어떻게 만들어질지에 대한 예측 결과를 보여준다. (plan 명령어들 습관화 하자)
테라폼 코드로 실제 인프라를 생성하는 명령어이다.
이미 만들어진 자원을 테라폼 state파일로 옮겨주는 명령어 이다.
테라폼 state를 다루는 명령어이다. 하위 명령어로 mv, push와 같은 명령어가 있다.
생성된 자원들 state파일 모두 삭제하는 명령어이다.
required_providers {
aws = {
source = "hashicorp/aws"
version = "~> 3.0"
}
}
}
공급자는 통합하려는 공급업체를 파악하고 리소스를 생성/관리하는 테라폼의 방법이다. 만약 AWS와 함께 Terreform을 사용하려면 AWS공급자가 필요하다. 그래서 해당 공급자의 플러그인을 가져오고 싶으면 terraform init
명령으로 가져올 수 있다.
테라폼의 프로세스는 다음과 같이 작동한다.
terraform plan
을 통해 apply
적용시 생길 리소스들 확인terraform apply
을 통해 적용함.다음 블로깅은 테라폼 실습을 통해 좀더 공부 해보자.