brunch

You can make anything
by writing

C.S.Lewis

by Master Seo Oct 11. 2022

책) 코드로 인프라 관리하기(2판)-2022

2022년 8월 29일 , 2판

코드로 인프라를 관리해야 하는 엔지니어에게 개념을 잡아주는 책으로 추천한다.


이 내용은 한빛 미디어 출판사 이벤트에 당첨되어 ,책을 받아 보고 개인이 솔직하게 작성합니다.



오렐리 책이라 기술적인 책이다.

중급 서적

코드로 인프라 관리를 왜 해야 하는지  알려준다.

반대하는 의견에 대한 답변이 있는 책이다.


코드로 인프라를 관리하는 기본 개념에서  관리 툴을 사용할 때 어떤 부분을 고려해야 하는지 정리되어 있다.

테라폼이나 클라우드 포메이션 툴 자체를 알려주진 않는다.

그 툴을 사용할 때 어떤 부분으로 나누어 파일을 만들지, 어떤 체계로 트리를 만들지 알려주는 책이다.

한마디로 툴을 쓰기 전  개념을 정리해 주는 책이다.

툴 사용 시 파일을 마구 만들었는데, 어떤 체계로 만들어야 관리가 쉬운이 배울 수 있었다.

Shop Spinner라는 가상회사를 사용해 이 책의 개념을 설명한다.

자~ 책 내용을 살펴보자~



<1> 코드형 인프라란?

<2> 코드형 인프라 이점

<3> 코드형 인프라를 사용한 변경 최적화

<4> 코드형 인프라를 위한 세 가지 핵심 실행 방법

<5> 인프라 플랫폼

<6> 코드로 인프라 스택 구축하기





<1> 코드형 인프라란?


IT 인프라를 구축하고 운영하는 팀에서 일한다고 하면 클라우드와 자동화 기술을 사용해 짧은 시간에 많은 가치를 제공하고 안정적으로 작업할 것이라 생각하지만 현실은  쉽지 않다.


클라우드가 가진 위협에 대응하고자 변경 관리 프로세스를 강화한다.

혼란을 막으려 하는 것이다.

변경관리를  강화하면 2가지 문제가 생긴다.

첫째, 클라우드 기술 사용의 장점이 없어진다.

둘째, 그럼에도 클라우드 장점을 원한다.

결과적으로 혼란의 프로세스를 우회한다.

위험 관리를 무시하고 변경관리는 필요 없다고 생각한다.

카우보이 IT를 수용하게 된다.

카우보이 IT  = 미래의 결과에 대한 체계나 고려 없이 IT  시스템을 구성하는 것.


클라우드 자동화 기술이 쉽고 안전하고 빠르고 책임감 있는 인프라 변경이 가능하게 만든다는 것을 전제로 한다.

도구 , 플랫폼 도입 만으로 되는 것이 아니며 기술의 사용 방법에 따라 성공 여부가 결정된다.



<2> 코드형 인프라 이점


신속한 배포 가능

변경에 따른 노력과 위험 감소

사용자에게 필요한 리소스 지원

개발, 운영, 관리 간 공통 도구 제공

거버넌스, 보안, 규정 준수 제어를 시각화

장애 해결과 문제 분석 속도 향상



<3>  코드형 인프라를 사용한 변경 최적화


1

자동화를 도입할 만큼 변경은 자주 발생하지 않아요??


아니다.

시스템을 빌드하고 나면 업무가 마무리되기를 바란다.

하지만 시스템은 폐기하기 전까지 지속적인 변경 작업이 필요하다.

활발히 사용되는 시스템은 지속적으로 변경을 처리한다.


2

구축 이후 자동하 하면 된다?


아니다.

코드형 인프라는 시작하는 것은 어렵고 많은 시간이 소요된다.


구축과 배포 이후에 자동화하는 것이 좋지 않은 이유?

자동화는 배포를 더 빠르게 하고 구축 속도도 더 빠르게 한다. 작업 완료한 후에는 자동화는 이점을 놓치게 된다.

자동화는 시스템 자동 테스트도 하게 해 준다. 장애 시 빠르게 대응 가능하다.

이미 구축된 건 자동화하기 어렵다. 자동화는 시스템 설계 구현의 한 부분이다.


3

속도와 품질 중 하나를 선택해야 한다?


아니다.

변경을 잘한다와 안정성을 강화한다는 하나를 선택할 수 없으며, 두 가지 모두 잘하거나 둘 다 못하는 경향이 있다.



<4> 코드형 인프라를 위한 세 가지 핵심 실행 방법


방법 1.  모든 것을 코드로 정의한다.

재사용성

일관성

투명성


방법 2. 코드를 지속적으로 테스트하고 딜리버리 한다.

아이디어는 품질을 테스트하는 것이 아니라 테스트를 통해 품질을 구축하는 것이다.

진행 중인 모든 작업을 통합하고 테스트해야 한다.


방법 3. 시스템을 작고 간단하게 빌드한다.

높은 성과를 내는 팀의 코드 베이스를 보면  시스템이 작오 간단하게 구성되어 있다.




<5> 인프라 플랫폼


1

인프라 시스템의 구성요소


애플리케이션

애플리케이션 런타임

인프라 플랫폼




2

인프라 언어

테라폼, 클라우드 포메이션과 같은 스택 지향 도구.

선언형 언어는 인프라 정의를 구현 방법에서 분리하여 인프라 코드를 단순화했다.

최근 범용 언어로 인프라를 정의하는 새로운 도구를 사용하기 도 한다. CDK



<6> 코드로 인프라 스택 구축하기


1

인프라 스택은 하나의 단위로 정의, 프로비저닝, 업데이트되는 인프라 리소스 모음이다.


2

다음은 스택 관리 도구이다.

테라폼

AWS 클라우드 포메이션

Azure 리소스 매니저

구글 클라우드 디플로이 매니저

오픈스택 Heat

Pulumi

Bosh


3

스택 코드



개념을 이해하도록 해서, 인프라를 코드로 관리할 수 있게 해주는 책으로 추천한다.




참고

테라폼 사용법

https://brunch.co.kr/@topasvga/2124


AWS 클라우드 포메이션 사용법

https://brunch.co.kr/@topasvga/1781





같이 보면 좋을 책

https://brunch.co.kr/@topasvga/1349


감사합니다.


브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari