AWS로 원하는 서비스를 구현하는
선물 같은 12가지 패턴 사례집
AWS는 클라우드의 사실상 업계 표준이다. AWS 관리자라면 EC2, S3 같은 개별 서비스 기능에 대해서는 잘 알 것이다. 그렇다고 각 서비스를 조합하여 특정 요구 사항을 만족하는 다양한 시스템을 만드는 능력을 갖춘 것은 아니다. 그러한 능력은 거시적으로 서비스를 통찰해야만 갖출 수 있다.
이 책은 다양한 사이트를 구축한 경험을 토대로 정립한 12가지 설계 패턴을 담고 있다. 저자는 AWS 초창기부터 AWS를 적용하여 고객의 요구 사항을 만족하는 사이트를 구축해왔다. 인터넷에서는 찾을 수 없는, 실전 경험을 풀어놓은 AWS 비급서라 불러도 손색이 없다. 구축한 시스템의 문제를 해결하는 방안도 함께 알아본다.
★ AWS가 주는 모든 이점을 제대로 살려라!
AWS를 사용하는 핵심 이점은 성능, 안정성, 신속성, 저비용입니다. 그런데 AWS를 사용한다고 무조건 이와 같은 혜택을 누리는 것은 아닙니다. 오히려 AWS를 사용하다가 요금 폭탄을 맞거나 원하는 성능이 나오지 않아 고전하는 사례도 있습니다.
아무리 좋은 도구도 사용법을 모르면 무용지물입니다. AWS에서 제공하는 서비스를 효율적으로 조합해야만 원하는 결과를 얻을 수 있습니다. 이 책에서 여러분의 시스템에 딱 맞는 AWS 구축 사례를 찾아 활용해보세요! 반드시 AWS가 주는 모든 이점을 누릴 수 있을 겁니다!
★이 책의 특징 및 대상독자
이 책은 AWS 서비스를 조합하여 특정 요구를 만족하는 시스템을 만드는 설계 패턴을 설명합니다. 'AWS 서비스를 시스템에 적용하여 어떻게 원하는 기능을 수행하는가'라는 관점에 중점을 두어 설명하기 때문에, 서비스별 파라미터 설정 절차를 과감히 생략했습니다.
따라서 이 책을 이해하려면 기본적인 AWS 사용법을 알아야 합니다. AWS 사용법을 잘 모르는 독자라면 『아마존 웹 서비스 인 액션』 등 AWS 입문서를 공부한 후에 이 책을 접하시길 권합니다. 기본적인 AWS 사용법을 아는 독자에게는 AWS로 업무 시스템을 설계할 때 최고의 지침서가 될 것입니다.
★ 이 책에서 알려주는 12가지 설계 패턴
_01. 이벤트 사이트
_02. 기업 웹사이트
_03. 성능을 중시한 인트라 웹
_04. 가용성을 중시한 인트라 웹
_05. 백업
_06. 파일 서버
_07. 구조화된 데이터 분석
_08. 비구조화된 데이터 분석
_09. 서버리스 인프라
_10. 서버 애플리케이션 쾌속 개발
_11. 모바일 앱 쾌속 개발
_12. 온프레미스 환경과 연계
★이 책의 구성
이 책은 AWS를 사용하는 유용한 설계 패턴 12가지를 총 6개 주제로 나누어 설명합니다.
_1부 웹 시스템
업무 시스템에서 가장 많이 사용하는 웹, 애플리케이션, 데이터베이스로 구성된 3티어 시스
템을 AWS에서 어떻게 설계하는지 설명합니다. 이 장의 전반부에서는 입문자 수준의 비교
적 쉬운 설계 패턴을, 후반부에서는 성능 및 가용성에 대한 요구 사항이 까다로운 설계 패턴
을 설명합니다. AWS에서 시스템을 설계하는 엔지니어라면 알아두어야 할 내용입니다.
_2부 스토리지 시스템
백업, 파일 서버의 목적별 설계 패턴을 설명합니다. AWS에서 백업 및 파일 서버를 설계할
때 참고하세요.
_3부 데이터 분석 시스템
여기서부터는 비즈니스 과제를 안고 있는 가상 기업이 문제 해결을 위해 AWS로 시스템을
구축한다는 가상 시나리오에 따라 설계 패턴을 설명합니다. 신규 사업에서 AWS를 어떤 용
도로 사용할지에 대한 해답이 될 겁니다.
_4부 클라우드 네이티브
클라우드 장점을 최대한 살리려면 온프레미스에는 없는 AWS 독자적인 서비스를 사용한
클라우드 네이티브 시스템 아키텍처를 사용하는 것이 최선입니다. 아키텍트, 애플리
케이션 설계 엔지니어가 알아야 하는 설계 패턴을 소개합니다.
_5부 애플리케이션 쾌속 개발
5부는 애플리케이션 개발에 관련된 엔지니어를 대상으로 합니다. AWS는 클라우드
에서만 가능한 쾌속 개발 방법을 제공하고 있습니다. AWS에서 개발 생산성을 높이는 개발
환경 설계 패턴을 소개합니다.
_6부 하이브리드 클라우드
많은 기업이 클라우드와 더불어 온프레미스도 함께 사용합니다. 따라서 시스템 설계 엔지니어라면 클라우드와 온프레미스와의 연계 패턴을 알아야 합니다.
[관련 서적]
『아마존 웹 서비스 인 액션』(ISBN : 9788968483585)
『클라우드 시스템을 관리하는 기술』(ISBN : 9788968482618)
『처음 시작하는 AWS 람다』(ISBN : 9788968488382)
주식회사 아쿠아 시스템즈 집행 임원 기술 부장
AWS 클라우드 서비스에 대한 세미나, 강연, 저술 활동을 한다. 소속사는 데이터베이스에 대한 컨설팅과 패키지 제품을 제공하고 있다. 일찍부터 클라우드에 집중해 2012년부터 AWS 기술 파트너로서 일하고 있다.
★ Part 1 웹 시스템
[패턴 1] 이벤트 사이트
__1.1 구성을 AWS \'심플 아이콘\'으로 그려보자
__1.2 리전에 따른 응답 속도와 비용 차이
__1.3 EC2 인스턴스 작성하기
__1.4 네트워크 및 셧다운 동작 설정 주의사항
__1.5 보안 그룹 설정으로 통신 필터링하기
__1.6 고정 IP와 호스트명으로 접속하게 하기
__1.7 VPC 설정으로 인터넷 접속 설정하기
__1.8 OS 환경을 웹 서버로 설정하기
__1.9 운영 중에 리소스를 유연하게 변경하기
__1.10 이벤트 사이트를 종료하면서 할 일
[패턴 2] 기업 웹사이트
__2.1 ELB를 이용하여 웹 서버 다중화하기
__2.2 ELB 설정 시 유의사항
__2.3 RDS를 이용하여 DB 서버 다중화하기
__2.4 RDS 사용 시 유의사항
__2.5 정적 콘텐츠를 낮은 비용으로 배포하기
__2.6 기업 웹사이트에 적합한 인스턴스 설계하기
[패턴 3] 성능을 중시하는 인트라 웹
__3.1 인메모리 캐시와 고속 RDB 활용
__3.2 애플리케이션 서버의 스케일 아웃 자동화하기
__3.3 오토스케일링 그룹 설정 시 세 가지 주의점
__3.4 자동 배포로 오토스케일링을 간편하게 적용하기
__3.5 마스터 데이터나 세션 정보 캐시하기
__3.6 읽기/쓰기가 빠른 RDS for Aurora
__3.7 낮은 부하로 읽기 전용 복제본 추가 지원하기
[패턴 4] 가용성을 중시한 인트라 웹
__4.1 장애 발생을 전제로 설계하기
__4.2 AZ 다중화가 기본이다
__4.3 SLA로 추산한 가용성 99.90%
__4.4 EC2 인스턴스 자동 복구 방법
__4.5 발생 빈도가 적은 대규모 장애에 대응하기
__4.6 백업 사이트로 자동 전환하기
__4.7 데이터 백업으로 다중화 비용 아끼기
★ Part 2 스토리지 시스템
[패턴 5] 백업
__5.1 온프레미스 환경의 데이터 백업하기
__5.2 서드파티 제품 사용하기
__5.3 백업 파일 장기 보관하기
__5.4 중요 데이터 백업에 전용선 사용하기
__5.5 AWS에 구축한 시스템 백업하기
[패턴 6] 파일 서버
__6.1 간편하고 저렴하지만 제약 많은 S3
__6.2 EC2로 NFS 서버 구축하기
__6.3 EFS 서비스로 간단히 구축하기
__6.4 스토리지 게이트웨이로 계층형 스토리지 구축하기
__6.5 전용선으로 안정성과 보안을 확보하기
__6.6 워크독스에서 파일 공유하기
★ Part 3 데이터 분석 시스템
[패턴 7] 구조화된 데이터 분석
__7.1 브랜드 출시를 위한 데이터 분석
__7.2 레드시프트 중심의 데이터 분석 시스템 설계하기
__7.3 DWH와 BI의 기반이 되는 레드시프트
__7.4 플라이데이터를 사용한 기존 시스템과 간단한 데이터 연계
__7.5 외부 데이터를 가져오는 두 가지 방법
__7.6 타블로로 데이터 분석하기
__7.7 기존 시스템이 온프레미스에 있는 경우
[패턴 8] 비구조화된 데이터 분석
__8.1 구조화되지 않은 데이터 다루기
__8.2 플루언트디를 사용한 효율적인 로그 수집
__8.3 아마존 EMR로 로그 데이터 정형하기
__8.4 스텝 기능으로 부팅 시 스크립트 자동 실행하기
__8.5 로그가 늘어나면 아마존 EMR 튜닝하기
__8.6 타블로 서버에서 분석 결과를 전사적으로 공유하기
★ Part 4 클라우드 네이티브
[패턴 9] 서버리스 인프라
__9.1 서버리스 포털 사이트 구축하기
__9.2 람다와 API 게이트웨이로 웹 서비스 만들기
__9.3 람다 함수의 작성과 실행
__9.4 람다 함수 사용 시 유의사항
__9.5 API 게이트웨이와 람다의 요금 체계
__9.6 AMI로 즉시 미들웨어 구축하기
★ Part 5 애플리케이션 쾌속 개발
[패턴 10] 서버 애플리케이션 쾌속 개발
__10.1 코드파이프라인으로 빌드, 테스트, 배포 자동화하기
__10.2 프로덕션 환경에 컨테이너를 이용하여 효율화하기
__10.3 GUI를 통해 빌드 및 배포 워크플로 만들기
__10.4 AWS가 제공하는 컨테이너 관리 서비스
__10.5 무중단 신 버전 배포
__10.6 예약 인스턴스로 추가적인 비용 절감
[패턴 11] 모바일 앱 쾌속 개발
__11.1 모바일 앱 개발에 집중하기
__11.2 SDK, 테스트 서비스, 구성 관리 서비스 활용하기
__11.3 모바일 앱으로 직접 AWS 서비스에 접속하기
__11.4 단말기를 구입할 필요가 없는 단말기 테스트
__11.5 클라우드포메이션으로 빠르게 환경 구축하기
★ Part 6 하이브리드 클라우드
[패턴 12] 온프레미스 환경과 연계하기
__12.1 온프레미스와의 연계를 전제로 한 인프라 설계
__12.2 다이렉트 커넥트 구조를 알자
__12.3 연동할 VPC 수와 다중화에 따른 회선 결정
__12.4 온프레미스와 같은 환경을 작성하여 BCP 대응하기
__12.5 무중단 데이터베이스 동기화하기
__12.6 피크 트래픽을 AWS로 오프로드하기
__12.7 모니터링을 고려해 설계하기
__12.8 관리형 서비스로 공통 기능 API 제공하기