학습 목표
- Infrastructure as Code(이하 IaC)의 의미와 필요성을 이해할 수 있다.
- 수동으로 인프라를 설정하는 것의 장/단점을 파악할 수 있다.
- IaC의 장점을 파악할 수 있다.
- IaC의 종류를 파악할 수 있다.
- 선언형 IaC와 절차형 IaC의 차이를 이해할 수 있다.
- 테라폼의 특징 및 장점을 통해 테라폼의 주 사용 목적을 이해할 수 있다.
- 예상치 못한 인프라 변경을 어떻게 대비하는지 이해할 수 있다.
- 불변(Immutable)한 인프라를 구성한다는 것의 의미를 이해할 수 있다.
- 테라폼의 작동 원리를 이해할 수 있다.
- 테라폼 공식 문서를 통해, HCL 언어로 인프라를 구성할 수 있다.
- 주요 명령어를 이해할 수 있다.
- 테라폼 상태 파일의 의미를 이해할 수 있다.
- 테라폼 상태 파일을 이용한 운영의 모범 사례를 이해할 수 있다.
- AWS VPC 구성을 더욱 잘 이해할 수 있다.
- VPC 및 public/private 서브넷에 대한 개념을 보다 더 확실하게 이해할 수 있다.
- IaC 종류
- 절차형 IaC
- 프로그래밍 언어를 이용해서 직접 순차적으로 인프라를 생성하도록 코드를 작성하는 방법
- 선언형에 비해 더 강력한 일들을 할 수 있으나, 실제 적용된 결과를 가늠하기 어렵고, 코드를 읽기에 직관적이지 않음
- 종류
- AWS DCK
- Pulumi
- 선언형 IaC
- 선언형 언어 JSON, YAML 등을 사용함
- 실제 인프라가 적용된 결과(기대하는 상태)와 적용할 내용(YAML 등)이 직관적으로 매핑됨
- 종류
- CloudFormation(AWS에서만 사용 가능)
- Azure Blueprint(Azure에서만 사용 가능)
- Cloud Deployment Manager(GCP에서만 사용 가능)
- Terraform(어떤 클라우드 서비스에서도 적용되는 범용 IaC 도구)
- 절차형 IaC
- HashiCorp의 IaC 도구
- 사람이 읽을 수 있는 선언적 구성 파일에서 리소스와 인프라를 정의하고, 인프라의 수명 ㅈ ㅜ기를 관리할 수 있음
- 장점
- 여러 클라우드 플랫폼에서 인프라를 관리할 수 있음
- 사람이 읽을 수 있는 구성 언어는 IaC를 빠르게 작성하는 데 도움이 됨
- Terraform의 상태를 사용하면 배포 전체에서 리소스 변경 사항을 추적할 수 있음
- 버전 제어에 대한 구성을 커밋하여 인프라에서 안전하게 협업할 수 있음
https://developer.hashicorp.com/terraform/tutorials/aws-get-started
되게 신기하다 ..
콘솔에서 하나하나 찍던 거를 문서 하나로 뚝딱 만드는 게 넘 신기하고 편리해보이고
휴먼에러의 실수가 줄어든다는 IaC의 장점이 확실하게 와닿는 거 같다
'Code States > TIL' 카테고리의 다른 글
[0518] 컨테이너 오케스트레이션 - 쿠버네티스 주요 개념 (0) | 2023.05.18 |
---|---|
[0515-0516] (페어) Infrastructure as Code - Terraform x AWS (1) | 2023.05.16 |
[0512] Infrastructure as Code - Infrastructure as Code (코드형 인프라) (0) | 2023.05.12 |
[0511] (페어) 마이크로서비스 작성 - 서버리스 애플리케이션 (0) | 2023.05.11 |
[0510] (페어) 마이크로서비스 작성 - 서버리스 애플리케이션 (0) | 2023.05.11 |