Terraform은 IAC(infra as a code 코드형 인프라)로 코드를 통해 인프라 서버를 생성, 운영 관리하는 것이다.
aws를 예로 든다면 실제 사람이 aws에 접속해서 수동으로 설정해야 하는 것을 코드로 작성해 문서화, 자동화 하는 것
장점
1. 버전 컨트롤이 가능하다 (버전을 관리해줌)
2. 문서로서의 코드 (문서화)
3. 코드의 재사용과 복제 가능
4. 실수 방지
5. Git 등을 통한 형상관리로 인프라 변경 기록을 쉽게 확인 할 수 있다.
6. 자동화
Workflow
1. Infra를 코드로 작성한다
2. 변경하기 전에 변경을 확인한다 (Terraform plan)
3. 변경 내용을 적용한다 (Terraform apply)
Terraform의 구성요소
1. Provider - Terraform으로 생성한 인프라의 종류
2. Resource - Terraform으로 생성할 인프라의 자원
3. State - Terraform을 통해 생성한 자원의 상태
4. Output - Terraform으로 만든 자원을 변수 형태로 state에 저장하는 것
5. Module - 공통적으로 활용할 수 있는 코드를 문자 그대로 모듈 형태로 정의하는 것
6. Remote - 다른 경로의 state를 참조하는 것. output 변수를 불러올 때 사용한다
Terrafrom 명령어
1. Init - Terraform명령어 사용을 위해 각종 설정을 진행
2. plan - Terraform으로 작성한 코드가 실제로 어떻게 만들어질지 예측
3. apply - Terraform 코드로 실제 인프라를 생성한다
4. import - 이미 만들어진 자원을 Terraform state 파일로 옮겨준다
5. state - Terraform state를 다루는 명령어\, 하위 명령어로 mw\, push와 같은 명령어가 있다
6. destroy - 생성된 자원\, state 파일 기준으로 모두 삭제하는 명령어이다
[VScode] local에서 Terraform vpc 생성 (0) | 2022.07.28 |
---|---|
git으로 Terraform DDB 생성하기 (0) | 2022.07.28 |
댓글 영역