test

changhwan·2022년 1월 19일
0

IaC란 무엇인가.

IaC란 Infrastructure as Code의 약자로 “프로그래밍형 인프라” 라는 의미를 가지고 있으며, 수동 프로세스가 아닌 코드를 통해 Infra를 프로비저닝하는 것을 의미합니다.


등장 배경

고객의 니즈에 빠르게 대응하는 것이 핵심이 된 현재 서비스들은 개발과 운영이 하나로 합쳐진 DevOps와 애자일 조직 기반으로 다들 변화하고 있습니다. 이러한 상황에서 서비스 운영환경 또한 On Premiss 환경에서 Cloud으로 이관 되었습니다.

Cloud 서비스의 대표적인 특징으로 손쉽고, 빠르게 환경을 구축할 수 있다는 특징이 있습니다. 이러한 특징 때문에 하루에도 인프라 규모가 커지고 하루에도 여러번 바뀌게 되는데, 이를 단순 문서화로 관리하기엔 한계점이 분명 했고 이러한 부분을 해결하기 위해서 Infra 구축에는 IaC 개념이 현재는 업계 표준으로 자리 잡았습니다.


IaC의 도입으로 얻을 수 있는 이점

IaC 도입의 목적은 인프라를 더 잦은 빈도로 가동하고, 중지하고, 확장할 수 있는 인프라 환경 구축과 동시에 일관성을 높이고 오류 및 수동 구성을 줄이는 것에 목적이 있습니다. 따라서 이점 또한 이러한 부분과 관련이 있습니다.

이점

  • 비용 절감
  • 배포 속도 향상
  • 요로 감소
  • 인프라 일관성 향상
  • 구성 변동 제거

애자일 조직에 IaC이 중요한 이유

결론부터 말하는 코드로써 인프라를 관리하게 되면 프로덕션 환경의 일관성을 보장하여 DevOps의 효율을 높여 많은 가치를 창출 할 수 있기 때문 입니다.

애자일 조직에서 DevOps와 CI/CD는 비즈니스 관점에서도 핵심 포인트이며, CI/CD 환경은 자동화와 지속적인 모니터링에 의존하고 있습니다. 따라서 개발 팀과 운영 팀의 운영 환경에 일관성이 있어야 하는데, 일관성을 유지하는데 있어, 문서화와 사람대 사람의 소통으로는 한계가 분명합니다.

따라서 코드로써 인프라를 관리하여 운영, 개발팀의 Infra 환경을 일치시켜 프로덕션 환경의 일관성을 보장 할 수 있게 됩니다.


두 가지 코드 작성 방식

IaC를 사용하기 위해서는 원하는 인프라 구성을 코드 형태로 스크립트에 기술해야 합니다. 이때 사용하고자 하는 IaC 툴에 따라 명령형과, 선언형 2가지로 나뉩니다.

먼저 명령형의 경우 인프라 구성에 대한 코드가 적힌 스크립트를 IaC 툴을 이용하여 생성하는 방식 입니다. 따라서 인프라에 대한 코드가 모두 포함이 돼야 하고, 이는 곧 필요한 모든 인프라를 코드로 작성할 수 있단 의미가 됩니다.

반대로 선언형의 경우 결과물에 대해 먼저 구상을 하고 모듈 형식으로 작성을 하게 되는데 인프라 최종 상태를 지정하게 되면 IaC툴이 나머지를 알아서 처리해주는 것이다. 또한 순차적으로 코드를 작성해야 하는 ‘명령형’과는 다르게 서비스별로 ‘선언’만 하기만 하면 된다.

profile
Junior Backend Developer

0개의 댓글