본문 바로가기

도서 소개

모두를 위한 클라우드 컴퓨팅

모두를 위한 클라우드 컴퓨팅

HTC 개념부터 가상화, 컨테이너, CI/CD, AWS 프로그래밍까지

 

도서구매 사이트(가나다순)

교보문고 / 도서11번가 / 알라딘 / 예스이십사 / 인터파크 / 쿠팡

 

출판사 제이펍
도서명 모두를 위한 클라우드 컴퓨팅
부 제 HTC 개념부터 가상화, 컨테이너, CI/CD, AWS 프로그래밍까지
지은이 노서영
시리즈 I♥Cloud 25
출판일 2022. 08. 26
페이지 696쪽
판 형 46배판변형(188*245*33.7)
제 본 무선(soft cover)
정 가 39,000원
ISBN 979-11-92469-25-6 (93000)
키워드 클라우드, HTC, 가상머신, HTCondor, 하이퍼바이저, 가상화, CI/CD, AWS, 컨테이너, 도커, 쿠버네티스, 젠킨스, 데이터 센터
분 야 네트워크 / 클라우드

 

관련 포스트

2202.08.19 - [출간 전 책 소식] - 클라우드 컴퓨팅에 관한 모든 것

 

교재 검토용 증정 안내

■ 학교 및 학원에서 교재 선정을 위해 책을 파일로 검토해보고자 하는 분들은 다음 페이지에서 신청 양식을 작성해주시기 바랍니다. 확인 후 연락을 드리겠습니다. https://goo.gl/vBtPo3

 

강의 보조 자료(교재로 채택하신 분들은 메일(textbook@jpub.kr)을 보내주시면 다음 자료를 보내드립니다.)

■ 본문의 그림과 표

 

미리보기(표지, 차례, 추천사, 머리말, 본문 일부)

 

정오표 페이지
■ (등록되는 대로 링크를 걸겠습니다.)

 

도서구매 사이트(가나다순)

교보문고 / 도서11번가 / 알라딘 / 예스이십사 / 인터파크 / 쿠팡

 

도서 소개

클라우드 컴퓨팅의 이론과 실습을 한 권으로 끝내자

클라우드 컴퓨팅 기술이 발달하면서 많은 기업이 IT 생태계 기반을 클라우드 환경으로 전환하고, 클라우드 기반의 프라이빗 데이터 센터를 구축하고 있다. 이 책은 클라우드 컴퓨팅을 이해하기 위해 꼭 알아야 할 가상머신, 가상화, 컨테이너 같은 기반 기술을 살펴보고, 클라우드 컴퓨팅을 활용한 CI/CD와 데이터 센터의 응용도 함께 다룬다. 학습 내용은 실습으로 확인할 수 있고, 모든 실습은 버추얼박스를 이용하여 컴퓨터 한 대로 진행할 수 있도록 했다. 가상머신과 도커, 쿠버네티스와 같은 컨테이너에 대한 실습 예제뿐만 아니라 AWS에서 제공하는 API를 활용하여 가상머신을 동적으로 컨트롤하는 방법까지 포함한다.

 

주요 내용
■ HTC 관점으로 살펴보는 클라우드 컴퓨팅 
■ 버추얼박스 기반 HTCondor 클러스터 구축 및 활용 
■ 아마존 AWS 클라우드 활용 
■ 가상화 기술의 개념 및 활용 
■ 리눅스 컨테이너, 도커, 쿠버네티스 기술 응용 
■ 도커와 젠킨스를 이용한 CI/CD 파이프라인 구성
■ 클라우드 기술의 데이터 센터 활용

 

지은이 소개

노서영
충북대학교 소프트웨어학부 교수로 재직 중이다. LG전자 책임연구원, 한국과학기술정보연구원 국가슈퍼컴퓨팅본부 대용량데이터허브센터 센터장, 미국 페르미국립가속기연구소 방문연구원을 지냈으며, 공저로는 《코드로 알아보는 ARM 리눅스 커널》(제이펍, 2012)이 있다.

 

추천사

5년 전 국내에서 번역 서적 이외의 클라우드 컴퓨팅 기술에 관한 책을 찾기 어렵다는 이유로 《오픈스택 기반의 프라이빗 클라우드 서비스》라는 책을 집필하였습니다. 5년이 지난 시점에서 《모두를 위한 클라우드 컴퓨팅》이라는 책을 접하게 되니 반가운 생각이 듭니다. 10년 넘게 클라우드 컴퓨팅 관련 업무를 하고 있고, 클라우드 컴퓨팅 관련 책을 집필하였던 경험이 있다 보니 주변에서 ‘어떻게 공부해야 클라우드 컴퓨팅을 이해할 수 있느냐?’라고 질문하는 경우가 많습니다. 업무를 하다 보면 클라우드 서비스는 다양한 기술 기반으로 구성되어 있고, 활용되고 있다는 것을 매번 느끼게 됩니다. 따라서 클라우드 서비스를 이해하고 활용하기 위해서 많은 기술을 이해하고 있어야 합니다. 이번 《모두를 위한 클라우드 컴퓨팅》 책은 가상화, 컨테이너, 쿠버네티스 등 다양한 분야의 기반 기술과 CI/CD, 데이터 센터 등의 활용 측면의 기술을 설명하고 있어 클라우드 컴퓨팅 분야의 기술에 대한 지식을 습득하고자 하는 독자에게 많은 도움이 되겠다고 생각합니다.
_강남규, 국민은행 클라우드 엔지니어링 팀장

기업에서는 VM 환경에 도커와 쿠버네티스를 이용해서 서비스 배포를 하는 것이 일상이 되었습니다. 이 책은 제목처럼 클라우드에 대해서 배우고픈 학생들과 현업 개발자들에게 클라우드의 기초 개념부터 도커, 쿠버네티스와 같은 최신 기술까지 알기 쉽게 설명하므로 개발 관련 일을 하는 모두에게 추천합니다.
_고병일, 카카오엔터프라이즈

소프트웨어 개발이 대규모 서버를 통해 기존의 여러 서비스와 연계하여 작동하는 최근 추세를 고려하면, 클라우드 컴퓨팅에 대한 기본적인 지식은 모든 소프트웨어 개발자들이 알아야 하는 필수 소양이 되었습니다. 노서영 교수님께서 복잡한 개념과 어려운 용어가 난무하는 클라우드 컴퓨팅의 기초에 대한 길잡이를 제공하겠다는 목표를 이 책을 통해 완수하셨습니다. 클라우드 컴퓨팅의 개념과 역사에서 시작하여 클러스터, 가상화, 컨테이너, 도커 등에 대한 상세한 설명과 함께 실습을 통해 무한한 네트워크에 펼쳐진 클라우드의 실체를 보여주는 가이드북으로 충실한 역할을 할 것입니다.
_김태형, 삼성전자 

이 책은 클라우드 컴퓨팅에 대한 지식이 없는 독자들에게 클라우드 컴퓨팅 기술의 핵심을 소개하고 클라우드 컴퓨팅 환경을 직접 구축하고 운용할 수 있도록 도와줌으로써 클라우드 컴퓨팅이라는 미지의 세계를 잘 헤쳐 나가기 위한 좋은 길잡이가 될 것입니다.
_박경현, ETRI 

클라우드 컴퓨팅 기술에 입문하고자 하는 이들이 기본적인 기술을 익히고 환경 구축 및 활용에 대한 폭넓은 이해와 지식을 얻는 데 도움이 될 만한 책이라고 생각합니다. 클러스터, 가상화, 컨테이너, 도커 등의 클라우드 컴퓨팅과 관련된 세부적인 기술 개념뿐만 아니라, AWS 및 쿠버네티스 활용 등의 실무적인 내용들이 다채로운 실습 예제와 잘 어우러져 있습니다. 클라우드 컴퓨팅에 대해 전반적으로 이해하고 싶은 이에게 권합니다.
_송원준, 강원대학교 컴퓨터공학과 교수

클라우드 컴퓨팅의 기본 개념을 잘 설명하고, 아마존 AWS, 도커, 쿠버네티스, 젠킨스 등 실제 소프트웨어 개발을 위해 필요한 실습을 포함하고 있습니다. 개념에서부터 실습까지 공부하는 분들에게 꼭 필요한 책입니다.
_신승은, SKT 

이 책은 여러 방식의 클라우드 환경을 소개함으로써 독자가 다양한 현장에서 필요로 하는 지식을 쌓게 도와줍니다. 클라우드 컴퓨팅에 대한 핵심적인 개념 설명뿐만 아니라 실무에서 많이 사용하는 사례를 제공하므로, 클라우드 컴퓨팅 적용을 고민하는 모두에게 좋은 가이드북이 될 것입니다. 특히 대규모 분산처리를 할 수 있는 HTC 및 HTCondor를 국내에 처음 소개하는 점이 신선합니다. 기초부터 실무까지 클라우드 컴퓨팅에 필요한 많은 영역을 다루고 싶은 분들에게 적극 추천합니다.
_윤희준, KISTI 대용량데이터허브센터 센터장 

클라우드 컴퓨팅 시장이 본격화됨에 따라 많은 기업이 그 전환을 위해 노력하고 있습니다. 클라우드로 전환의 목적은 기업이 요구하는 모든 것을 반영하여 기업이 추구하는 서비스 방향을 이루고 이로 인한 기업의 발전일 것입니다. 또한, 클라우드 도입으로 기존의 레거시 애플리케이션 배포를 현대화된 애플리케이션 배포 방식으로 변화함으로써 급속도로 발전하고 있는 LOB(line of business) 요구사항을 반영하는 개발 도구와 인프라를 제공받을 수 있습니다. 이러한 클라우드 네이티브 아키텍처 도입으로 기업은 시장 경쟁력을 높일 수 있고, 고객은 더 나은 디지털 경험을 얻을 수 있게 됩니다. 이 책은 IT를 추구하는 기업과 인재들이 클라우드의 A부터 Z를 이해할 수 있도록 클라우드와 가상화의 개념을 잘 잡아주며, 현대화된 애플리케이션의 핵심 중 하나인 컨테이너 서비스와 관리 도구인 쿠버네티스의 활용법, 그리고 자동화된 배포(CI/CD) 방식을 실습으로 제공하여 클라우드를 효율적으로 설계하고 활용하는 좋은 방법들을 보여줍니다. 기존 방식에서 벗어나 클라우드 전환과 사용 계획이 있다면 이 책이 좋은 아이디어를 제공해줄 것입니다.
_이현용, 데이터스토리허브 대표 / AWS 테크니컬 트레이너 

 

차례

추천사 xiv

머리말 xvii

감사의 글 xix

 

PART 1 클라우드 컴퓨팅 개론 1

CHAPTER 1 클라우드 컴퓨팅 개념 3

1.1 클라우드 관련 용어 3

1.2 클러스터링 5

1.3 컴퓨팅 자원의 효율적 활용 8

__1.3.1 특정 시간 동안 사용되지 않은 컴퓨팅 자원의 활용 9

__1.3.2 작업의 로드가 작은 컴퓨팅 자원의 활용 10

__1.3.3 컴퓨팅 자원의 활용과 안정성 12

__1.3.4 클라우드 컴퓨팅 서비스 17

__1.3.5 아마존과 클라우드 22

__1.3.6 클라우드 서비스를 가능하게 하는 기술 23

__1.3.7 가상머신 관리 툴 26

__1.3.8 HTC의 또 다른 예 그리드 컴퓨팅 27

연습문제 29

 

CHAPTER 2 클라우드 컴퓨팅의 역사와 모델 31

더보기

2.1 클라우드 컴퓨팅 개념의 탄생 31

2.2 클라우드 컴퓨팅의 정의 33

2.3 클라우드 컴퓨팅의 특성과 배포 모델 35

__2.3.1 클라우드 컴퓨팅의 5가지 특성 35

__2.3.2 클라우드 컴퓨팅의 3가지 서비스 모델 37

__2.3.3 클라우드 컴퓨팅의 4가지 배포 모델 38

2.4 클라우드를 활용하는 이유 40

__2.4.1 인프라 규모 산정의 용이성 40

__2.4.2 비용의 절감 41

__2.4.3 탄력성 41

__2.4.4 가용성 42

__2.4.5 신속성 43

__2.4.6 투명한 사용량 측정 43

__2.4.7 복원성 43

2.5 클라우드 컴퓨팅에 영향을 준 기술들 44

__2.5.1 클러스터링 44

__2.5.2 그리드 컴퓨팅 46

__2.5.3 가상화 49

2.6 클라우드 서비스 제공자의 역할 50

2.7 자원성능의 확장 52

2.8 클라우드를 사용할 때 고려할 사항 53

연습문제 57

 

CHAPTER 3 HTC 59

3.1 HTC 기본 개념 59

3.2 HTC 사용 예 63

__3.2.1 OSG를 통해 본 HTC 사용 예 63

__3.2.2 데이터 챌린지에 HTC의 활용 66

3.3 HTCondor 기본 개념 67

__3.3.1 HTCondor의 역사 67

__3.3.2 HTCondor 동작 방식 및 용어 69

3.4 HTCondor 실행 과정 예제 71

__3.4.1 HTCondor 작업 준비 71

__3.4.2 작업명세서 파일 준비 73

__3.4.3 작업 제출과 모니터링 76

연습문제 79

 

PART 2 가상머신 기반 HTC 81

CHAPTER 4 VirtualBox 기반 HTCondor 클러스터 생성 83

4.1 클러스터 구성 개요 83

4.2 VirtualBox 설치 84

4.3 CentOS 가상머신 생성 88

__4.3.1 CentOS 다운로드하기 88

__4.3.2 가상머신 만들기 90

__4.3.3 가상머신에 CentOS 설치하기 95

4.4 CentOS 가상머신 네트워크 설정 102

__4.4.1 네트워크 설정 103

__4.4.2 SSH 접속 110

4.5 가상머신 복사하고 접속하기 114

__4.5.1 가상머신 복사 114

__4.5.2 복제한 가상머신에 기본 환경설정 118

__4.5.3 가상머신 간 네트워크 통신 확인 128

연습문제 133

 

CHAPTER 5 HTCondor 클러스터 구축 135

5.1 HTCondor Master 노드 구성하기 136

__5.1.1 Master 노드에 HTCondor 설치를 위한 기본설정 136

__5.1.2 HTCondor 설치하기 138

5.2 HTCondor 워커 노드 구성하기 144

__5.2.1 워커 노드에 HTCondor 설치를 위한 기본설정 144

__5.2.2 워커 노드에 HTCondor 설치하기 145

연습문제 150

 

CHAPTER 6 HTCondor 클러스터를 활용한 작업 처리 151

6.1 작업을 기술하는 작업명세서 151

6.2 간단한 작업 작성해보기 152

6.3 인자를 갖는 작업 156

6.4 여러 작업을 동시에 실행하기 158

6.5 디렉터리 분리로 여러 작업 동시실행 162

6.6 파일 이름 분리로 여러 작업 동시실행 166

6.7 $(Process) 이용한 디렉터리 분리 168

6.8 요구사항을 갖는 작업 170

연습문제 176

 

CHAPTER 7 자동화 기반 HTCondor 클러스터 구축 177

7.1 자동화 도구가 필요한 이유 177

7.2 Vagrant로 노드 구성하기 178

__7.2.1 Vagrant 설치를 위한 기본설정 178

__7.2.2 Vagrantfile 수정 180

__7.2.3 Vagrant를 이용한 가상머신 생성 184

7.3 Ansible로 HTCondor 설정하기 188

__7.3.1 Ansible 설치 및 기본설정 189

__7.3.2 Ansible 호스트 통신 확인 190

__7.3.3 Ansible 플레이북 작성 192

연습문제 196

 

PART 3 아마존 AWS 클라우드 197

CHAPTER 8 아마존 AWS를 활용한 가상머신 생성과 접속 199

8.1 아마존 AWS 계정 만들기 199

8.2 아마존 AWS 가상머신 만들기 206

8.3 가상머신에 접속하기 212

연습문제 216

 

CHAPTER 9 AWS 동적 자원 관리 프로그래밍 218

9.1 동적 자원 관리 프로그래밍 구조 218

9.2 EC2 HTCondor 마스터 노드 생성 221

9.3 HTCondor 슬레이브 이미지 만들기 227

9.4 AWS 자원 동적 관리 툴 233

__9.4.1 List Instances 234

__9.4.2 Start Instances 235

__9.4.3 AIM 이미지로 인스턴스 생성 238

__9.4.4 인스턴스 중지 241

__9.4.5 인스턴스 재시작 244

__9.4.6 가용 리전 및 존 245

9.5 동적 관리 툴 만들기 247

연습문제 253

 

PART 4 가상화 기술 255

CHAPTER 10 가상화 기술 개념 257

10.1 가상화의 기본 개념 257

__10.1.1 가상화의 정의 258

__10.1.2 가상화 대상 시스템 258

__10.1.3 프로세스 가상머신 260

10.2 하이퍼바이저 261

__10.2.1 타입 1 하이퍼바이저 261

__10.2.2 타입 2 하이퍼바이저 263

__10.2.3 대표적인 하이퍼바이저 264

__10.2.4 하이퍼바이저의 라이프 사이클 266

10.3 가상화 267

__10.3.1 가상화 타입 269

__10.3.2 전가상화 271

__10.3.3 반가상화 274

__10.3.4 하이브리드 가상화 276

__10.3.5 OS 레벨 가상화 277

__10.3.6 가상화 타입 요약 278

연습문제 279

 

CHAPTER 11 CPU, 메모리, I/O 가상화 280

11.1 CPU 가상화 280

__11.1.1 에뮬레이션 281

__11.1.2 특권 모드와 비특권 모드 283

__11.1.3 트랩 285

__11.1.4 CPU 가상화 구현 287

11.2 메모리 가상화 294

__11.2.1 가상메모리 294

__11.2.2 페이지 테이블 298

__11.2.3 가상화 환경에서 메모리 변환 301

__11.2.4 TLB 에뮬레이션 방식 메모리 가상화 303

__11.2.5 섀도 페이지 테이블 방식 메모리 가상화 307

__11.2.6 직접 페이지 테이블 접근 방식의 메모리 가상화 310

__11.2.7 하드웨어 지원 페이징 312

11.3 I/O 가상화 317

__11.3.1 I/O 장치 에뮬레이션 318

__11.3.2 I/O 반가상화 320

__11.3.3 직접 접근 I/O 325

__11.3.4 IOMMU 328

__11.3.5 SR-IOV 332

연습문제 333

 

PART 5 가상화 기술 활용 335

CHAPTER 12 가상머신 라이브 마이그레이션 337

12.1 가상머신 마이그레이션 기술 337

__12.1.1 프리카피 방식 338

__12.1.2 포스트카피 방식 339

__12.1.3 하이브리드 방식 340

12.2 가상머신 생성 및 실습 환경 구성 341

__12.2.1 가상머신 생성 341

__12.2.2 가상화 패키지 설치 및 설정 343

__12.2.3 가상머신 복제 345

__12.2.4 가상머신 환경설정 347

12.3 KVM 가상머신 생성 및 라이브 마이그레이션 351

__12.3.1 가상머신 이미지 저장소 생성 352

__12.3.2 CirrOS 가상머신 생성 352

__12.3.3 cirros 가상머신에 작업파일 생성 354

__12.3.4 KVM 라이브 마이그레이션 356

연습문제 358

 

CHAPTER 13 가상머신으로 오픈스택 구축하기 360

13.1 오픈스택 개요 및 구조 360

__13.1.1 오픈스택 개요 360

__13.1.2 오픈스택 구조 362

13.2 오픈스택 구축을 위한 실습 환경 364

13.3 오픈스택 설치 370

13.4 오픈스택 접속 및 가상머신 생성 373

__13.4.1 오픈스택 대시보드 접근 373

__13.4.2 오픈스택 커맨드 라인 툴을 이용한 접근 382

연습문제 388

 

PART 6 컨테이너 기술 391

CHAPTER 14 컨테이너 기본 개념 393

14.1 컨테이너 기본 개념과 기술의 진보 393

__14.1.1 기본 개념 393

__14.1.2 컨테이너 기술의 역사 395

14.2 컨테이너와 가상머신 399

연습문제 402

 

CHAPTER 15 리눅스 컨테이너 403

15.1 리눅스 컨테이너 LXC 403

__15.1.1 리눅스 컨테이너 아키텍처 403

__15.1.2 마운트 네임스페이스 406

__15.1.3 UTS 네임스페이스 409

__15.1.4 PID 네임스페이스 411

__15.1.5 IPC 네임스페이스 415

__15.1.6 네트워크 네임스페이스 416

__15.1.7 사용자 네임스페이스 442

15.2 LXC 컨테이너 452

__15.2.1 LXC 설치하기 452

__15.2.2 LXC 컨테이너 생성 456

__15.2.3 LXC 컨테이너 네트워크 설정 및 접속 459

__15.2.4 LXC 컨테이너 내부 파일 463

__15.2.5 다운로드 템플릿을 이용한 컨테이너 생성 466

__15.2.6 커스텀 컨테이너 생성 469

__15.2.7 LXC 컨테이너 종료, 삭제하기 475

연습문제 477

 

CHAPTER 16 도커 479

16.1 도커 개요 479

__16.1.1 기본 개념 479

__16.1.2 도커 구동 방식 481

__16.1.3 도커 아키텍처 483

__16.1.4 도커 기반 기술 487

16.2 도커 실습 490

__16.2.1 도커 설치하기 490

__16.2.2 이미지, 프로세스, 접속, 모니터링 493

16.3 도커파일, 스웜, 스택 510

__16.3.1 실습 환경 구성 510

__16.3.2 도커파일을 통한 컨테이너 생성 511

__16.3.3 도커 이미지 공유하기 518

__16.3.4 도커 서비스 522

16.4 도커 스웜 529

__16.4.1 도커 오케스트레이션 툴 529

__16.4.2 도커 스웜을 통한 서비스 구축 531

__16.4.3 도커 스택 538

연습문제 547

 

CHAPTER 17 쿠버네티스 549

17.1 쿠버네티스 등장 배경 549

17.2 쿠버네티스 구조 552

17.3 실습환경 구성 555

17.4 쿠버네티스 클러스터 구성 564

17.5 쿠버네티스에 서비스 올리기 571

연습문제 583

 

PART 7 클라우드 활용 585

CHAPTER 18 도커와 젠킨스를 이용한 CI/CD 파이프라인 구성 587

18.1 CI/CD 기본 개념 587

__18.1.1 전통적인 소프트웨어개발 프로세스 587

__18.1.2 지속적인 통합: CI 589

__18.1.3 지속적인 제공과 배포: CD 590

18.2 CI/CD 파이프라인 실습환경 구성 592

__18.2.1 CI/CD 파이프라인 구성 개념 592

__18.2.2 AWS Lightsail 인스턴스 생성 및 설정 593

__18.2.3 도커 설치 596

__18.2.4 젠킨스 설치 및 설정 598

18.3 CI 구성: GitHub, 젠킨스 연동 설정 605

__18.3.1 GitHub example 리포지터리 생성 605

__18.3.2 develop 아이템 생성 및 설정 607

__18.3.3 develop 브랜치에 코드 푸시 610

__18.3.4 젠킨스 main 아이템 설정 614

__18.3.5 젠킨스 플러그인 추가 설치 및 설정 617

18.4 CD 구성: 도커 허브와 젠킨스 연동 설정 620

__18.4.1 도커 허브 웹훅 설정 621

__18.4.2 dockerhub 아이템 설정 621

__18.4.3 배포 인스턴스 설정 및 테스트 623

연습문제 626

 

CHAPTER 19 클라우드 기술의 데이터 센터 활용 627

19.1 데이터 센터의 구조 627

__19.1.1 데이터 센터의 내부 구조 627

__19.1.2 확장가능한 데이터 센터 630

19.2 데이터 센터의 당면 과제 632

__19.2.1 자동화와 원격 관리 632

__19.2.2 데이터 센터의 안정성 확보 634

__19.2.3 에너지 효율적인 데이터 센터 636

19.3 효율적인 IT 인프라 639

__19.3.1 컴퓨팅 장비 639

__19.3.2 스토리지 장비 641

__19.3.3 네트워크 장비 645

19.4 데이터 센터에 활용되는 가상화 기술 648

__19.4.1 서버 가상화 648

__19.4.2 스토리지 가상화 650

__19.4.3 네트워크 가상화 654

19.5 클라우드 데이터 센터의 연결 기술 656

__19.5.1 인터네트워크 657

__19.5.2 데이터 센터 접근을 위한 다양한 프로토콜 659

__19.5.3 데이터의 전송과 패킷 662

연습문제 667

 

찾아보기 669

 

제이펍 소식 더 보기(제이펍의 소통 채널에서 더욱 다양한 소식을 확인하세요!)

네이버 책 / 포스트 / 유튜브 / 인스타그램 / 트위터 / 페이스북