IaC/IaC_Service

[IaC] IaC란?

달콤한달팽이 2023. 11. 6. 16:09
반응형

안녕하세요, 달콤한달팽이입니다.🐌🙂

 

요즘 클라우드 기술 스택 중 가장 많이 요구되는 IaC에 대해 함께 공부해볼 예정입니다.

 

다양한 실습을 해보기에 앞서 IaC란 무엇인지부터 아는 것이 우선일 것 같아 이번 글을 준비해보았습니다!

 


IaC란?

IaC란, Infrastructure as Code의 줄임말로 코드를 통해 인프라를 관리하고 프로비저닝하는 것을 의미합니다.

 

즉, 개발자들이 개발을 통하여 애플리케이션을 관리하듯인프라 담당자들도 개발을 통하여 인프라를 관리하는 것을 의미합니다.


1) IaC의 장점

최근들어 IaC를 사용하는 이유는 장점이 명확하고, 뛰어나기 때문일 것입니다.

그렇다면 IaC의 장점은 무엇이 있을까요?

 (1) 배포 속도 향상

  - 이미 구성해둔 코드를 사용하여 배포만 진행하면 되므로 기본적인 구성을 수작업으로 생성할 필요가 없습니다.

   IaC를 통해 여러 환경을 한번에 배포함으로서, 인프라 구성에 소요되는 시간을 대폭 단축시킬 수 있습니다.

 (2) 오류 감소

  - 인프라 구성에 필요한 여러 작업(VPC를 생성하고, 라우팅을 설정하며, 서버를 생성하는 등의 작업)은

   규모에 따라, 작업자의 컨디션에 따라 여러 휴먼 에러가 발생할 수 있습니다.

   IaC는 코드를 통해 관리를 수행하기 때문에 이러한 휴먼 에러를 감소시킬 수 있습니다.

 (3) 인프라 일관성 향상

  - 코드를 통해 구성되었으므로 큰 구성은 모두 기존의 코드와 유사하며, 이를 수정한다고 해도 큰 틀을 벗어나진 않을 것입니다. 이를 통해 인프라의 일관성을 향상시킬 수 있습니다.

 

2) IaC의 단점

하지만 어떠한 기술이든 장점만 있는 기술은 없습니다.

IaC의 단점은 무엇이 있을까요?

 (1) 숙련자 부족

  - 아무래도 모든 인프라 구성요소가 코드로 구성되어 있다 보니, 이를 작성하는 사람도 이후에 이를 유지보수하는 사람도 이에대한 기본 지식과 코드를 해석하는 지식이 필요합니다.

   이 때문에 잘 구성된 인프라가 후임자에게 제대로 인수인계가 되지 않아 기존의 구성에서 수정을 할 수 없는 상황이 발생하게 됩니다.

 (2) 오류 발생

  - 몇몇 IaC 툴의 경우 스택을 지우면 관련 인프라가 모두 삭제되거나(CloudFormation), 코드로 생성된 인프라를 콘솔로 수정한 후 다시 배포하면 에러가 발생하거나(CDK), 두 사람이 스크립트를 동시에 실행할 경우 Race Condition이 발생하는 등의 여러가지 에러가 발생할 수 있습니다.

 

3) IaC 툴

IaC에 사용되는 툴은 정말 많고 이에따른 각 툴의 특장점들 역시 구분지어 있습니다.

그 중에서도 가장 유명한 것들을 꼽아보면 AWS CloudFormation, Terraform, Ansible, Chef, Puppet 등이 있습니다.

 


지금까지 간단하게 IaC에 대하여 알아보았습니다.

 

이제 직접 설치해보고, 실습해보면서 IaC에 대해서 차근차근 알아가보도록 합시다.

 

감사합니다!

반응형