Azure를 활용한 클라우드 네이티브 인프라 - 에이콘 클라우드 컴퓨팅

Azure를 활용한 클라우드 네이티브 인프라 - 에이콘 클라우드 컴퓨팅

$35.00
저자

니샨트싱,마이클케호

저자:니샨트싱(NishantSingh)
LinkedIn의선임사이트안정성엔지니어로,장애에대한평균감지시간(MTTD)과평균응답시간(MTTR)을줄이는데중점을두고사이트의안정성을개선하기위해노력하고있다.LinkedIn에합류하기전Paytm과Gemalto에서DevOps엔지니어로일했고,클라이언트를위한맞춤형솔루션을구축하고퍼블릭클라우드를통해서비스를관리하고유지했다.사이트신뢰성엔지니어링과분산시스템구축에깊은관심을갖고있다.

저자:마이클케호(MichaelKehoe)
컨플루언트(Confluent)의선임보안엔지니어이다.그전에는LinkedIn에서책임사이트안정성엔지니어로장애대응,재해복구,가시성엔지니어링및안정성원칙과관련된일을했다.LinkedIn에서근무하는동안MicrosoftAzure로마이그레이션을자동화하려는회사의노력을이끌었다.LinkedIn(애플리케이션,자동화그리고인프라)과UniversityofQueensland(네트워크)에서작업한것처럼대규모시스템인프라유지관리를전문으로한다.또한NASA에서소형위성을만들고RioTinto에서열환경소프트웨어를만들었다.

역자:양준기
15년이상의아키텍트로서많은대규모IT시스템을경험했으며,현재는SK주식회사C&C에서핵심적인디지털플랫폼을구축하려는기술적노력을이끌고있다.쿠버네티스기반의프라이빗클라우드플랫폼구축을수행했으며,현재는기존의시스템을클라우드로전환하는사업에서클라우드아키텍트로활약하고있다.특히클라우드네이티브애플리케이션(CloudNativeApplication)개발과이를위한플랫폼에관심이많다.

역자:최지희
SK주식회사C&C에서SK주요멤버사의클라우드시스템을클라우드네이티브기반으로설계,구축하는클라우드아키텍트역할을하고있다.특히클라우드전략을포함해마이그레이션,MSA구축까지전영역에서기술지원과프로젝트수행을하고있다.Azure,AWS,GCP,NaverCloud등주요CSP의아키텍트자격증을보유하고있으며,최근에는GCPAI/Data프로젝트를진행하면서데이터,AI/ML서비스기술에도관심을갖고있다.

목차


1장.소개:왜클라우드네이티브인가?
__클라우드여정
__클라우드의과제
__클라우드네이티브컴퓨팅재단
__Azure로클라우드네이티브인프라스트럭처적용
__요약
2장.코드로서의인프라:게이트웨이설정
__코드로서의인프라와클라우드네이티브세계에서의중요성
__Azure시작하기와환경설정
____Azure기본사항과환경준비하기
____Azure계정생성
____AzureCLI설치
__주요IaC도구
____테라폼
____패커
____앤서블
__AzureDevOps와코드로서의인프라
__요약
3장.애플리케이션컨테이너화:Box그이상
__왜컨테이너인가?
____격리
____보안
____패키징과배포
__기본컨테이너기본요소
____Cgroup
____Namespace
____CopyonWrite
____Capabilities
____Seccomp-BPF
__컨테이너실행의컴포넌트
____컨테이너오케스트레이터
____컨테이너소프트웨어
____컨테이너런타임
____컨테이너
____운영체제
__오픈컨테이너이니셔티브스펙
____OCI이미지스펙
____OCI런타임스펙
__도커
____첫번째도커이미지빌드
____도커사용모범사례
__다른컨테이너플랫폼
____카타컨테이너
____LXC와LXD
__컨테이너레지스트리
____Harbor로안전하게이미지저장
____Azure컨테이너레지스트리로안전하게이미지저장
__레지스트리에도커이미지저장
____Azure에서도커실행
____Azure컨테이너인스턴스
____Azure컨테이너인스턴스배포
____도커컨테이너엔진실행
__요약
4장.쿠버네티스:그랜드오케스트레이터
__쿠버네티스컴포넌트
____컨트롤플레인
____워커노드
__쿠버네티스API서버오브젝트
____포드
____레플리카셋
____디플로이먼트
____서비스
____네임스페이스
____레이블과셀렉터
____어노테이션
____인그레스컨트롤러
____스테이트풀셋
____데몬셋
____잡
__kubectl로쿠버네티스클러스터관측,운영및관리
____일반적인클러스터정보와명령어
____포드관리
____프로덕션에서의쿠버네티스
__요약
5장.Azure에서쿠버네티스클러스터생성
__쿠버네티스클러스터를맨처음부터생성
____리소스그룹생성
____워커와컨트롤러의머신이미지생성
____스토리지계정생성
____Azure가상네트워크생성
____로드밸런서의퍼블릭IP생성
____워커인스턴스와컨트롤러인스턴스생성
____앤서블로쿠버네티스컨트롤러노드의배포와구성
____앤서블로쿠버네티스워커노드의배포와구성
____포드네트워크와라우팅설정
____원격접속과클러스터검증을위한kubeconfig파일생성
__Azure쿠버네티스서비스
__Helm으로애플리케이션과서비스배포:쿠버네티스의패키지관리자
____Helm의기본
____Helm설치와관리
____Helm릴리스관리
____애플리케이션을차트로생성
__요약
6장.관측성:브래드스크럼따라가기
__관측성소개
____관측성:세개이상의핵심요소
____관측성:모니터링의슈퍼셋
____관측성-기반개발
__클라우드네이티브세계에서프로메테우스모니터링메트릭
____프로메테우스컴포넌트와아키텍처
____프로메테우스설치와구성
____node_exporter
____애플리케이션계측
____호스트찾기
____쿠버네티스에서의프로메테우스
__클라우드네이티브세계에서의로깅
____Fluentd를이용한로깅
____쿠버네티스에서의Fluentd
__클라우드네이티브세계에서의분산추적
____추적:핵심개념
____일반적인추적시스템아키텍처와추적조합
____추적표준,도구,코드계측
__AzureMonitor
__요약
7장.서비스디스커버리와서비스메시:새로운영역을찾아경계를넘어
__서비스디스커버리
____CoreDNS소개
____CoreDNS설치와구성
____CoreDNS와쿠버네티스서비스디스커버리
____AzureDNS
__서비스메시
____Istio소개
____AzureKubernetesService에서Istio설치
____사이드카프록시(Envoy프록시)자동화
____Kiali를사용한Istio서비스메시관리
__요약
8장.네트워크와정책관리:문지기관찰
__컨테이너네트워크인터페이스(CNI)
____CNI를사용하는이유
____Azure에서CNI가작동하는방법
____다양한CNI프로젝트
__캘리코
____캘리코를사용하는이유
____기본아키텍처
____캘리코배포
____캘리코깊게살펴보기
____캘리코보안정책구현
__실리움
____실리움배포
____클라우드에실리움통합
____호스트방화벽
__플라넬
____플라넬배포
____플라넬깊게살펴보기
__AzurePolicy
____AzurePolicy빠르게시작하기
____AzurePolicy생성
____쿠버네티스와AzurePolicy
__오픈정책에이전트
____쿠버네티스에서OPA배포
____OPA를사용한정책배포
__요약
9장.분산데이터베이스와스토리지:중앙은행
__클라우드네이티브아키텍처에서의분산데이터베이스필요성
____Azure스토리지와데이터베이스옵션
__Vitess소개:분산샤딩MySQL
____Vitess를사용하는이유
____Vitess아키텍처
____쿠버네티스에Vitess배포
__Rook소개:쿠버네티스의스토리지오케스트레이터
____Rook아키텍처
____쿠버네티스에Rook배포
__TiKV소개
____TiKV를사용하는이유
____TiKV아키텍처
____쿠버네티스에TiKV배포
__etcd에대해더살펴보기
____하드웨어플랫폼
____오토스케일링과자동재조정
____가용성과보안
__요약
10장.메시지
__메시징의필요성
__샘플메시징유스케이스:로그수집(Ingestion)과분석
____1세대:큐없음
____2세대:클라우드큐와오브젝트스토리지
____3세대:메모리기반의게시/구독큐
__메시징플랫폼의기본
____메시징대스트리밍
__메시징기초
____생산자와소비자
____브로커와클러스터링
____견고성과영속성
____메시지전달
____보안
__공통메시징패턴
____심플큐
____게시와구독
____견고한큐
__대표적인클라우드네이티브메시징플랫폼개요
____RabbitMQ
____ApacheKafka
____CNCFCloudEvents
__NATS를사용해클라우드메시징깊게살펴보기
____NATS프로토콜아키텍처
____JetStream과NATS지속성
____NATS보안
____쿠버네티스에NATS배포
__Azure메시징서비스
____AzureServiceBus
____AzureEventHubs
____AzureEventGrid
__요약
11장.서버리스
__서버리스컴퓨팅소개
____서버리스란?
____서버리스Function이란?
____서버리스살펴보기
____서버리스의장점
____서버리스의잠재적단점
__AzureFunction앱
____Function앱아키텍처
____Function앱생성
__Knative
____Knative아키텍처
____쿠버네티스에서KnativeServing설치와실행
____쿠버네티스에서KnativeEventing설치와실행
__KEDA
____KEDA아키텍처
____쿠버네티스에KEDA설치
__OpenFaaS
____OpenFaaS아키텍처
____OpenFaaS설치
____OpenFaaSFunction작성
__요약
12장.결론
__다음은무엇일까?

출판사 서평

이책에서다루는내용

-왜클라우드네이티브로전환해야하는가?
-코드로서의인프라사용방법
-애플리케이션을컨테이너화하는데필요한것
-쿠버네티스가"위대한조정자"인이유와방법
-Azure에서쿠버네티스클러스터를만드는방법
-관찰성이모니터링을보완하는방법
-서비스디스커버리와서비스메시를사용해새로운영역을찾는방법
-네트워킹과정책관리가게이트키퍼역할을하는방법
-분산데이터베이스와스토리지작동방식

이책의대상독자

클라우드네이티브환경과이런환경을엔지니어가안정적으로구축하는데사용하는모든주요기술에대해간단하면서도포괄적으로소개한다.이책은사이트안정성엔지니어(SRE),SiteReliabilityEngineer,DevOps엔지니어,솔루션아키텍트,Azure를좋아하는사람과일상적으로클라우드네이티브워크로드작업을구축,마이그레이션,배포및관리하는데관련된모든사람을대상으로한다.이책은독자가클라우드와DevOps문화에대해전반적으로기본지식을갖추고있다고가정한다.그러나클라우드네이티브와기타고급기술에대해더잘이해하고싶은사람도이를시작하는데적합하다.

이책의구성

이책은다음과같이구성돼있다.

1장,‘소개:왜클라우드네이티브인가?’에서는클라우드에대한기본소개와클라우드네이티브기술과적용의필요성을설명한다.2장,‘코드로서의인프라:게이트웨이설정’에서는테라폼(Terraform)과패커(Packer)로IaCInfrastructureasCode의기본사항을다루고,프로비저닝/구성관리자로Azure와Ansible을소개한다.
3장,‘애플리케이션컨테이너화:Box그이상’에서는컨테이너와containerd,도커(Docker)및CRI-O와같은컨테이너런타임을소개한다.다양한유형의컨테이너레지스트리에관해서도설명한다.
4장,‘쿠버네티스:그랜드오케스트레이터’에서는쿠버네티스에대해설명하고5장에서사용할인프라의필요한세부정보에대해설명한다.
5장,‘Azure에서쿠버네티스클러스터생성’에서는특히AzureKubernetesService와Helm패키지관리자를다룬다.
6장,‘관측성:브래드스크럼따라가기’에서는최신클라우드네이티브인프라를관찰할수있는방법에초점을맞춘다.
7장,‘서비스디스커버리와서비스메시:새로운영역을찾아경계를넘어’에서는서비스디스커버리와서비스메시에대해설명한다.또한CoreDNSDNS서버와Istio서비스메시를소개한다.
8장,‘네트워크와정책관리:문지기관찰’에서는캘리코(Calico),플라넬(Flannel),실리움(Cilium)과같은네트워킹인터페이스를포함한네트워크와AzurePolicy와OpenPolicyAgent등의정책관리를다룬다.
9장,‘분산데이터베이스와스토리지:중앙은행’에서는AzureStorage,Vitess,Rook,TiKV등을중심으로클라우드네이티브인프라에영구스토리지시스템을배포하는방법에관해설명한다.
10장,‘메시지’에서는주로NATS와Azure메시징서비스와같은메시징과스트리밍플랫폼을중점적으로다룬다.
11장,‘서버리스’에서는클라우드네이티브랜드스케이프의서버리스를간단히소개한다.
12장,‘결론’에서는앞서소개한장들에서논의한모든내용을요약한다.

지은이의말

클라우드컴퓨팅은성장과혁신을이끄는차세대디지털비즈니스혁신의모델로널리채택됐다.오늘날고객은빠르면서도기존서비스와매끄럽게통합되는에코시스템을원한다.엔터프라이즈관점에서클라우드는확장가능하고안정성이높으며가용성이높은방식으로소비자와기업을위한서비스를제공한다.그리고최종사용자관점에서클라우드는기반인프라와기술을완전히이해하지않아도컴퓨팅서비스를얻을수있는간단한모델을제공한다.

기존의많은애플리케이션은클라우드서비스의속도와민첩성을최대한활용하기위해클라우드네이티브애플리케이션으로전환됐으며,새로운솔루션은“cloudfirst”로구축되고있다.클라우드네이티브애플리케이션은처음부터급격한변화,대규모및복원력을수용하도록구축된다.기본적으로클라우드네이티브애플리케이션인프라는비즈니스요구사항을효율적으로제공하는데중요한역할을한다.기반인프라가올바른방식으로설계되지않으면최고의클라우드네이티브애플리케이션도프로덕션환경에서는실패할수밖에없다.이책은클라우드네이티브애플리케이션의다양한요구사항과설계고려사항을바탕으로,Azure의최신클라우드네이티브인프라를프로덕션환경에서구축하고관리할수있는방법을살펴본다

옮긴이의말

최근ChatGPT와OpenAI는IT업계의화두다.어떤이는IT혁명이라도하고,어떤이는산업의혁명이라고도말한다.이화두의정점에있는회사는다름아닌Microsoft다.이거대한기업이IT시장에서변화를이끌어내는것을보면마치스타트업이움직이는것같이민첩하고기민하다.Microsoft의변화의기반을이끌어내는저변에는Azure가있다.IT업계,특히Cloud업계에서의3개의공룡은시장에서치열하게경쟁하고있는데,최근의Microsoft의행보를보면1위가능성이없어보이진않는다.

2022년공정거래위원회가발표한‘클라우드서비스분야실태조사연구’에따르면한국내에서클라우드시장점유율은AWS가1위,Azure는그다음을차지하고있다.하지만Microsoft는IT종사자또는사용자라면많이사용하고있는Microsoft365,GitHub,VisualStudio와같은친숙한서비스를제공하기때문에낯설지만은않을것이다.최근몇년동안기업에서도이런도구들을활용해MicrosoftAzure와통합해사용하는기업들이늘어나고있다.내가만난고객들은서비스의수준에대해서서비스의차이는있지만,수준은차이가나지않는다고고백하고있다.

내가보는Azure의특징을3가지정도로보고있다(물론개인적인생각임을밝혀둔다).첫째,Azure의서비스는PaaS,SaaS를통한서비스통합에중점을두고있다.Microsoft는수십년동안자사의제품을개발,공급하고있으며,이제품은개발자가사용하는개발도구부터엔터프라이즈의대규모데이터를처리하는데이터베이스까지없는제품이없을정도로많다.이런개발노하우를적극적으로Azure에반영하고있다.특히자사제품과의서비스통합은비교할수없을정도로발군이다.대표적인예는Active.Directory와AzureActiveDirectory와의연계통합이다.

둘째,Azure는기존의Microsoft제품을사용하는고객에게는비용적으로이점이있다.WindowServer,SQLServer를사용하는고객은Azure하이브리드혜택을통해타사대비최대85%이상절감할수있다.이하이브리드혜택은RHEL(RedHatEnterpriseLinux),SLES(SUSELinuxEnterpriseServer)를사용하는LinuxVM에대해적용할수있으며최대76%까지비용을아낄수있다.

셋째,IT생태계확장을통한서비스의다양성이다.MicrosoftAzure는RedHat,VMWare,Oracle과같은기존의IT강자들을포함해많은오픈소스생태계를Azure서비스에담고있다.위에도언급했지만비용적인측면뿐만아니라Azure의네이티브서비스에도각영역의시장에서유력한제품들을탑재하고있다.이는비용과서비스유지보수측면에서아주유리하다.특히AzureSpringApps와같은서비스는Azure에서SpringBoot애플리케이션을바로사용할수있게해주며,VMWareTanzu와같은엔터프라이즈서비스는마켓플레이스를통해서제공하고있다.

이런관점에서보면Azure는클라우드관련자라면반드시알아야한다.하지만현재국내에서Azure와관련된책은찾기가어렵다.특히인프라에초점을맞춰작성된책은더더욱드물다.그런측면에서이책은가치가있다.서문에서도밝혔지만,클라우드의장점을최대한활용하기위해서는애플리케이션뿐만아니라인프라도그에맞게네이티브인프라로구축돼야한다.이책에서는그렇게하기위한대부분의내용을설명하고있으며,이를Azure로구축하기위한방법과다른컴퓨팅솔루션을활용하는방법까지폭넓게밝히고있다.

하지만클라우드시장이빠르게변화하는만큼가장최신의정보를담지못하는점은아쉽다.옮긴이주석에도남겼지만실제실습을하다보면수정돼야하는내용도있다.그럼에도불구하고이책은클라우드의개념은알면서도Azure기반에서클라우드네이티브인프라를구성하려는독자에게훌륭한책이다.또한Azure기반이아니더라도이책에서제시하는다른클라우드솔루션과접근방법은클라우드인프라담당자에게도움이될수있다.
-양준기

최근클라우드네이티브라는용어를많이들어봤을것이다.많은기업이클라우드로전환하고있지만단순히환경만바꾼다고해서클라우드의모든이점을갖추기는어렵다.따라서클라우드의확장성과유연성과같은이점을최대로활용하기위해서는말그대로클라우드에서태어난,클라우드에잘맞는환경을함께갖추는것이중요해지고있다.그렇다면클라우드에잘맞는환경이란무엇일까?클라우드네이티브컴퓨팅재단CNCF에서는클라우드네이티브에관해‘조직이현대적이고역동적인환경에서확장가능한애플리케이션을구축하고실행할수있도록지원하는것’이라고정의하고있다.이러한예로컨테이너,서비스메시,마이크로서비스,불변인프라등을말하고있다.이책에서는CNCF의지침에따라클라우드네이티브애플리케이션을구축하고배포하는데필요한지식을제공하고있다.특히Azure상에서쿠버네티스클러스터를배포하는것부터배포관리하고관측하기까지,설계단계에서클라우드네이티브의특성을최대한활용하는방법을배울수있다.또한Terraform코드를통해리소스를배포하는실습을포함해이를사용하고유지관리하는방법을안내하고있다.

번역을진행하면서독자들이쉽게잘읽을수있고내용이잘전달될수있게하는데초점을뒀다.이러한노력에도일부기술용어를설명하는내용이어색할수있다.독자들이이책을읽으면서용어하나하나상세하게이해하기보다는Azure상에서클라우드네이티브애플리케이션을배포및관리하기위해실제어떤기술들이필요한지기본적인개념과큰흐름을이해했으면좋겠다.또한독자들이실습을직접따라해보지못하더라도코드로된명령어를눈으로보면서실습의전반적인흐름과구성을따라가기만해도책의목표절반은성취했다고생각한다.
-최지희