320x100
320x100

인프라관리

- 컨테이너

- 컨테이너 오케스트레이션

- 환경 구성 관리

- 인프라 프로비저닝

 

 

 

 

환경 구성 관리

환경 구성 관리 

- 소스코드 외에 개발환경, 빌드 구조 등에 대한 전반적인 관리체계

- 코드형 인프라 (Infrastructure as code, IaC)를 통해 인프라 자동 구성

 : 애플리케이션 개발 및 배포에 필요한 서버, 운영체제, 스토리지, 기타 인프라 구성요소를

   인프라 사양 설정 파일로 저장하여 동일한 환경을 프로비저닝 보장

  => 서버 하드웨어, 운영체제, 스토리지와 같은 인프라를 

       스크립트 실행만으로 초기 설정과 가동까지 가능

=> 개발을 위한 환경을 필요할때 자동으로 구성하는 것

 

 

 

코드형 인프라 (Infrastructure as code, IaC)

- 인프라의 상태를 코드로 선언하고 모든 서버에 배포하여 특정 환경을 동일하게 유지 하는 개념

- 환경 구성 관리 (서버 운영체제 내 설정)

- 인프라 프로비저닝 (인프라 관련 설정)

 

 

 

환경 구성 관리 툴 (Configuration management tool)

- 인프라 내의 서버 구성에 사용되는 툴 (인프라 내 서버설정 자동화)

 

- Ansible (앤서블)

 : 오픈소스 기반의 프로비저닝, 구성관리, 애플리케이션 전개 도구 (가장 많이 사용)

 : 유닉스 계열, 윈도우에서 구성 가능

 : 환경의 배포 뿐만 아니라 서버 클러스터의 체계적인 관리, 확장 모듈의 사용 등 다양한 기능 제공

 : Python 기반 / 단순한 구조 / 유연성 (다른 시스템과의 쉬운 연계)

 

- Salt Stack

 : 대규모 인프라를 관리하기 위한 자동화 관리 시스템

 : Python 기반의 Moudle와 Function으로 구현

 : agent 요청에 비동기 병렬로 처리하여 굉장히 빠름

 : server-agent 구조로 단순함 

 

- Chef

 : 전용 에이전트가 중앙 서버에 접근해 코드를 가져와 에이전트 슷로 머신에 적합한 상태 설정

 

- Puppet

 : 앤서블에 비해 서버 세팅에 초점이 맞춰져 있는 툴

 : 전용 에이전트가 중앙 서버에 접근해 코드를 가져와 에이전트 슷로 머신에 적합한 상태 설정

 

- 비교

출처 : https://brownbears.tistory.com/304

 

 

 

인프라 프로비저닝 툴 (orchestration tool)

- 환경이 특정 상태로 유지되도록 하는 도구

- 클라우드 인프라 구성에 적합

 

- Terraform 

 : 인프라에 대한 빌드, 변경, versioning 도구  

 : 인프라의 상태를 설정하고 변경사항 확인 가능

 : Ansible과 가장 많이 사용

 : yml 형식

 => 코드로 인프라를 관리하는 도구

 

- AWS CloudFormation

 : AWS에서 제공하는 인프라 프로비저닝 툴

 : json 또는 yml 형식 

 

- Pulumi

 : 자바스크립트, 타입스크립트, Python, Go, C# 등 .NET 언어로 인프라 정의

 : AWS, GCP, 쿠버네티스 등 대부분의 클라우드와 연계 가능

 

 

 

 

 

 

참조 

[1]

 

SaltStack

SaltStack 대규모 인프라를 관리하기 위한 자동화 관리 시스템 (Puppet & Chef와 같은 System Management Tool) Server (Master) - Agent (Minion) 간 ZeroMQ를 통해 통신하며 Server → Agent의 요청은 비동기 병..

lascrea.tistory.com

 

300x250
728x90