fullmoon's bright IT blog

[T103] 1주차 - 기본 사용 1/3 (1) 본문

Cloud/AWS

[T103] 1주차 - 기본 사용 1/3 (1)

휘영청 2023. 9. 3. 10:05
728x90

오랜만에 가시다님의 스터디에 참여합니다.

테라폼으로 시작하는 IaC' 책을 기준으로 하여 정리하였습니다.


[책 실습코드]

https://github.com/terraform101

 

Book - Infrastructure as Code: with Terraform

Example codes. Book - Infrastructure as Code: with Terraform has 7 repositories available. Follow their code on GitHub.

github.com

1주차 목표 :
- IaC와 테라폼을 이해하고 스터디에 필요한 실습 환경을 구성합니다.
- 테라폼 기본 명령 사용법을 알아봅니다.
- HCL을 이해하고 기본 활용 방법을 학습합니다.
- 샘플코드 작성 및 배포를 실습합니다.

 


 

인프라 운영이 물리적인 자체 데이터 센터 같은 온프레미스 환경부터 클라우드 환경에 이르기 까지 형태가 변화하면서 운영하는 방식도 지속적으로 바뀌고 있다.

 

이제 인프라를 코드로 관리하는 테라폼이 등장하였습니다. 그중 테라폼은 하시코프사에서 공개한 IaC 도구입니다.

워크플로우에 집중, 코드형 인프라, 실용주의는 하시코프의 철학이 담겨있습니다.

 

[IaC의 이해]

정말 코드형 인프라로 바뀌면 어떻게 달라질까요?

이러한 고민이 있는지 한번 생각해봅시다

• 수동으로 생성한 환경을 관리해보았는가?
• 변경을 해야 하는데 엔터 키를 누르기가 겁이 났었나?
• 백업이 손상되고 서버가 충돌하는 상황이 우려스럽나?
• 같은 환경을 재현할 수 없는 상황이 있었나?

코드로 인프라를 관리한다는 것은 ‘자유롭게 변경’하고, ‘환경을 이해’하고,‘반복적으로 동일한 상태를 만들 수 있다’는 말이다. 이에 대한 명세를 별도의 문서로 정리하지 않아도 인프라가 버전관리가 되기 때문에 편리하다는것입니다.

 

[좋은코드의 특징]

• 잘작동함 • 읽기 쉬움 •모듈화됨 • 테스트 가능함 • 보기 좋음(우아함)
 • 관리가 쉬움 • 변경이 쉬움 • 간결함(명확함)  • 효율적

  코드는 사실 복잡하죠

자동화를 위해서는 문서화해야 했고,인프라 종속성을 분석해 관리하며, 인프라 자원 변경이 있을 때마다 변경하고, 그 결과물 또는 결과물을 만들어내는 도구를 관리하고, 다시 사용할 수 있게 만들어야 했었는데 

좋은 코드가 좋은 인프라 자동화 방식 으로 이어지도록 만들어주는 게 IaC의 특징!


그렇다면 IaC중의 하나인 테라폼을 잠깐 알아보고 가요

[테라폼과 프로바이더의 호출관계]

테라폼은 terraform apply와 같은 명령으로 구현된 동작으로 만들어진 코드를 실행하고 배포하는 방식을
테라폼 자체만으로는 다양한 인프라와 서비스를 프로비저닝하 는 것은 불가능!
대상 인프라와 서비스를 테라폼으로 작업하기 위해서는 대상의 제공자, 즉 프로바이더가 둘 사이에서 인터페이싱
각 인프라와 서비스는 고유의 API 를 가지고 있으므 프로바이더는 각 API 명세를 테라폼 코드로 호출해 동작

 

[테라폼이 구성되는 세가지 형태]

  1. On-premise : Terraform이라 불리는 형태로, 사용자의 컴퓨팅 환경에 오픈소스 바이너리툴인 테라폼을 통해 사용
  2. Hosted SaaS : Terraform Cloud로 불리는 SaaS로 제공되는 구성 환경으로 하시코프가 관리하는 서버 환경이 제공
  3. Private Install : Terraform Enterprise로 불리는 서버 설치형 구성 환경으로, 기업의 사내 정책에 따라 프로비저닝 관리가 외부 네트워크와 격리 - 링크

 

[테라폼 클라우드 가격정책] [참고: Pricing, Feature]

  • Free : 리소스 500개 까지 무료 → 커뮤니티 버전
  • Standard : Free + 워크플로우 기능 추가 + 동시실행(Concurrency 개수 3개)
  • Plus : 정책, 보안, 신뢰성, 확장성 등 기업형 고객에게 적합(대규모 사용자를 위한 비용모델)
  • Enterprise : Plus와 대부분 유사하며 설치형 모델
728x90