Infrastructure as Code
IaC
코드로써 인프라를 얘기
인프라를 이루는 서버, 미들웨어, 서비스 등의 인프라 구성 요소들을 코드를 통해 구축하는 것
코드로서의 장점을 다 가지고 있음 -> 작성하는 게 빨라짐, 작성용이성, 재사용성, 유지보수 등의 장점
Terraform
가장 많이 쓰이는 IaC 도구
Terraform is a tool for building, changing, and versioning infrastructure safely and efficiently
테라폼은 인프라를 효율적으로 만들고, 변경하고, 기록하고, 버전 관리를 할 수 있는 IaC를 위해 만들어진 도구이다.
.tf 형식의 파일 형식을 가진다.
AWS, Azure, GCP 같은 퍼블릭 클라우드뿐만이 아닌 다양한 서비스들 역시 지원한다.
Terraform 기본 구성 요소
구성 요소 | 설명 |
provider | 테라폼으로 생성할 인프라의 종류 |
resource | 테라폼으로 실제로 생성할 인프라 자원 |
state | 테라폼을 통해 생성한 자원의 상태 (파일 형태로 남음, 실제 테라폼 명령어 실행의 결과값, 실제 인프라의 상태는 아님, 스테이트 파일과 현재 인프라의 상태를 똑같이 유지하는 게 키포인트, state는 원격 저장소인 'backend'에도 저장될 수 있음) |
output | 테라폼으로 만든 자원을 변수 형태로 state 파일에 저장하는 것 |
module | 공통적으로 활용할 수 있는 코드를 문자 그대로 모듈 형태로 정의하는 것 (재사용 시 강점이 있음. moudle은 한 번 만들어진 테라폼 코드로 같은 형태를 반복적으로 만들어낼 때 주로 사용됨.) |
remote | 다른 경로의 state파일을 참조하는 것. output 변수를 불러올 때 주로 사용 (원격 참조 개념으로 이해하면 좋음) |
공부 방법
지금 당장 설치하고 작성해서 무언가를 만들어봐라!
먼저 가까워지는 게 더 중요하다.
Junior라면, 처음 시작하는 사람이라면 일단 설치하고 작성해서 무언가를 만들어봐라.
Terraform 기본 명령어
명령어 | 설명 |
init | 테라폼 명령어 사용을 위해 각종 설정 진행 |
plan | 테라폼으로 작성한 코드가 실제로 어떻게 만들어질지에 대한 예측결과를 보여줌 (가장 많이 쓰이는 명령어. 기본적으로 plan에 문제가 없어야 apply에 문제가 없을 확률이 높음. 습관화해야 하는 명령어) |
apply | 테라폼 코드로 실제 인프라를 생성하는 명령어 (실제 자원 생성. 실제 인프라에 영향을 끼치는 명령어이므로 주의깊게 실행해야 함) |
Import | 이미 만들어진 자원을 테라폼 state 파일로 옮겨주는 명령어 |
state | 테라폼 state를 다루는 명령어. 하위 명령어로 mv, push와 같은 명령어 |
destroy | 생성된 자원들 state 파일 모두 삭제하는 명령어 |
Ref.
'DevOps > Terraform' 카테고리의 다른 글
[DevOps] AWS, Terraform - AWS IAM (0) | 2023.06.19 |
---|---|
[DevOps] AWS, Terraform - AWS S3 (0) | 2023.06.18 |
[DevOps] AWS, Terraform - Terraform으로 AWS 리소스 생성하기 (0) | 2023.06.18 |
[DevOps] AWS, Terraform - AWS EC2 및 SSH 활용 (0) | 2023.06.15 |
[DevOps] AWS, Terraform Intro (1) | 2023.06.13 |