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

HTC 개념부터 가상화, 컨테이너, CI/CD, AWS 프로그래밍까지
$47.09
SKU
9791192469256
+ Wish
[Free shipping over $100]

Standard Shipping estimated by Fri 12/6 - Thu 12/12 (주문일로부 10-14 영업일)

Express Shipping estimated by Tue 12/3 - Thu 12/5 (주문일로부 7-9 영업일)

* 안내되는 배송 완료 예상일은 유통사/배송사의 상황에 따라 예고 없이 변동될 수 있습니다.
Publication Date 2022/08/26
Pages/Weight/Size 188*245*33mm
ISBN 9791192469256
Categories IT 모바일 > 네트워크/해킹/보안
Description
클라우드 컴퓨팅의 이론과 실습을 한 권으로 끝내자

클라우드 컴퓨팅 기술이 발달하면서 많은 기업이 IT 생태계 기반을 클라우드 환경으로 전환하고, 클라우드 기반의 프라이빗 데이터 센터를 구축하고 있다. 이 책은 클라우드 컴퓨팅을 이해하기 위해 꼭 알아야 할 가상머신, 가상화, 컨테이너 같은 기반 기술을 살펴보고, 클라우드 컴퓨팅을 활용한 CI/CD와 데이터 센터의 응용도 함께 다룬다. 학습 내용은 실습으로 확인할 수 있고, 모든 실습은 버추얼박스를 이용하여 컴퓨터 한 대로 진행할 수 있도록 했다. 가상머신과 도커, 쿠버네티스와 같은 컨테이너에 대한 실습 예제뿐만 아니라 AWS에서 제공하는 API를 활용하여 가상머신을 동적으로 컨트롤하는 방법까지 포함한다.
Contents
추천사 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
Author
노서영
충북대학교 소프트웨어학부 교수로 재직 중이다. LG전자 책임연구원, 한국과학기술정보연구원 국가슈퍼컴퓨팅본부 대용량데이터허브센터 센터장, 미국 페르미국립가속기연구소 방문연구원을 지냈으며, 공저로는 『코드로 알아보는 ARM 리눅스 커널』(제이펍, 2012)이 있다.
충북대학교 소프트웨어학부 교수로 재직 중이다. LG전자 책임연구원, 한국과학기술정보연구원 국가슈퍼컴퓨팅본부 대용량데이터허브센터 센터장, 미국 페르미국립가속기연구소 방문연구원을 지냈으며, 공저로는 『코드로 알아보는 ARM 리눅스 커널』(제이펍, 2012)이 있다.