728x90
반응형
1장. 왜 테라폼인가?
1.1 데브옵스의 등장
- Configuration drift: 일부 설정이 미묘하게 다른 현상
- 클라우드 서비스 사용
- 셰프, 퍼펫, 테라폼, 도커와 같은 도구를 사용하여 소프트웨어 작업에 더 많은 시간을 사용
데브옵스는 소프트웨어를 효율적으로 전달하는 프로세스다.
- 일련의 프로세스, 아이디어, 테크닉
- 지속적으로 코드를 통합하고 항상 배포 가능한 상태로 유지
- 네 가지 핵심 가치 → CAMS
- Culture
- Automation (이 책의 초점)
- Measurement
- Sharing
우리의 목표는 소프트웨어 배포를 최대한 자동화 하는 것입니다.
1.2 코드형 인프라란?
코드를 작성 및 실행하여 인프라를 생성, 배포, 수정, 정리하는 것을 말합니다.
코드형 인프라 도구의 다섯 가지 범주:
- 애드혹 스크립트
- 구성 관리 도구
- 서버 템플릿 도구
- 오케스트레이션 도구
- 프로비전 도구
1.2.1 애드혹 스크립트
- ad hoc script
- 자동화하는 가장 간단한 방법
- 스크립트를 서버에서 수동으로 실행하는 것
- 소규모 일회성 작업에는 적합 (딱 거기까지만)
1.2.2 구성 관리 도구
- 셰프, 퍼펫, 앤서블, 솔트스택 등
- 타겟 서버에 소프트웨어를 설치하고 관리하도록 설계
- 장점:
- 코딩 규칙(Coding convention): 일관되고 예측 가능한 구조 제공
- 멱등성(Idempotent): 실행 횟수에 관계없이 올바르게 동작
- 분산형 구조: 원격의 수많은 서버를 관리하기 위해 설계
1.2.3 서버 템플릿 도구
- 도커, 패커, 베이그런트 등
- 스냅샷으로 이미지를 생성
- 구성 관리 도구를 사용하여 모든 서버에 설치
- 서버 템플릿은 일반적으로 이미지 내에 소프트웨어를 설치하는데 사용
1.2.4 오케스트레이션 도구
- 쿠버네티스, 마라톤/메소스, EKS, GKE, AKS 도커스웜, 노마드 등
- 필요한 사항
- 효율적인 배포
- 롤링 배포, 블루-그린 배포, 카나리 배포전략 등을 사용하여 효율적으로 업데이트 및 롤백
- 상태 모니터링 및 비정상적인 부분에 대해 자동 복구
- 자동 확장
- 로드 밸런싱
- 서로 식별하고 통신할 수 있게하는 서비스 검색 기능
1.2.5 프로비전 도구
- 테라폼, CloudFormation, 오픈스택 히트 등
- 서버 자체를 생성할 뿐만 아니라 인프라에 관한 거의 모든 부분을 프로비저닝 가능
1.3 코드형 인프라의 장점
- 왜 새로운 언어와 도구를 배우고 더 많은 코드를 관리해야 하는 걸까?
코드로 할 수 있는 것이 많기 때문입니다.
- 자급식 배포
- 속도와 안정성
- 문서화 (관리자가 휴가 중일 때도 조직의 모든 사람이 인프라 구조를 이해하고 실행 가능)
- 버전 관리
- 유효성 검증
- 재사용성 (재사용 가능한 모듈로 패키징, 문서화되고 검증된 모듈로 일관되게 배포 가능)
- 행복 (?!👻) (코드형 인프라를 사용했을 때 얻을 수 있는 행복 때문?!)
1.4 테라폼의 작동 방식
테라폼은 해시코프사가 Go 언어로 개발한 오픈 소스 도구입니다.
- 컴파일된 하나의 바이너리 파일이 API를 호출하여 리소스를 생성
- 테라폼 구성 파일에 서버, 데이터베이스, 로드 밸런서, 네트워크 토폴로지 등 전체 인프라를 정의하고 해당 파일의 버전을 관리할 수 있습니다.
테라폼 바이너리는 사용자가 구성한 코드를 파싱하고 코드에 지정된 클라우드 공급자에 대한 일련의 API 호출로 변환합니다.
1.5 테라폼과 다른 코드형 인프라 도구 비교
- 다음 절에서는 가장 널리 사용되는 구성 관리 및 프로비전 도구인 테라폼, 셰프, 퍼펫, 앤서블, 솔트스택, 클라우드포메이션, 오픈스택 히트를 자세히 비교 (한다고 합니다)
- 고려해야하는 절충 사항을 각 절로 알아봅니다.
1.5.1 구성 관리 vs 프로비저닝
1.5.2 가변 인프라 vs 불변 인프라
1.5.3 절차적 언어 vs 선언적 언어
- 절차적 코드는 인프라의 마지막 상태 정보를 기록하고 있지 않습니다.
- 절차적 코드는 재사용 가능성을 제한합니다.
1.5.4 마스터 서버 유무
- 셰프, 퍼펫, 솔트스택은 인프라 상태를 저장하고 업데이트를 배포하기 위해 마스터 서버를 실행
- 앤서블, 클라우드포메이션, 오픈스택 히트, 테라폼은 기본적으로 마스터가 없는 도구입니다.
1.5.5 에이전트 유무
1.5.6 커뮤니티 규모와 활성화
1.5.7 성숙한 기술 vs 최첨단 기술
1.5.8 여러 도구를 함께 사용
1.6 결론
- 테라폼을 잘 활용해보도록 합시다 😎
감사합니다 😘
728x90
반응형
'Terraform' 카테고리의 다른 글
Terraform 101 Study - 1주차 (0) | 2024.06.16 |
---|---|
[Terraform] 2장. 왜 테라폼인가? (77~82p) (0) | 2021.07.13 |
[Terraform] 2장. 왜 테라폼인가? (61~76p) (0) | 2021.07.13 |
[Terraform] 2장. 왜 테라폼인가? (45~60p) (0) | 2021.07.12 |
[Terraform] 테라폼 학습 블로깅 시작 (0) | 2021.07.11 |