Infrastructure as Code

"인프라를 마치 소프트웨어처럼"

코드형 인프라 ( Infrastructure as Code )


코드형 인프라란 인프라를 마치 소프트웨어처럼 취급할 수 있게 되는 것으로, 기계가 읽을 수 언어 ( 프로그래밍 언어 또는 Formatted Document - JSON, YAML )를 사용하여 인프라를 구성, 설정 및 개발하는 Practice 입니다. 엔지니어는 프로비저닝, 구성, 배포 등 반복되는 작업들을 자동화하여 비용 절감, 오류로 인한 위험 부담 감소, 속도 향상 등의 효과를 얻을 수 있습니다.

iac

지금 코드형 인프라를 사용해야하는 이유

  • 속도 및 간편함
  • 일관성있는 구성
  • 위험 최소화
  • 협업 강화
  • 비용절감 및 효율성 증대

속도 및 간편함

한번의 코드 실행으로 Networking, IAM, VM, Autoscaling, Database 등의 인프라 전체를 프로비저닝 및 구성할수 있습니다. 일하거나 유사한 환경의 인프라를 빠르고 일관성있게 구축할수 있습니다.


일관성 있는 구성

기존의 정형화된 프로비저닝 및 환경구성 절차를 통해서 인프라 배포에 대한 일관성을 유지할수있지만 인적오류(Human error)의 위험에서 완전히 벗어나기란 어렵습니다. 사소한 구성 오류로 인해 전체 시스템의 마비를 겪거나, 디버깅에 많은 시간과 노력을 들여 자원을 낭비하게 될 가능성이 존재합니다. 코드형 인프라를 사용하면 정형화된 프로세스와 수동 구성이 불필요해지고, 이로 인한 인적오류 발생확률을 현저히 낮출 수 있습니다.


위험 최소화

모든 인프라 구성 및 변경이 한 명의 엔지니어에 의해 이루어졌다고 가정해보겠습니다. 해당 엔지니어의 부재 시, 기업은 그로인한 부담을 떠안게 됩니다. 하지만 코드형 인프라를 사용한다면 이러한 위험 부담으로부터 보다 자유로워질 수 있습니다. 코드형 인프라는 프로세스 자동화에 그치지 않고 그 자체로 하나의 인프라 구성을 설명하는 문서가 될 수 있기 때문입니다. 소스코드 버전관리 툴을 이용해서 구성내용 변경에 대한 히스토리 및 각 변경사항에 대한 상세 내용을 문서화, 로깅, 트래킹 할 수 있습니다. 이를 통해 변경사항을 실제 인프라에 적용하기 전에 테스트할 수 있게 되고, 위험을 최소화 할 수 있습니다.


협업 강화

개발자는 더이상 인프라 운영자에게 서버 생성을 요청할 필요 없이 본인이 구성하고 싶은 인프라를 코드로 제출하기만 하면됩니다. 인프라 운영자가 해당 코드를 리뷰하고 배포 허가를 내리면 구성이 완료되며, 이 과정에서 개발자와 운영자 사이에 있던 silo를 대폭 감소할 수 있습니다. 최종적으로 인프라 구성을 '코드 → 리뷰 → 테스트 → 배포' 와 같은 CI/CD 파이프라인으로 구성하여 업무효율을 극대화할 수 있습니다.


비용절감 및 효율성 증대

수동으로 해오던 반복적인 작업을 자동화하고 인프라 구성 프로세스를 최적화 함으로써 더 적은 인원으로 더 높은 생산성을 얻을 수 있습니다. 이는 개발 및 운영비용 절감으로 이어지고, 더 나아가 높은 이윤창출 및 가격경쟁력에서 우위를 점할 수 있게됩니다.




Use Cases

이커머스 업체 A사

AWS 인프라 관리가 한 명의 운영자에 의해 이루어지던 이커머스 업체 A사. A사의 개발자들은 AWS서비스를 이용하기 위해 해당 운영자에게 서비스 구성을 요청하고, 서비스가 프로비저닝될 때까지 대기해야만 했습니다. 길어지는 요청 처리 소요시간에 대해 개발자들의 불만은 날로 높아져갔지만, AWS 인프라 운영자는 수십명의 개발자들로부터 들어온 요청을 수동으로 처리해야했기때문에 업무 처리 지연이 불가피한 상황이었습니다. 운영자는 요청사항을 확인, 수정, 검토, 변경, 재확인 및 적용하는 프로세스를 거쳐야하기때문에 업무 효율이 떨어진다는 점을 피력했습니다.

인프라 운영자는 주요 서비스별 샘플 Templates들을 제작해 개발자들에게 배포하고, 주기적인 CloudFormation에 대한 교육을 진행합니다. 개발자는 해당 Template을 기반으로 본인이 필요한 인프라를 스스로 구성할 수 있게 됩니다. 개발자는 생성된 Template을 대상으로 CI/CD 파이프라인을 통한 Validation check 및 dry run을 실시하여 미리 오류를 탐색 및 예방할 수 있습니다. 이러한 과정을 마친 Template을 인프라 운영자에게 전달하여 수동으로 승인/배포하는 방식을 통해 위의 문제를 해결할 수 있습니다.

스타트업 B사

가파른 속도로 성장중인 스타트업의 개발자 A씨. A씨는 사내의 유일한 Cloud전문 지식 소유자입니다. 이러한 이유로 A씨는 개발 업무 이외에도 인프라 구성 및 운영 등의 작업을 수행하고 있습니다. 인프라 구성의 복잡도가 크게 높지 않았기 때문에 수동으로 일을 처리해왔으나, 최근 3rd party업체와 VPN연동 작업을 하는 과정에서 VPC CIDR이 중복되어 모든 인프라를 다시 구성해야하는 문제가 발생했습니다. 해당 기업이 스타트업이라는 점을 고려할 때, 앞으로도 빈번한 인프라 재구성이 예상되는 가운데 업무효율에 대한 우려의 목소리가 높아지고있습니다.

이러한 문제는 코드형 인프라를 통해 해결할 수 있습니다. 위의 사례처럼 인프라 구성의 잦은 변동이 예상되는 상황에서 코드형 인프라를 활용하면 변동사항이 발생할 때마다 수동으로 수정해야하는 번거로움을 없앨 수 있습니다. 기존의 구성 내역에서 변동사항만을 수정하면 자동으로 반영되어 새로운 인프라를 구성할 수 있기 때문입니다.

DevOps 문화에 대한 오해
개발팀 전원이 개발 및 운영에 참여하는 게임회사가 있습니다. 그런데 자꾸만 “이거 서버 누가 만들었어요?”, “어 이거 서버 사이즈 누가 바꿨지?”, “누가 자꾸 방화벽 풀어놓는거야?”, “아 그거 어제 제가 고쳐놓건데 왜 다시 돌려 놓으셨어요?”와 같은 대화가 들려옵니다. 함께 개발하고 운영하는 것이 DevOps는 아니라는 사실. 그렇다면 DevOps문화가 잘 구축된 회사는 어떤 모습일까요?

AWS CloudFormation은 클라우드 인프라 리소스를 텍스트파일 또는 프로그래밍 언어로 모델링 및 프로비저닝 해주는 서비스로서 코드형 인프라의 구성의 시작점에 있습니다.

AWS Systems Manager는 인프라 운영 작업을 자동화 해주는 서비스로서 AWS에서 제공하는 미리 정의된 플레이북을 사용하거나 사용자가 직접 생성한 플레이북을 통해서 리소스 설정, 유지 보수, 관리 및 배포작업을 간소화 할수 있습니다.

AWS Config는 리소스 구성을 측정, 감사 및 평가할수 있는 서비스로서 인프라 구축 및 운영할때 지켜야할 정책 및 규칙을 코드화된 방식을 규정하고 리소스 구성 및 변경사항을 실시간으로 모니터링하고 기록할수 있습니다.




Our Services


  • 어디서부터 시작해야할 지 모르시겠다구요?
    솔트웨어에서 제공하는 Hands on lab을 통해서 코드형 인프라를 구성, 테스트, 배포, 모니터링 하는 방법을 실습해보세요. AWS CloudFormation AWS System Manager AWS Config
  • DevOps가 처음이신가요?
    AWS가 제공하는 샘플 템플릿으로 시작해보세요. 실습 바로가기


솔트웨어의 DevOps 전문가들이 도와드립니다.
  • 여러분들이 생성하신 템플릿에 대한 리뷰를 제공하고 보완, 수정해드립니다. 고객의 요구조건에 맞는 맞춤형 템플릿 생성을 경험해보세요.
  • 최적의 아키텍처 컨설팅, 설계를 통해 템플릿을 생성·구축 해드립니다.
  • 초기 구축에 그치지 않고 CI/CD 파이프라인 구축을 통해서 인프라 변화의 이력관리, 테스트, 자동배포까지 한번에 도와드립니다.
  • CloudFormation 뿐만 아니라 AWS CDK (Cloud Development Kit) 및 Terraform 대한 기술 지원까지 함께합니다.
  • 반복적으로 실행되는 인프라 운영 작업을 Systems Manager로 자동화 해드립니다.
  • 내/외부적으로 지켜야할 인프라 구성 및 운영방침을 AWS Config를 통해서 모니터링하고 AWS Lambda 및 AWS Systems Manager와 연계해서 자동 교정하는 시스템을 구축해드립니다.
DevOps transformation 의 시작에 코드형 인프라가 있습니다.

AWS 서비스에 대해
궁금하신 사항이 있으신가요?

csm@saltware.co.kr
T. 02-2025-4942