INTRO
Ansible을 알아보기 전에 IaC에 대해 먼저 알아보고 넘어가려고 합니다.
IaC란 Infrastructure as Code의 약자로 코드를 통해 인프라를 관리하고 프로비저닝하는 역할을 합니다.
단순, 인프라 뿐만 아닌 SW 자동화에도 많이 사용됩니다.
왜 많이 사용될까요?
☞ 기존에 APP을 개발, 배포하는 테스트 서버를 구성하기 위해 사용자가 일일히 설정해줘야되는 번거로움을 코드로 작성하면 쉽게 구성할 수 있고 관리 역시 코드를 이용해서 할 수 있기 때문입니다.
요즘 많이들 사용하고 있는 Ansible의 Yaml 파일, Terraform의 tf 파일 등이 있습니다.
☞ 편하게 관리하고 한번 짜놓으면 개발자든 누구든 실행하는 방법만 알면 되기 때문에
추가로 자세한 설명은 아래의 링크를 참고하시면 좋을 것 같아요
Ansible
Ansible이란 인프라 프로비저닝, 관리와 SW 구축 및 배포의 자동화에 많이 사용되는 툴으로 위에서 알아본 IaC의 가장 대표적인 예시입니다.
RHCE라는 자격증 과정에 해당 기술이 메인으로 채택되면서 최근에 자격증 공부하는 분들에게도 많이 알려진 기술이기도 합니다.
Ansible은 Red Hat이 개발한 기술은 아니고 Red Hat이 Ansible을 인수해서 서브스크립션 형태로 기술지원 및 관리 플랫폼을 판매하기 시작한 기술입니다. (관리 플랫폼: RHAAP, Ansble Tower)
오픈소스이기 때문에 Ansible을 Red Hat 벤더사의 기술지원 없이 사용한다면 비용을 지불할 필요가 없습니다.
(Ansible Tower도 AWX로 대체 가능)
Ansible의 장점은 무엇일까?
1. 멱등성 지원
- 멱등성: 여러번 실행해도 같은 결과 값이 나오는 성질
- Ansible에서의 멱등성: 결과의 상태값이 다르더라도 결국에 결과는 동일하게 나오게 하는 성질
2. Modular
- 많은 모듈 지원
- Shell에 의존하지 않고 Ansible에서 지원하는 Module로 구성관리에 용이함
3. YAML 형식 지원
- 기존의 Shell Scripts보다 간편하게 구성 가능
4. 대형 워크로드에 용이
- 많은 서버에 구성이 필요한 경우 Shell Scripts보다 신속하게 처리 가능
다만, 도입전에 고민해야될 부분은 소규모 워크로드의 경우엔 Ansible보다는 Shell Scripts로 처리하는 것이 훨씬 편할 수도 있습니다.
가장 중요한 것은 Ansible을 사용하는 것이 좋다라기 보다는 내가 속한 조직 혹은 나의 인프라에서 Ansible이 빠르게 작업을 처리 할 수있을지 Shell Scripts가 빠르게 처리 가능한지 판단하는 것이 중요하다고 생각합니다.
'DevOps > Ansible' 카테고리의 다른 글
Ansible) 관리 노드에 SSH root 접근이 제한되어 있을 경우 (0) | 2022.03.27 |
---|---|
Ansible) 인벤토리 구성 및 통신 확인 (0) | 2022.03.26 |
Ansible) Ansible 설치하기 (0) | 2022.03.26 |
Ansible) Ansible 개념 (0) | 2022.03.26 |