묻고 답하기

제목
Re:클라우드 네이티브 관련 질문드립니다.
작성자
담당자
작성일
2024-11-29 14:36
조회
26
답변완료

안녕하세요
클라우드 혁신센터입니다. 

질문해주신 사항 2가지에 대해 설명드리겠습니다. 


1. IaC(코드형 인프라)가 수작업 대신 자동화를 가능하게 했다는 것은 무슨 의미인가요?

여기서 "수작업"이란 코딩 작업을 의미하는 것이 아닙니다.
수작업은 서버, 네트워크, 스토리지 등의 인프라를 직접 설정하는 일을 말합니다. 

과거 방식 (수작업)

  • 서버를 준비하려면 운영팀이 물리적인 서버를 직접 설치하거나, 가상 머신을 만들어야 했습니다.
  • 네트워크를 구성하려면 IP를 설정하거나 방화벽을 수동으로 설정해야 했습니다.
  • 이런 과정은 주로 GUI(그래픽 사용자 인터페이스)로 클릭하면서 이루어졌고, 사람이 직접 매뉴얼을 따라 작업했었습니다. 

IaC 방식

  • IaC를 사용하면 인프라 설정을 코드로 작성합니다. 예를 들어:
    --------------------------------------------------------------------------------
    yaml

    resource "aws_instance" "example" {
    ami = "ami-123456"

    instance_type = "t2.micro"

    }

    ----
    ----------------------------------------------------------------------------
    이런 코드를 실행하면, 서버가 자동으로 생성되고 필요한 설정이 모두 적용됩니다.
  • 이렇게 되면 사람의 개입이 줄어들고, 버튼 클릭이나 직접 설정하던 "수작업"이 없어집니다.

핵심

IaC가 자동화를 가능하게 했다는 건, 기존에 사람이 직접 하던 인프라 설정 작업을 코드로 표현하고 실행할 수 있게 되었다는 의미입니다.

  • 과거에는 코딩 없이 수동으로 설정했지만, IaC 덕분에 코드를 작성해 더 효율적이고 반복 가능한 방식으로 작업할 수 있게 되었습니다.

2. IaC가 CI/CD에 중요한 이유는 무엇인가요?

IaC가 CI/CD에 중요한 이유 중 하나는 "환경의 일관성"을 보장하기 때문입니다.

CI/CD와 환경 문제

  • 개발팀(Dev)과 운영팀(Ops)은 종종 "배포 환경" 문제로 충돌이 발생합니다.
    예: 개발팀에서 "우리 환경에서는 잘 동작했는데, 운영 환경에서는 에러가 발생합니다!"
  • 이 문제는 개발 환경운영 환경이 다르기 때문에 발생합니다.

IaC가 환경 일관성을 해결하는 방법

  • IaC를 사용하면 개발, 테스트, 운영 환경에 필요한 모든 설정을 코드로 정의할 수 있습니다.
  • 이 코드를 기반으로 동일한 환경을 자동으로 만들 수 있으므로, 개발팀과 운영팀의 환경 차이를 없애는 것이 가능합니다.

IaC가 CI/CD에 중요한 이유

  • CI/CD의 목표는 빠르고 안정적인 코드 배포입니다.
  • IaC를 사용하면 배포 환경이 항상 동일하게 설정되기 때문에, CI/CD 파이프라인에서 다음과 같은 이점이 있습니다:
    1. 환경 간 일관성: 운영, 개발, 테스트 환경이 동일해 에러 가능성이 줄어듭니다.
    2. 배포 자동화: 환경 설정이 자동화되므로 배포 속도가 빨라집니다.
    3. 재현 가능성: 동일한 코드를 사용해 언제든지 동일한 환경을 재현할 수 있습니다.

정리

  1. IaC는 과거 사람이 직접 클릭하거나 수동으로 하던 인프라 설정 작업코드로 자동화한 것입니다.
  2. IaC는 개발팀과 운영팀의 환경을 동일하게 만들어주는 도구로, CI/CD에서 환경의 일관성을 보장하여 빠르고 안정적인 배포를 가능하게 합니다.


추가로 궁금한 점이 있다면 언제든 문의남겨주시기 바랍니다.

감사합니다.