2021.2.16 화요일

2021. 2. 16. 07:09IT/뉴스정리

[IaC ①] 개발과 운영의 경계 허문다

 

효율적인 클라우드 인프라 운영의 핵심으로 떠오른 IaC

 

[아이티데일리] 클라우드를 효율적으로 운영하며, 데브옵스(DevOps)를 성공적으로 구현하기 위한 방법으로 ‘IaC(Infrastructure as Code)’가 떠오르고 있다. IaC는 개발자가 직접 코드를 작성해 인프라를 생성하고, 배치, 관리하는 기술이다. 개발자들은 IaC를 이용해 개발하기 전 수행해야 했던 번거로운 클라우드 인프라 설정 작업을 줄이고, 개발과 운영을 유기적으로 만들 수 있다. ‘IaC’에 대한 관심이 높아지자 솔루션 공급업체들이 시장 진입을 서두르는 등 빠르게 움직이고 있다. 새롭게 떠오르고 있는 기술, ‘IaC’에 대해 알아봤다.

 

개발과 운영의 경계 허문다

IaC는 애플리케이션 개발과 운영에 필요한 인프라를 코드로 자동 생성·배치·관리하는 것이다. 인프라에 대한 정보가 담긴 코드들을 하나의 스크립트에 작성하면, IaC 툴이 스크립트에 맞춰 CSP의 클라우드 서비스와 연동해 인프라를 생성한다. 쉽게 표현하면 IaC 툴은 ‘배우’고, 스크립트는 ‘시나리오’에 해당한다고 보면 된다. 연극의 스토리를 전개할 수 있는 단어와 문장들이 담긴 시나리오를 보고 배우가 연기하는 것과 같다는 것이다.

www.itdaily.kr/news/articleView.html?idxno=201813
IaC의 개념도 (출처: 클루커스)


인프라 프로비저닝(설정과정: Provisioning)을 자동화한다는 것은 개발자가 애플리케이션을 개발하거나 배포할 때마다 서버, 운영체제(OS), 스토리지 및 기타 인프라 구성 요소를 수동으로 설치하고 관리할 필요가 없다는 것을 의미한다.

일반적으로 프로비저닝이라는 용어는 IT 환경에서 운영 담당자가 개발자가 사용할 컴퓨터에 필요한 컴퓨팅 자원과 저장소 또는 기타 서비스를 설치한다는 의미로 사용된다.

통상 개발자들이 애플리케이션을 개발할 때 가장 먼저 하는 일은 운영팀과 협의해 인프라를 설치하는 것이다. 이 때 개발자는 개발에 필요한 자원을 운영팀에 요청하고, 운영팀은 서버, 라우팅 항목, 데이터베이스(DB) 구성 및 로드 밸런서를 수동으로 개발자의 작업 컴퓨터에 설치한다. 이후 설치된 컴퓨터를 개발자에게 전달한다.

이 때 운영팀이 인프라를 잘못 설치할 경우 다운타임이 발생할 수도 있으며, 문제 해결에 많은 시간이 필요할 수도 있다.

IaC는 이러한 기존 개발환경이 갖는 문제들을 해결할 수 있을 것으로 기대를 모으고 있다. IaC는 개발자로 하여금 ▲IT 인프라 환경의 자동 프로비저닝과 워크플로우 호환 ▲인프라 규모와 상관없는 관리의 용이성 ▲빠른 재해복구 환경 구축 ▲멀티·하이브리드 클라우드 구현 등 5가지 이점을 코드 작업으로 누릴 수 있게 해준다.

먼저 IaC는 ‘IT 인프라 환경을 자동으로 프로비저닝’ 해준다. 간단한 파일과 코드를 사용해 인프라, 네트워킹, 부하 분산, 클라우드 IAM(Indexed Access Method) 등을 포함한 환경을 비롯해 테스트나 QA 등을 위한 인프라 환경도 구축할 수 있도록 해준다. 이 과정에서 인프라를 생성하기 위한 운영팀의 실수나 오류를 줄여 효율성도 높아진다. IaC를 이용할 경우 스크립트 내 코드 수정을 통해 손쉽게 자원을 생성하고, 업데이트하거나 삭제할 수도 있다.

IaC는 인프라 규모에 제약이 없어 관리도 용이하다. 코드를 스크립트에 작성할 때 VM의 개수와 상관없이 필요한 만큼 생성할 수 있다. 인프라 구성요소 역시 세분화해 자동으로 결합할 수 있기 때문에, 개발자가 부분적으로 제어할 수 있다. VM 100대를 사용한다고 가정할 경우, 50대에는 마리아 DB를, 50대에는 오라클을, 또 관리자 권한은 100명에게 나눌 수도 있다. 네트워크나 저장소, 데이터베이스(DB) 등과 같은 리소스를 쉽게 관리할 수 있다는 얘기다.

클라우드로 애플리케이션을 개발할 때 클라우드 서비스 제공사의 ‘포털’에서 인프라를 생성한다. 이 때 CSP의 웹 포털에서는 원하는 자원을 한 가지만 선택할 수 있기 때문에, 자원의 수가 많아질수록 비례해서 작업도 늘어나게 된다. 가령, 웹 포털에서 생성하고자 하는 자원의 종류가 15가지라면, 15번의 개별 작업이 필요하다. 그러나 IaC를 이용할 경우 이처럼 번거로운 클라우드 인프라 생성 과정을 줄일 수 있다.

IaC는 ‘빠른 재해복구 환경’도 구축할 수 있도록 해준다. 기존 애플리케이션의 인프라와 구성을 코드로 확인할 수 있어 문제가 발생하더라도 빠르게 조치를 취할 수 있다. 또 개발팀과 운영팀 모두가 스크립트를 검토할 수 있기 때문에 지속 통합·지속 배포(CI·CD) 파이프라인을 구축해 문제가 발생한 곳이 어느 지점인지 쉽게 확인할 수 있다. 부적절한 인프라 변경사항을 바로 알아내 재해 복구를 할 수 있다는 것이다.

모은정 클루커스 개발팀 리더는 “개발 직원이 퇴사할 때 애플리케이션에 대한 정보를 인수인계해야 하는데, 그렇지 못한 경우가 있다. 이 경우 IaC를 통해 애플리케이션을 개발했다면 스크립트에 애플리케이션에 대한 인프라 정보가 담겨있어, 새로운 직원이 오더라도 손쉽게 애플리케이션에 대한 버전관리가 가능하다”고 설명했다.

이어 그는 “IaC 스크립트를 사용할 경우 몇 번이고 같은 환경을 구성할 수 있어 소프트웨어의 개발 기한을 단축할 수 있다. 적시에 제품을 개발해야 하는 개발자에게 큰 도움이 될 것”이라고 덧붙였다.

IaC는 멀티·하이브리드 클라우드를 구현하는 데에도 적합하다. IaC로 컨테이너(Container) 환경을 만드는 것이다. 컨테이너는 온프레미스부터 퍼블릭 클라우드, 프라이빗 클라우드 등 인프라에 제약을 받지 않는다는 점에서 멀티·하이브리드 클라우드에 적합하다.

컨테이너는 인프라 위에 OS를 구성하고 그 위에 컨테이너 엔진을 설치하며, 바로 위에 설치되는 컨테이너에 애플리케이션과 WAS(Web Application Server)가 담기는 구조다. 하부 자원에 대한 종속 없이 스스로 가동될 수 있어 멀티·하이브리드 클라우드 환경에 적합하다. 이처럼 컨테이너와 생성된 컨테이너를 관리하는 시스템인 ‘쿠버네티스(Kubernetes)’도 IaC로 쉽게 관리할 수 있다. 애플리케이션을 개발하기 위해 스크립트에 인프라 코드를 작성할 때 컨테이너에 대한 정보와 이를 관리할 쿠버네티스 서비스를 담기만하면 된다.



출처 : 아이티데일리(https://www.itdaily.kr)

 

www.itdaily.kr/news/articleView.html?idxno=201813

 

[IaC ①] 개발과 운영의 경계 허문다 - 아이티데일리

[아이티데일리] 클라우드를 효율적으로 운영하며, 데브옵스(DevOps)를 성공적으로 구현하기 위한 방법으로 ‘IaC(Infrastructure as Code)’가 떠오르고 있다. IaC는 개발자가 직접 코드를 작성해 인프라

www.itdaily.kr


코드로서의 인프라 란 무엇입니까?

 

IaC (Infrastructure as Code)는 DevOps 팀이 소스 코드에 사용하는 것과 동일한 버전 관리를 사용하여 설명 모델에서 인프라 (네트워크, 가상 머신,로드 밸런서 및 연결 토폴로지)를 관리하는 것입니다. 동일한 소스 코드가 동일한 바이너리를 생성한다는 원칙과 마찬가지로 IaC 모델은 적용될 때마다 동일한 환경을 생성합니다. IaC는 DevOps의 핵심 관행이며 지속적 배포 와 함께 사용됩니다 .

 

코드 형 인프라를 통해 DevOps 팀은 개발주기 초기에 프로덕션과 유사한 환경에서 애플리케이션을 테스트 할 수 있습니다. 이러한 팀은 여러 테스트 환경을 안정적이고 필요에 따라 프로비저닝하기를 기대합니다. 코드로 표시되는 인프라는 일반적인 배포 문제를 방지하기 위해 유효성을 검사하고 테스트 할 수도 있습니다. 동시에 클라우드는 IaC 정의에 따라 환경을 동적으로 프로비저닝하고 해체합니다.

 

IaC를 구현하는 팀은 안정적인 환경을 규모에 맞게 신속하게 제공 할 수 있습니다. 팀은 환경의 수동 구성을 피하고 코드를 통해 원하는 환경 상태를 표시하여 일관성을 유지합니다. IaC를 사용한 인프라 배포는 반복 가능하며 구성 드리프트 또는 누락 된 종속성으로 인한 런타임 문제를 방지합니다. DevOps 팀은 통합 된 관행 및 도구 세트와 협력하여 애플리케이션과 지원 인프라를 빠르고 안정적으로 대규모로 제공 할 수 있습니다.

 


사실은 그동안 인프라 신입을 뽑는데 왜 코딩 시험을 볼까? 했었다

인프라와 코딩은 그렇게까지 직접적인 영향을 끼치지 않는다고 생각해서이다. 서버를 구축하고 인프라를 만들면 되는 거지 왜 코딩 테스트를 보는 거지 라고 생각했었는데 이 기사를 읽고 이유를 알게 되었다. 

인프라와 코딩은 밀접한 관계를 갖게 될 것이며 앞으로 트렌드를 보아 엔지니어에게도 높은 수준의 코딩 실력을 요구할 것이라고 생각이 든다

사실 그동안 코딩 공부는 좀 소홀히 했었는데 개발자를 준비하는 사람만큼이나 열심히 준비해야겠다!!

'IT > 뉴스정리' 카테고리의 다른 글

2021.2.22 월요일  (0) 2021.02.22
2021.2.17 수요일  (0) 2021.02.17
2021.2.15 월요일  (0) 2021.02.15
2021.2.10 수요일  (0) 2021.02.10
2021.2.9 화요일  (0) 2021.02.09