클라우드는 매우 쉽게 사용할 수 있지만, 적절하게 리소스를 활용하면서 안정적으로 시스템을 유지하고 운용하는 것은 어렵다. 이 책은 AWS를 중심으로 실전적인 클라우드 활용 노하우를 담아냈다. 클라우드 제공 서비스를 선정하는 포인트와 비기능 요건 활용법, 다중 계정 아키텍처 구축 및 시스템 유지보수 방법, 클라우드 시스템을 평가하는 다양한 방법을 설명한다. 또한, 배운 내용을 가상의 시스템 요건에 적용해보고, 직접 AWS 계정 가입부터 다중 계정 아키텍처를 구축한다. 마지막으로, 클라우드의 장점을 살린 성공적인 개발 사례를 소개한다. 초기 검토 단계부터 운용 및 유지보수까지 망라한 이 책이 클라우드 도입을 고려하거나 클라우드를 활용한 시스템 개발을 성공시키고 싶은 여러분을 성공으로 이끌어줄 것이다.
Contents
옮긴이 머리말 ix
베타리더 후기 xi
추천 서문 xii
이 책에 대하여 xiv
감사의 글 xix
CHAPTER 1 클라우드 스탠다드 시대의 시스템 개발 1
1.1 시스템 개발에서 클라우드의 등장 3
__1.1.1 클라우드에 관한 사전 지식 3
__1.1.2 클라우드의 특징 6
__1.1.3 시간에 따른 클라우드 서비스의 변화 7
1.2 클라우드를 이용한 시스템 개발 8
__1.2.1 개발 현장의 상황 8
__1.2.2 클라우드의 등장이 IT 시장에 미친 영향 11
1.3 시스템 개발 체제 정비 방법 15
__1.3.1 시스템 개발 방법 선택 15
__1.3.2 개발팀 분리에 관한 사고방식 19
CHAPTER 2 아키텍처링에 관한 사고방식 23
2.1 아키텍처링의 필요성 25
__2.1.1 아키텍처 패턴 25
__2.1.2 아키텍처링에서 알 수 있는 것 29
2.2 클라우드 아키텍처 검토 31
__2.2.1 IaaS Only 31
__2.2.2 매니지드 서비스 활용 31
2.3 클라우드 아키텍처 참고 자료 33
__2.3.1 AWS Well-Architected Framework 33
__2.3.2 AWS 백서 및 안내서 34
__2.3.3 AWS Trusted Advisor 활용 35
CHAPTER 3 클라우드 아키텍처링과 서비스 선정 39
3.1 대상 서비스에 적합한 아키텍처링 41
__3.1.1 엔터프라이즈 계열 시스템(클라우드) 41
__3.1.2 웹 기반 모바일 애플리케이션 42
3.2 시스템 구축 시의 요건 43
__3.2.1 클라우드 네이티브 요건 43
__3.2.2 클라우드로의 마이그레이션 패턴 46
3.3 클라우드에서만 가능한 구성 52
__3.3.1 Well-Architected Framework 활용 52
__3.3.2 Auto Scaling 사용 여부 54
__3.3.3 매니지드 서비스 사용 여부 56
__3.3.4 VPC 연결 방법 57
__3.3.5 온프레미스와의 연결 59
__3.3.6 멀티 리전, 멀티 클라우드가 필요한가? 64
__3.3.7 업데이트 방식 검토 65
__3.3.8 AWS Marketplace 활용 67
3.4 기능 요건과 비기능 요건 69
__3.4.1 기능 요건 69
__3.4.2 비기능 요건 69
3.5 구현 및 운용 계획 시 유의점 71
__3.5.1 클라우드에서 시스템을 만드는 이유를 명확히 한다 71
__3.5.2 클라우드 이용 방침을 만든다 72
__3.5.3 AWS 서비스 업데이트 시 대응 방침 74
3.6 시스템의 대략적인 예상 비용 설정 76
__3.6.1 AWS Pricing Calculator 사용 방법 76
__3.6.2 더욱 정확한 예상 비용 설정 방법 81
CHAPTER 4 비기능 요건 노하우 83
4.1 계정 관리 85
__4.1.1 ‘계정’은 무엇을 가리키는가? 85
__4.1.2 AWS 계정 관리 86
__4.1.3 루트 사용자 관리 89
__4.1.4 IAM 사용자와 IAM 역할 관리 92
__4.1.5 예방 제어와 탐지 제어 97
4.2 가용성과 DR 100
__4.2.1 가용성 확보 100
__4.2.2 백업 전략 102
__4.2.3 DR 확보 104
4.3 클라우드 시스템에서의 성능 확보 110
__4.3.1 인스턴스 유형 선택 110
__4.3.2 스케일 업과 스케일 아웃 113
4.4 관측 가능성 확보 116
__4.4.1 시스템을 감시하는 목적은 무엇인가? 116
__4.4.2 로그와 트레이스 수집 121
__4.4.3 온프레미스에서 클라우드로의 모니터링 마이그레이션 125
__4.4.4 경고 취급 127
CHAPTER 5 클라우드 아키텍처링 포인트 131
5.1 시스템 요건 133
__5.1.1 설정한 가공의 요건 133
5.2 구성 검토 포인트 134
__5.2.1 다중 계정 아키텍처 134
__5.2.2 RTO/RPO에 맞춘 백업/DR 전략 135
__5.2.3 Auto Scaling 사용 여부 138
__5.2.4 비용 관리/절감 전략 139
__5.2.5 로그 취급 144
5.3 구축 시 검토 포인트 145
__5.3.1 어떻게 구축할 것인가? 145
__5.3.2 어디부터 만들 것인가? 146
CHAPTER 6 다중 계정 아키텍처 구축 151
6.1 실습 구성 153
__6.1.1 시스템 개요 153
__6.1.2 시스템 구성도 155
6.2 AWS 계정 준비 161
__6.2.1 관리 계정 설정 161
__6.2.2 AWS Control Tower를 이용한 다중 계정 환경 준비 172
__6.2.3 사용자에게 MFA 디바이스 이용을 강제한다 177
__6.2.4 사용자 등록 179
__6.2.5 AWS Control Tower를 이용한 멤버 계정 설정 194
__6.2.6 AWS IAM Identity Center 관리 권한을 로그인용 계정에 위임하기 197
__6.2.7 예산 설정 199
__6.2.8 AWS Security Hub 활성화 206
__6.2.9 Amazon GuardDuty 활성화 211
__6.2.10 멤버 계정의 Security Hub와 GuardDuty 활성화 214
CHAPTER 7 클라우드 시스템을 안정적으로 지속시키는 방법 217
7.1 클라우드와 온프레미스의 공통점 219
__7.1.1 물리 기기의 고장 219
7.2 클라우드만의 특징 221
__7.2.1 서비스 사양 변경 221
__7.2.2 장애 대응: 사고가 발생했다면 어떻게 하는가? 223
__7.2.3 비용 모니터링의 중요성 225
__7.2.4 AWS Support 활용 228
CHAPTER 8 클라우드 시스템을 올바르게 평가하는 관점 233
8.1 비용 관점 235
__8.1.1 인프라스트럭처 비용 관점 235
__8.1.2 인적 비용 관점 236
__8.1.3 시간적 비용 관점 238
8.2 보안 관점 239
8.3 운용 관점 241
8.4 비즈니스와 조직 관점 242
__8.4.1 비즈니스 관점 242
__8.4.2 조직 관점 243
CHAPTER 9 클라우드의 장점을 살린 개발 사례 245
9.1 인터넷 공개 웹사이트의 호스팅 247
__9.1.1 시스템 개요 247
__9.1.2 클라우드의 장점 활용 247
9.2 사내 시스템으로서의 데이터 분석 인프라스트럭처 251
__9.2.1 시스템 개요 251
__9.2.2 클라우드의 장점 활용 251
9.3 공개 사례: 주식회사 발 연구소 254
__9.3.1 시스템 개요 254
__9.3.2 클라우드의 장점 활용 254
9.4 공개 사례: 홋카이도 TV 방송 주식회사 256
__9.4.1 시스템 개요 256
__9.4.2 클라우드의 장점 활용 256
찾아보기 259
Author
다카오카 스스무,사사키 도루,김모세
NTT 데이터 첨단기술 주식회사 집행위원. 제일생명정보시스템, 레코초쿠, DeNA 등에서 시스템을 개발 및 운영했으며, 마이크로소프트의 에반젤리스트, AWS의 테크 에반젤리스트로 활동했다. 리쿠르트 테크놀로지스의 기술 펠로를 맡으며 대규모 인프라의 SRE 조직화를 수행했다.
NTT 데이터 첨단기술 주식회사 집행위원. 제일생명정보시스템, 레코초쿠, DeNA 등에서 시스템을 개발 및 운영했으며, 마이크로소프트의 에반젤리스트, AWS의 테크 에반젤리스트로 활동했다. 리쿠르트 테크놀로지스의 기술 펠로를 맡으며 대규모 인프라의 SRE 조직화를 수행했다.