-
Cloud) IaC (Infrastructure as Code)Cloud/Cloud 2022. 9. 19. 19:47
IaC [ Infrastructure as Code ] 란?
- 인프라 구성을 프로그래밍 하는것처럼 처리한다해서 프로그래밍형 인프라라고 부른다.
- 인프라 구성을 코드를 통해 자동으로 구축, 관리, 프로비저닝 한다.
- 100개 정도 서버를 구성한다고 할 때, 수동설정의 경우 오랜 시간이 걸리고 구축도중 오류 발생 확률이 높다. 하지만 IaC 활용 설정으로 구성하면 하나의 코드롤 통해 모든 서버를 자동으로 구축할 수 있다.
IaC의 장점?
- 비용절감 (여러 서버를 하나로 관리할 수 있어, 여러 관리자를 필요로 하지 않는다.)
- 배포속도향상 (코드기반으로 배포하기 때문에 배포속도가 빠르다.)
- 오류감소 (여러 서버를 하나로 관리하여 오류가 감소한다.)
- 인프라 일관성 향상 (멱등성)
용어
프로비저닝 [ provisioning ]
- 클라우드 서비스를 시작하고 구성하는것
- 인프라를 설정하는 프로세스 시스템, 데이터, 네트워크 작동을 준비하는 과정
형상 관리 [ configuration management ]
- 이력관리 (이전 버전을 관리하여 롤백 등 할 수 있다.)
- 서버운영상 필요한 소프트웨어를 설치하고 설정으로 관리하는 것
- 설정관리에 사용되는 여러 정보이력을 관리
- IaC는 코드를 이용한 인프라 관리, 형상관리는 운영체제 상에서 패키지를 설치와 필요한 설정을 코드로 관리.
IaC vs 형상관리 - Git도 하나의 형상관리 툴이라 할수있다.
배포 [ deploy ]
- 프로비저닝된 서버를 실행시키기 위해 애플리케이션 버전을 제공하는 작업
오케스트레이션 [ orchestration ]
- 여러 시스템 또는 서비스를 조정하는것
- 오케스트레이션의 목표는 배포, 관리, 확장, 네트워킹을 자동화하기 위함
- 대표적으로 쿠버네티스가 오케스트레이션 툴이다.
IaC Tools
AWS CloudFormation
- AWS에서 제공하는 IaC서비스 (AWS에 특화된 인프라 구성)
Ansible
- 별도의 Agent없이 IaC 서비스 제공
- IaC는 여러 클라이언트 서버를 관리하기위해 Agent 서버가 있어야 하지만 Ansible은 SSH를 기반으로 하여 SSH 연결만 가능하면 IaC 서비스를 이용할 수 있다.
Terraform
- GUI 기반으로 IaC 서비스 제공
Puppet, Chef 등 여러 Tool이 있다.
'Cloud > Cloud' 카테고리의 다른 글
Cloud) On-premise와 Cloud (0) 2022.11.21 Cloud) Application (0) 2022.09.26