데브옵스와 AWS [자동화를 통한 빠르고 효율적인 구현]
- 원서명Implementing DevOps on AWS: Bring the best out of DevOps and build, display, and maintain applications on AWS (ISBN 9781786460141)
- 지은이베셀린 칸세브(Veselin Kantsev)
- 옮긴이최인영, 장문기
- ISBN : 9791161750422
- 30,000원
- 2017년 08월 28일 펴냄
- 페이퍼백 | 328쪽 | 188*235mm
- 시리즈 : acorn+PACKT
책 소개
소스 코드 파일은 여기에서 내려 받으실 수 있습니다.
본문에 쓰인 컬러 이미지는 여기에서 내려 받으세요.
요약
널리 사용되는 데브옵스의 자동화 방법을 사용해 개발에 소요되는 시간을 대폭 줄이고, AWS에서 소프트웨어 배포의 안정성을 높일 수 있도록 도와준다.
먼저, IaC(Infrastructure as Code) 개념에 익숙해지면 AWS 인프라의 설계와 배포, 유지 관리 방법을 배우게 된다. 또한 오픈소스 도구나 AWS에서 제공하는 도구와 서비스를 사용해서 AWS에 지속적인 통합(CI) 플랫폼을 설계하고 배포하는 방법을 살펴본다.
아티팩트의 생성과 테스트, 검증 작업을 수동 조작 없이 수행한 후 AWS 인프라에 배포하는 자동화된 방법을 배우게 된다. 그런 다음 구성 관리(Configuration Management) 구현을 더욱 쉽고 효율적으로 수행할 수 있는 방법들을 습득하게 된다.
이 책의 후반부에는 AWS 환경을 최적화하고 보안성을 높이기 위한 몇 가지 트릭과 팁을 소개한다. 이 책을 다 읽고 나면 AWS 상에서 데브옵스를 구현하는 기술을 마스터할 수 있을 것이다.
추천의 글
AWS의 우수한 서비스 경쟁력을 활용하고자 도입을 검토하고 지난해부터 구축을 시작했습니다. 국내외의 많은 서적과 교육을 통해서 지식을 확보하고 기본적인 서비스 운영을 위한 구축을 빠르게 완료할 수 있었습니다. 하지만 개발과 운영이 진행될수록 결국 On-promise에서 고민하였던 개발 환경과 운영 관리에 대한 문제에 봉착합니다.
AWS의 본래의 목적에 맞게 기본 활용까지는 매우 쉽고 빠르게 적용했지만, 기업용으로 활용하고 더 나아가서는 생산성 경쟁력까지 유지하기 위해서는 데브옵스가 매우 유용합니다.
본 책은 이러한 환경에서 매우 유용한 해결 방법일 것 같습니다. 데브옵스의 개념에 대한 설명과 인스턴스의 구성 관리는 반드시 필요한 부분이라 빠르게 적용이 필요했으며, 지속적인 배포 구성을 위한 적용 예시는 이 한 권의 책으로도 구성이 가능할 것 같습니다.
마지막으로 모니터링, 비용 최적화와 보안까지 제시함으로써 운영에 필요에 모든 지식을 담고 있는 것으로 보입니다.
안정적인 운영과 지속적인 비용 절감이 요구되는 환경이라면, 분명 많은 도움이 될 것입니다. 생산성을 고민하는 전문가와 기업에게 적극 추천하고 싶습니다.
정좌연 정보관리기술사, LG CNS 솔루션아키텍트/보안컨설턴트
데브옵스를 실무에서 적용해 개발하고자 할 때, 사용자의 필요에서 출발해서 관련 기술들을 균형 있게 제시하고 있습니다. 어떤 면에서는 저의 IT 커리어 패스를 고민하고, 한 단계 성장할 수 있도록 방향을 제시한 책이라고 여겨졌습니다.
실제 사용되는 패키지의 활용을 기술한 책이고, 실무에서 꼭 필요한 내용만 정리했기 때문에 실무에 막히거나 도움이 필요할 경우 참조하면 많은 도움을 받을 수 있을 거라는 생각이 들었습니다.
데브옵스 도입을 고려하고 있거나, 적용하는 중에 고민이 있으신 분들에게 꼭 추천하고 싶습니다.
윤남영 팀장, SK플래닛, 버티컬개발팀
데브옵스는 이제 개념적인 용어에서 구체적이고 현실적인 실무로 다가왔습니다. 자신의 업무가 데브옵스인 엔지니어가 늘어나고 있다는 것이죠. 예측하기 어려운 고객 사용량에 확장성을 가지고 안정적이면서도 개발의 빠른 속도를 유지할 수 있어야 하는 스타트업 기업에서는 클라우드 환경에서의 개발과 운영은 더이상 분리해서 바라볼 수 없습니다.
몇 년 전까지만 해도 서로 거리감이 존재했던 개발과 운영이 한 곳에서 만나고 이제 그 일을 새로 맡은 사람이 자신이라면, 무엇부터 해야 할까요? 이런 분께 이 책을 소개하고 싶습니다.
이 책에서는 데브옵스의 개념부터 시작해서 다양한 도구가 소개됩니다. 테라폼으로 인프라 구성하기, 젠킨스 파이프라인을 통한 CI/CD, 프로메테우스를 활용한 모니터링까지 다양한 오픈소스가 툴체인으로 엮여 어떻게 환경을 구성할 수 있을지 알려주고 있습니다. 또한, 비용 최적화와 보안, 팁/트릭까지 AWS를 운영할 때 고민할 주제들도 포함하고 있습니다.
또 하나 영리한 면은 모든 것을 설명해서 백서가 되기보다는 어떤 문제가 있을 때 그것을 해결할 도구와 사례를 소개하는 방식으로 독자들에게 가야 할 길을 안내하고 있습니다. 분량도 그만큼 가벼워진 것이죠. 그렇기 때문에 이 책을 완전히 숙지하기보다는 관심을 가져야 할 주제들이 무엇이고 어떻게 관계가 있는지 살펴보면서 접근하시면 더 좋을 것 같습니다.
임성현 컴퓨터시스템응용기술사, 우아한형제들, IT인프라팀
클라우드 서비스는 신기술이 아닌 이제 기반기술화로 생각되고 있으며, 이제 시스템을 제공하기 앞서 클라우드 서비스를 우선적으로 검토하고 있습니다. 또한 최근의 서비스의 생명주기(Lifecycle)는 급격히 짧아지고, 고객의 요구사항을 받아 빠르게 대응하는 것이 중요한 문제로 제기되면서 데브옵스를 통한 서비스 대응이 선택이 아닌 필수가 되고 있습니다.
『데브옵스와 AWS』의 두드러지는 특징은 실무 적합성이라고 생각합니다. 과거에 서비스 소개로 그치거나, AWS를 이용한 클라우드 서비스 아키텍처를 제공하던 책들과는 다르게, 실제 사용자가 직접 AWS의 각종 서비스를 이용해 데브옵스의 환경을 직접 구성할 수 있게 자세히 설명하고 있습니다. 구성된 데브옵스 환경의 로그를 수집하고 모니터링할 수 있는 방법을 AWS 서비스를 기반의 실제 코드를 바탕으로 설명하고 있고, 클라우드 서비스에서 항상 회자되는 보안 영역도 다루고 있습니다.
그동안 클라우드 서비스가 단순 가상서버 사용이라는 생각을 넘어서 클라우드 서비스 환경에 최적화돼 제공되도록 개발된 애플리케이션(클라우드 네이티브 애플리케이션, Cloud Native Application)을 개발하고 운영할 수 있는 클라우드 네이티브 데브옵스 환경을 사용할 수 있는 실무서라고 볼 수 있습니다.
강남규 정보관리기술사, 한화S&C, 『프라이빗 클라우드 서비스』(제이펍, 2016) 저자
이 책에서 다루는 내용
■ 코드로서 인프라스트럭처 설계 및 배포
■ AWS 서비스를 사용한 지속적인 통합 구현
■ 솔트스택을 사용한 EC2 인스턴스 구성
■ 젠킨스와 AWS CLI를 사용한 지속적인 배포
■ 메트릭과 로그 데이터를 수집해 인프라스트럭처와 응용 프로그램에 대한 통찰력 확보
■ AWS 플랫폼 사용 시 자주 발생하는 문제를 해결할 수 있는 노하우 소개
이 책의 대상 독자
AWS 인프라 및 환경을 관리하는 시스템 관리자와 개발자를 대상으로 하며, 향후 조직에 데브옵스를 적용할 계획을 가진 사람들을 대상으로 한다. 또한, AWS Certified DevOps Engineer 인증을 목표로 하는 사람도 유용하게 활용할 수 있다. 따라서 AWS 환경을 운영하고 관리했던 경험이 필요하다.
이 책의 구성
1장, ‘데브옵스란 무엇이고, 어떤 것을 고려해야 하는가?’에서는 데브옵스의 철학을 소개한다.
2장, ‘코드로서의 인프라스트럭처 시작하기’에서는 예제를 통해 테라폼과 클라우드포메이션을 사용해 IaC(Infrastructure as Code)를 배포하는 방법을 살펴본다.
3장, ‘인프라스트럭처 구성 관리’에서는 솔트스택을 사용해 EC2 인스턴스를 구성하는 방법을 설명한다.
4장, ‘지속적인 통합으로 더 빠르게 빌드, 테스트, 릴리스하기’에서는 젠킨스 CI(Continuous Integration) 서버를 사용해 CI 워크플로우를 설정하는 과정을 설명한다.
5장, ‘지속적인 전달을 사용한 항상 준비된 배포’에서는 패커와 서버스펙을 사용해 배포 준비가 완료된 EC2 AMI를 생성하고, CI 파이프라인을 확장하는 방법을 설명한다.
6장, ‘지속적인 배포: 완전 자동화된 워크플로우’에서는 AMI 배포에 필요한 기능을 추가해 완전 자동화된 워크플로우를 만들고, CI/CD 파이프라인 완성하는 방법을 설명한다.
7장, ‘메트릭과 로그 수집, 모니터링’에서는 프로메테우스, 로그스태시, 일래스틱서치 및 관련 데브옵스 툴을 소개한다.
8장, ‘스케일과 비용을 고려한 최적화’에서는 스케일과 비용 효율성을 고려한 AWS 배포 방법을 설명한다.
9장, ‘AWS 환경 보안’에서는 AWS에 배포된 환경의 보안을 향상시키기 위한 모범 사례를 설명한다.
10장, ‘AWS 팁과 트릭’에서는 초급부터 중급 AWS 사용자에게 유용한 팁을 설명한다.
목차
목차
- 1장. 데브옵스란 무엇이고, 어떤 것을 고려해야 하는가?
- 데브옵스란 무엇인가
- 공동의 목적
- 지식 공유
- 신뢰와 책임 공유
- 존중
- 자동화
- 복제 가능한 인프라스트럭처
- 메트릭과 모니터링
- 지속적인 통합, 전달, 배포
- 실패에 대한 관용
- 고려해야 할 것들
- 적절한 시점인가?
- 작동할 수 있는가?
- 가치 있는 것인가?
- 필요한 것인가?
- 요약
- 데브옵스란 무엇인가
- 2장. 코드로서의 인프라스트럭처 시작하기
- TF(Terraform) 사용하기
- TF 툴 설정
- 템플릿 설계
- TF 작업
- 드라이 런 테스트
- 클라우드포메이션 사용하기
- 구성
- 템플릿 설계
- 작업
- 요약
- TF(Terraform) 사용하기
- 3장. 인프라스트럭처 구성 관리
- 솔트스택 소개
- 솔트스택 개발 환경 준비
- 구성 관리 코드 작성
- 스테이트
- 필러(Pillars)
- 그레인
- 톱 파일
- 구성 관리에서 노드의 부트스트래핑(엔드투엔드 IaC)
- 요약
- 솔트스택 소개
- 4장. 지속적인 통합으로 더 빠르게 빌드, 테스트, 릴리스하기
- IaC 준비
- 테라폼 템플릿
- 솔트스택 코드
- IaC 배포(Deploy laC)
- CI 설정
- 젠킨스 초기화
- 데모 애플리케이션 만들기
- 파이프라인 정의하기
- 파이프라인 설정
- 요약
- IaC 준비
- 5장. 지속적인 전달을 사용한 항상 준비된 배포
- 테라폼 템플릿 준비
- 리소스
- 변수
- 변수 값
- 출력
- 솔트 코드 준비
- 스테이트
- 필러(Pillars)
- 미니언(Minion) 설정
- 젠킨스 코드 준비하기
- 패커
- 서버스펙
- demo-app
- demo-app-cdelivery
- CodeCommit 저장소 준비하기
- 테라폼 템플릿 배포
- 젠킨스 초기화
- 젠킨스 Job 구성
- demo-app 파이프라인
- demo-app-cdelivery 파이프라인
- 요약
- 테라폼 템플릿 준비
- 6장. 지속적인 배포: 완전 자동화된 워크플로우
- 테라폼 코드(resources.tf)
- outputs.tf
- 젠킨스 파이프라인
- 지속적인 배포 파이프라인
- 요약
- 테라폼 코드(resources.tf)
- 7장. 메트릭과 로그 수집, 모니터링
- 중앙 집중식 로깅
- 로그 수집과 저장을 위한 로그스태시와 일래스틱서치
- 로그 수집을 위한 일래스틱서치 파일비트
- 키바나를 통한 로그 시각화
- 메트릭
- 프로메테우스를 통한 메트릭 수집과 저장
- 텔레그래프를 사용한 OS와 애플리케이션 메트릭 수집
- 그라파나를 사용한 메트릭 시각화
- 모니터링
- 프로메테우스를 통한 경고 알림
- 프로메테우스와 젠킨스를 사용한 자가 치유
- 요약
- 중앙 집중식 로깅
- 8장. 스케일과 비용을 고려한 최적화
- 아키텍처 고려 사항
- VPC
- 프론트엔드 계층
- 백엔드 계층
- 객체 스토리지 계층
- 부하 분산 계층
- 교차 가용 영역 부하 분산
- ELB Pre-warming
- CDN 계층
- 스팟 인스턴스
- AWS 계산기
- 요약
- 아키텍처 고려 사항
- 9장. AWS 환경 보안
- IAM을 사용한 접근 관리
- 루트 계정 보안
- VPC 보안
- 보안 그룹
- 네트워크 ACL
- VPN 게이트웨이
- VPC 피어링
- EC2 보안
- IAM 역할
- SSH 액세스
- ELB의 적극적 사용
- HTTPS 기본 적용
- 스토리지 암호화
- OS 업데이트
- 보안 검사
- VPC 흐름 로그
- 클라우드 트레일
- Trusted Advisor
- AWS Config
- 자가 침투 테스트
- 요약
- IAM을 사용한 접근 관리
- 10장 AWS 팁과 트릭
- VPC 사용
- 대체용으로 주 라우팅 테이블 유지
- SSH 게이트웨이 호스트
- IAM 역할을 사전에 생성
- IAM 그룹
- AWS 서비스 제한(Limits)에 대한 인지
- ELB Pre-warming
- EC2 인스턴스 종료 방지 활성화
- 태그 사용
- 다수의 가용 영역에 배포
- ELB 상태 체크 활용 강화
- ELB에서 SSL 처리하기
- EIP vs 공인 IP
- 한 시간 채워서 사용하기
- Route53 별칭 레코드 사용하기
- S3 버킷 네임스페이스는 글로벌
- S3 버킷 이름 생성 시 -(하이픈)과 .(점)의 사용 비교
- 랜덤하게 S3 파일이름 사용하기
도서 오류 신고
정오표
정오표
[p.43 : 아래에서 5행]
엔지니들을
->
엔지니어들을