IAC (Infrastructure As Code)

- 수동으로 엔지니어가 하나하나 리소스 정리하고 용량 정리하고 그 속에 운영체제, 서비스 구성하는 환경에서 자동화할 수 있는 도구를 사용해서 코드로 정의해서 한 번에 해결할 수 있게 하는 게 최근 트렌드

- 최근 수동으로 하는 작업은 잘 없음 (그렇다고 아예 없는 건 아님)

- 인프라를 코드로 정의해서 관리하는 것

- 테라폼이라는 도구를 이용해서 클라우드 환경에 해당하는 리소스들을 정의

- 리소스(인프라 자체)를 구성하는 데 사용하지 않는다

- 이미 구성이 되어있고 이미 정의가 된 image들의 공통의 작업을 수행해야 할 때 한 번에 설정할 때 사용

 

EX) AWS를 테라폼으로 관리를 하겠다면 YAML이라는 파일을 정의한다.

- 인스턴스 용량이라던지 속해야 하는 파일을 정리하는 것

- 정의를 하게 되면 AWS상에서 가상 네트워크 등이 생성된다.

- OS를 설치하지 않고 image를 사용한다. 이미지에 OS가 다 설치되어있음.

- 그래서 가상 머신에 OS가 자동으로 설치가 되어있다.

- 이런 시스템을 코드의 형태로 만드는 게 IAC

- AWS Cloudformation

 

※ 병렬 처리 : 동시다발적으로 처리한다.

 

 

 

Ansible 특징

- Agent Less 방식을 사용하는 게 가장 큰 특징

- 플레이북 단위로 작업 수행

- yaml을 작성해서 실행

 

절차적 작업 : 패키지를 설치 및 실행

선언적 작업 : 패키지가 설치된 상태에서 실행 중인 상태를 확인 후 있으면 다음 작업을 실행

 

Ansible 구성요소

# Ansible Software

- 상주 프로세스가 없고, 명령줄에 의해 동작 -> 장점

- Software만 설치하면 동작한다.

 

# Inventory

- 조작할 관리 대상 서버의 목록을 정의

- 여러 대의 관리대상 서버를 그룹화(인벤터리에서 제일 중요한 작업)하여 정의 가능

- WEB서버 DB서버 그룹화해서 사용 가능

- 정적 구성과 동적 구성으로 구분 (동적 인벤터리는 잘 사용하지 않음)

 

# Module

- Ansible에서 실행되는 하나의 명령

- 변경사항이 있을 경우에만 작업 수행

- Ansible 내부에 기본 내장 모듈이 존재

 

# Playbook

- YAML(어떤 구조인지만 파악) = JSON 같이 사용함

- 실제 스크립트 작업 과정을 YAML 형식으로 정의

- YAML : 데이터 정의어, 하나의 문법이라고 생각

- 프로젝트 단위 (작업 단위보다는 좀 더 큰 범주의 단위)

Ansible ad-hoc

- 단일 태스크 실행하여 자동화 가능

- 1회성 실행

 

 

 

'리눅스' 카테고리의 다른 글

GC 로그 및 heap 덤프 설정  (0) 2024.05.13
jstat 항목별 의미  (0) 2024.05.08
Shell Script 실습  (0) 2022.11.03
Shell Script  (0) 2022.11.03
PAM 인증  (0) 2022.11.02

+ Recent posts