Terraform
Terraform 기본
Devops mg
2023. 5. 3. 19:14
Terraform 구성요소
| 구성요소 | 내용 |
| provider | 테라폼으로 생성할 인프라의 종류를 의미한다. |
| resource | 테라폼으로 실제로 생성할 인프라 자원을 의미한다. |
| state | 테라폼을 통해 생성한 자원의 상태를 의미한다. |
| output | 테라폼으로 만든 자원을 변수 형태로 state에 저장하는 것을 의미한다. |
| module | 공통적으로 활용할 수있는 코드를 문자 그대로 모듈 형태로 정의하는것을 의미한다. |
| remote | 다른 경로의 state를 참조하는것을 말한다. output 변수를 불러올때 주로 사용한다. |
tfstate 파일 과 리소스를 동기화 시키는게 키포인트
| 명령어 | 내용 |
| init | 테라폼 명령어 사용을 위해 각종 설정을 진행한다. |
| plan | 테라폼으로 작성한 코드가 실제로 어떻게 만들어질지에 대한 예측 결과를 보여준다. |
| apply | 테라폼 코드로 실제 인프라를 생성하는 명령어다. |
| import | 이미 만들어진 자원을 테라폼 state 파일로 옮겨주는 명령어다. |
| state | 테라폼 state 를 다루는 명령어다. 하위 명령어로 mv, push 와 같은 명령어가 있다. |
| destroy | 생성된 자원들 state 파일 모두 삭제하는 명령어다. |
Process
| init | plan | apply |
| 작성한 코드에서 init 명령어를 입력한다. 테라폼의 다른명령어들을 위한 설정을 진행한다. 내부적으로는 provider 와 state ,module 설정등이 있다. |
실제로 작성한 테라폼 코드가 어떻게 만들어질지에 대한 예측결과를 보여주는 명령어다. 가장 많이 쓰이는 명령어다. 기본적으로 plan에 문제가 없어야 apply 에 문제가 없을 확률이 높다. |
실제로 작성한 코드로 aws 리소스를 생성하는 명령어다. 실제 인프라에 영향을 끼치는 명령어이므로 주의깊게 실행을 해야합니다. |
항상 plan 명령어를 습관화하기!
apply 는 주의하기
출처: 본 내용은 인프런의 "처음 시작하는 infrastructure as Code : AWS & 테라폼" 내용입니다.
https://www.inflearn.com/course/%EB%8D%B0%EB%B8%8C%EC%98%B5%EC%8A%A4-%ED%85%8C%EB%9D%BC%ED%8F%BC-aws