# Terraform 개념 잡기

> Clean Markdown view of GeekNews topic #11568. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=11568](https://news.hada.io/topic?id=11568)
- GeekNews Markdown: [https://news.hada.io/topic/11568.md](https://news.hada.io/topic/11568.md)
- Type: news
- Author: [ironlung](https://news.hada.io/@ironlung)
- Published: 2023-10-28T16:46:18+09:00
- Updated: 2023-10-28T16:46:18+09:00
- Original source: [insight.infograb.net](https://insight.infograb.net/blog/2023/01/25/terraform-basic)
- Points: 15
- Comments: 0

## Topic Body

- 이제는 AWS 콘솔에서 클릭 몇 번으로 서버 배포, 명령어 한 줄로 다양한 인프라 구축하는 시대  
- IaC  
    - 코드로 인프라 관리하고 프로비저닝 하는 것  
    - 우리가 원하는 네트워크, 서버 스토리지 등을 모두 코드로 저장, 관리  
    - 이로써 코드 공유, 테스트, 재사용해 인프라를 더 생산성있게 관리  
- Terraform  
    - Terraform은 IaC 중에서 가장 유명한 도구  
    - AWS, GCP, Azure 같은 클라우드뿐만 아니라 사내 솔루션까지 모두 관리함  
    - 원하는 최종 결과 정의하는 선언형 방식 사용해 결과 예측 쉬움  
    - 코드를 재사용하더라도 같은 결과 보장함  
    - terraform plan을 하면 AWS에서 어떻게 생성될지 구체적 계획 세움  
    - terraform apply 통해 실제 적용  
    - Terraform으로 생성된 리소스 정보를 tfstate라는 JSON 파일로 관리  
- Terraform 사용 방식  
    - 여러 키워드로 유저 입력 받아 리소스 생성, 실행 결과를 CLI 상에 출력하는 기능 제공  
        - Provider  
            - 리소스 유형 구현하는 플러그인  
            - AWS, GCP 같이 사용하는 클라우드 플랫폼과 서비스의 provider 찾아 구성에 추가, 해당 리소스 사용해 인프라 프로비저닝  
        - Module  
            - 관련 리소스 그룹을 단일 리소스인 것처럼 관리하는, 재사용 가능한 작은 Terraform 구성  
            - 다른 사람이 만든 모듈도 자유롭게 활용해 적은 코드로 많은 리소스를 효율적으로 관리함  
            - 구성을 다르게 해서 같은 모듈을 여러번 호출  
        - Resource  
            - 가상 네트워크, 컴퓨팅 인스턴스 또는 DNS 레코드와 같은 상위 수준 구성 요소와 같은 하나 이상의 인프라 개체 설명하는 키워드  
        - Variable  
            - 입력 변수는 모듈의 소스 코드 변경하지 않고 리소스 속성 지정함  
            - 프로그래밍 언어의 함수 매개 변수와 비슷함  
            - 입력 변수 통해 모듈을 더 유연하게 공유하고 재사용함  
        - Output  
            - 출력값은 명령줄에서 사용하는 인프라 정보 만들고, 사용할 다른 Terraform 구성 정보 노출할 수 있음  
            - 프로그래밍 언어의 반환값과 비슷함

## Comments



_No public comments on this page._
