Terraform 이란 (프로비저닝 도구와 코드형 인프라)?

2021. 8. 30. 14:48·DevOps/Terraform
목차
  1. 코드형 인프라
  2.  
  3. 프로비저닝 도구 //Terrform , CloudFormation , OpenStack Heat
  4. Terraform이란?
728x90
반응형

코드형 인프라

코드형 인프라란 코드를 작성 및 실행하여 인프라를 생성, 배포, 수정, 정리하는 것을 말한다. 이는 서버를 물리적으로 설치하는 등의 하드웨어 측면을 포함하여 운영의 모든 측면을 소프트웨어적으로 생각하는 중대한 사고 전환을 보여준다. 실제로 데브옵스의 핵심은 서버, 데이터베이스, 네트워크, 로그 파일, 애플리케이션 구성, 문서, 자동화된 테스트, 배포 프로세스 등 거의 모든 것을 코드로 관리할 수 있다는 것이다. 코드형 인프라 도구에는 다섯 사지 범주가 있다.

  • 애드혹 스크립트 //배시쉘 스트립트
  • 구성 관리 도구 //앤서블
  • 서버 템플릿 도구 // Docker , Packer, Vagrant
  • 오케스트레이션 도구 // Docker , Packer, Vagrant
  • 프로비전 도구 // Terraform , CloudFormation , OpenStack Heat

 

프로비저닝 도구 //Terrform , CloudFormation , OpenStack Heat

구성관리, 서버 템플릿 및 오케스트레이션 도구가각 서버에서 실행되는 코드를 정의한다면 Terraform, CloudFormation, OpenStack Heat(오픈스택 히트)와 같은 프로비전 도구는 서버 자체를 생성한다. 사실상 프로비전 도구를 사용하면 서버만 생성하는 것이 아니라 데이터베이스, 캐시, 로드밸런서, 큐, 모니터링 , 서브넷 구성, 방화벽 설정, 라우팅 규칙 설정, SSL(Secure Sockets Layer) 인증서 등 인프라에 관한 거의 모든 부분을 프로비저닝 할 수 있다.

 

Terraform이란?

Terraform은 (HashiCorp)사가 Go 언어로 개발한 오픈 소스 도구이다. 운영 체제마다 바이너리 파일이 존재하는데 Go코드는 하나의 바이너리 파일로 컴파일되며 Terraform이라는 명령어로 실행할 수 있다.

이 바이너리를 사용하여 어떤 컴퓨터에서든 인프라를 배포할 수 있으며 이를 위해 추가 인프라를 생성할 필요가 없다. 정확하게는 Terraform 바이너리가 AWS,Azure,GCP,NCP등의 공급자를 대신해 API를 호출하여 리소스를 생성한다.

즉, 테라폼은 클라우드 공급자가 제공하는 API 서버를 활용할 뿐만 아니라 AWS에 이미 보유한 API 키 같은 인증 메커니즘도 같이 사용한다는 의미이다.

 

Terraform은 어떻게 API를 호출할까? 테라폼은 생성하려는 인프라 정보가 담겨 있는 텍스트로 이루어진 테라폼 구성 파일을 생성하여 API를 호출한다. 

resource "awd_instance" "example" {
ami = "ami-0c55b159cbfafe1f0"
instance_type = "t2.micro"
}
resource "google_dns_recors_set" "a" {
name = "demo.google-example.com"
managed_zone = "example-zone"
type ="A"
ttl =300
rrdatas = [aws_instance.example.public_ip]
}

위 코드는 AWS를 호출할 API를 생성하여 서버를 생성한다. 그런 다음 API가 구글 클라우드를 실행하여 AWS의 서버에 접속하기 위한 서버 IP주소를 지정하는 DNS 정보를 생성하도록 하는 내용이다.

이처럼 테라폼을 사용하면 하나의 단순한 구문으로 여러 클라우드에 상호 연결된 리소스를 배포할 수 있다.

 

 

 

*참고

테라폼업앤러닝 책

 

728x90
728x90

'DevOps > Terraform' 카테고리의 다른 글

[NCP] Terraform을 활용한 NCP (Classic) - Server (2), LB(1) 구성  (0) 2021.08.31
[NCP] Terraform에서 apply 할 시, Status: 500 Internal Server Error 오류  (1) 2021.08.30
Terraform의 provisioner(프로비저너)란?  (1) 2021.08.30
[NCP] Terraform을 활용한 NCP 서버 이미지,서버 스펙 code 검색하기  (0) 2021.08.26
[NCP] Terraform 0.13.0 설치 + git으로 provider 가져오기  (2) 2021.08.26
  1. 코드형 인프라
  2.  
  3. 프로비저닝 도구 //Terrform , CloudFormation , OpenStack Heat
  4. Terraform이란?
'DevOps/Terraform' 카테고리의 다른 글
  • [NCP] Terraform에서 apply 할 시, Status: 500 Internal Server Error 오류
  • Terraform의 provisioner(프로비저너)란?
  • [NCP] Terraform을 활용한 NCP 서버 이미지,서버 스펙 code 검색하기
  • [NCP] Terraform 0.13.0 설치 + git으로 provider 가져오기
이코딩
이코딩
이코딩의 자동화 연구소 블로그입니다.
  • 이코딩
    이코딩의 자동화 연구소
    이코딩
  • 전체
    오늘
    어제
    • 분류 전체보기 (100)
      • IT (20)
        • IT 기초 지식 (13)
        • 네트워크 기초 (2)
        • 클라우드 (4)
      • DevOps (15)
        • Ansible (2)
        • Terraform (12)
        • Kubernetes (1)
      • Cloud (11)
        • NCP (NAVER Cloud Platform) (4)
        • NHN (NHN Cloud) (5)
        • AWS (Amazon Web Service) (2)
      • OS (1)
        • Linux (36)
        • Window (3)
      • 언어 (6)
        • JAVA (3)
        • Python (3)
      • 문서 작업 (2)
        • EXCEL (2)
      • 오픈소스 (6)
        • Zabbix (3)
        • Apache + Tomcat (3)
  • 반응형
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    라우팅 테이블
    Routing Table
    Apache
    NHN Cloud
    가상화
    Java
    tomcat
    Terraform
    NCP
    Python
    AWS
    테라폼업앤러닝
    zabbix
    window
    CentOS
    sftp
    cloud
    ansible
    클라우드
    Linux
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
이코딩
Terraform 이란 (프로비저닝 도구와 코드형 인프라)?
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.