Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

목차

IAC

1-1 Iac (Infra as a Code) 란?

...

...

Tool

Tool Type

Approach

Language

CHEF

설정 관리

선언형 & 명령형

Ruby

puppet

설정 관리

선언형

DSL & ERB

Ansible

설정 관리

선언형 & 명령형

YAML

CloudFormation

인프라 프로비저닝

선언형

JSON & YAML

Terraform

인프라 프로비저닝

선언형

HCL (Hashicorp Configuration Language)

1-3 lac 가치와 기대 효과

첫 번째 - 비용 절감입니다. IT 시스템의 운영/관리 에는 많은 인력과 비용이 소요됩니다. 단순히 재무적인 측면에서 비용 절감 효과 이외에 사람이 수 작업으로 진행하는 일들을 자동화하고, 운영/관리를 통합 관리함으로써 많은 비용 효율을 얻을 수 있으며, 기업 입장에서는 보다 중요한 비즈니스에 집중함으로써 높은 비용 효율을 확보할 수 있게 됩니다.


두 번째 - 빠른 실행입니다. 인프라 운영/관리의 자 동화를 통해 인프라를 보다 빠르고 효과적으로 구 성할 수 있습니다. 빠른 실행 능력을 통해 빠르게 변화하는 시장 상황에 보다 민첩하게 대응할 수 있으므로, 시장 선도적인 기술 도입을 통한 시장의 혁신을 주도할 수 있게 됩니다

세 번째 - 리스크 관리입니다. 인프라의 자동화는 수 동 구성 시 발생할 수 있는 오류와 인적 오류 (Human Error)와 관련된 위험(Risk)을 제거할 수 있습니다. 이런 위험을 제거하면 서비스의 다운타임(Down Time)이 감소하고 신뢰성이 향상될 수 있습니다.

...

이러한 laC의 가치(Value)와 기대 효과는 기업이
IT 시스템의 개발과 운영을 위한 DevOps를 구현하는데 필요한 핵심적인 역량이 됩니다.

2-1 [lac] Terraform이란?

Terraform은 선언적(declarative) 방식으로 인프라를 관리하는 도구입니다. 선언적이란 쿠버네티스, aws, gcp, ncp 등의 클라우드 자원들을 코드 형태로 작성해서 배포하고 운영할 수 있는 환경을 제공합니다. Terraform은 기본적으로 코드를 작성하고 plan 명령을 이용해서 코드를 시뮬레이션을 하고 이상이 없으면 적용할 수 있다. Terraform은 테라폼 코어라는 기능을 제공하여 프로바이더와 프로비저너를 활용할 수 있고, 다양한 대상의 API를 연결해서 쓸 수 있도록 제공하는 도구 입니다.

image-20240320-012136.pngImage Added

Terraform원하는 결과(state)를 명시하면, Terraform이 그 결과를 달성하기 위해 필요한 일련의 작업들을 자동으로 수행한다는 의미입니다수행하는 선언적(declarative) 방식으로 인프라를 관리하는 도구입니다. 선언적인 방식은 인프라 관리를 단순화하고, 일관성을 유지할 수 있게 도와줍니다. 또한, 변경 내역을 추적하기도 용이합니다. 

...

HCL은 Terraform을 위해 개발된 언어이며, HCL은 JSON과 유사한 구문을 사용하며, 구조화된 데이터를 표현하기 적합합니다. 그러나 HCL은 JSON보다 가독성이 높고 유연하다는 장점이 있습니다. 
또한, HCL에서는 변수와 함수를 사용할 수 있어서, 코드를 재 사용하고 유연하게 구성할 수 있으며 복잡한 구성을 쉽게 표현할 수 있습니다.

image-20240320-012210.pngImage Added

2-2 Terraform 주요 명령어

terraform init - 초기화

terraform plan - 인프라 변경 사항에 관한 실행 계획

terraform validate - 유효성 검증

terraform apply - 계획을 기반으로 작업을 실행

terraform destroy - 모든 개체를 제거

terraform fmt - 코드 정렬 (띄어쓰기, 정렬 등)

terraform show - 현재 상태에 대한 Inspect 결과 출력

image-20240320-012237.pngImage Added

2-3 Terraform 구성코드는 어떻게 작성되는가?