New

AWS를 이용한 데브옵스 완벽 구축 [AWS 기반 데브옵스 완성을 통한 업무 효율 200% 달성하기]

  • 원서명Effective DevOps with AWS: Ship faster, scale better, and deliver incredible productivity (ISBN 9781786466815)
  • 지은이나다니엘 펠슨(Nathaniel Felsen)
  • 옮긴이이준호
  • ISBN : 9791161751566
  • 35,000원
  • 2018년 05월 14일 펴냄
  • 페이퍼백 | 492쪽 | 188*235mm
  • 시리즈 : acorn+PACKT, 클라우드 컴퓨팅

책 소개

본문에 쓰인 컬러 이미지는 여기에서 내려 받으세요.
요약

데브옵스를 완벽하게 구축하기 위한 실무 지침서로, 막연한 데브옵스를 실질적으로 구현하는 방법을 제시한다. 직접 사이트를 운영하면서 겪은 문제들을 해결하면서 체득한 노하우를 단계적으로 정리해 보여준다. 매우 실질적인 내용으로 누구든지 이 책의 예시를 반복적으로 수행하다 보면 데브옵스 전문가로 거듭날 수 있을 것이다. 데브옵스를 어떻게 시작해야 할지 막막했다면, 이제 이 책을 통해 그 방법과 절차를 명확히 익힐 수 있을 것이다.

이 책에서 다루는 내용

■ 데브옵스를 실행하는 의미와 데브옵스 원리 확인
■ 템플릿과 구성 관리를 이용한 반복적인 인프라 구축
■ 연속 통합 및 연속 배포 파이프라인 구축을 통한 일간 다중 배포 실현
■ 인프라 확장을 위한 컨테이너 및 서비리스 컴퓨팅을 포함한 최신 기술 활용
■ 성능 지표와 로그 수집 및 알람 전략 구현
■ 시스템을 양호하고 안전하게 만들기

이 책의 대상 독자

소프트웨어 인프라를 구축하고 활용하기를 원하는 개발자, 운영자 및 데브옵스 담당자를 위한 책이다. 전산 과학의 기초 지식이 있다면 좋을 것이다.

이 책의 구성

1장, '클라우드와 데브옵스 혁명'에서는 데브옵스 문화의 특징과 AWS를 최대한 활용하는 방법을 알아본다. 데브옵스 문화를 채택하는 것은 무엇보다 전통적인 엔지니어링 방식과 운영 팀의 운영 방식을 바꾸는 것을 의미한다.
2장, '첫 번째 웹 응용프로그램 배포하기'에서는 AWS와 가장 악명 높은 서비스인 EC2를 소개한다. AWS에 가입한 후, 명령 중 인터페이스를 이용해 가상 서버를 생성하는 방식으로 환경을 구성한다.
3장, '코드로서의 인프라 취급하기'에서는 어떠한 응용프로그램도 호스팅할 수 있는 훌륭한 상용 환경에 대해 설명한다. 어떻게 아키텍처를 구성하고 서버를 모니터링하는지 방법을 배운다.
4장, '연속 통합과 연속 배포 추가하기'에서는 개발자의 생산성을 향상하기 위한 CI/CD를 다룬다. 이를 위해 연속 통합 파이프라인을 구축할 것이다.
5장, '인프라 확장하기'에서는 단일 아키텍처를 서비스 지향 아키텍처로 해체하는 방법을 배운다. 또한 더 나은 로드 밸런싱과 더 나은 서비스 간 커뮤니케이션을 위한 ALB, SQS 및 키네시스와 같은 다른 AWS 관리 서비스에 대해서도 알 수 있다.
6장, 'AWS에서 컨테이너 실행하기'에서는 도커 및 ECS를 이용한 컨테이너 개념과 도커의 동작 원리의 기본을 설명한다. 응용프로그램에 컨테이너를 생성하는 방법도 배운다.
7장, '모니터링과 알람'에서는 응용프로그램 및 인프라에 모니터링과 알람을 추가하는 방법을 설명한다. AWS가 제공하는 클라우드 와치, 일래스틱서치 및 SNS와 같은 서비스의 이점을 이용해 합리적으로 잘 처리하는 방법을 배울 것이다.
8장, 'AWS 환경의 보안성 강화하기'에서는 클라우드의 보다 복잡한 측면 중 하나인 보안에 대해 다루고 인프라의 보안을 감사하고 평가하는 다른 방법들을 배운다.

저자/역자 소개

지은이의 말

AWS는 광범위한 관리 서비스를 제공한다. 각각은 문서화가 잘 돼 있으나 비즈니스 인프라를 구축하기 위해 서비스를 함께 사용하는 방법을 찾는 것은 덜 명확하다. 이 책에서 당신은 기술 기반 창업을 성공적으로 하는 방법과 그들의 서비스를 AWS상에 확장하는 방법을 확인하고 실제 수행 방법을 배우게 될 것이다. 새로운 철학 구현 덕분에 아마존(Amazon), 넷플릭스(Netflix) 및 에어비앤비(Airbnb)와 같은 선구자적인 기업들이 개발자와 운영 팀 간의 사일로(silo)를 무너뜨려, 엄청난 민첩성과 새로운 코드를 빠르고 안정적으로 배포하는 능력을 갖게 됐다. 이 책은 독자가 AWS를 단계적으로 이해하는 데 도움을 주는 포괄적인 가이드이다.

지은이 소개

나다니엘 펠슨(Nathaniel Felsen)

데브옵스(DevOps)라는 용어가 등장하기 전인 10년 전부터 데브옵스 엔지니어링 개념을 갖고 일해온 데브옵스 엔지니어다. 소규모 창업 기업에서부터 퀄리스(Qualys), 스퀘어(Square), 최근에는 미디엄(Medium)을 포함한 대기업에 이르기까지 여러 회사에서 근무했다.
업무 시간 외에는 활달한 아이들을 따라다니며 아내와 이따금 저녁 데이트를 하며 쇼핑을 즐긴다. 와인보다는 친구들과 흑맥주 마시기를 즐긴다. 프랑스 최고의 전산 과학 엔지니어링 학교인 Ecole Pour l’Informatiqueet les Techniques Avancées(EPITA)에서 시스템, 네트워크 및 보안 관련 석사 학위를 취득했다.

옮긴이의 말

나는 2015년 모 통신사 컨설팅 프로젝트를 진행하면서 ‘데브옵스(DevOps)’라는 용어를 처음으로 접했다. CI(Continuous Integration)라는 용어는 그보다 훨씬 오래전인 2008년부터 사용하기 시작했다. 그해, 모 통신사의 대형 서비스 플랫폼의 운영 지원 및 고도화 기획을 담당했는데 해당 플랫폼의 원활한 유지 보수가 가장 큰 이슈였다. 전 국민을 대상으로 하는 플랫폼으로 장애 없는 유지 보수가 절대적으로 필요했으나 소스 코드의 관리 부재, 체계적인 빌드와 배포 시스템의 미비로 변경 개발 반영은 그야말로 손에 땀을 쥐는 매우 어려운 작업이었다. 가끔은 너무 시급해서 소스 코드를 상용 서버에 복사한 후 상용 서버에서 소스를 고쳐서 컴파일해 올리는 일도 있을 정도로 모든 절차가 임기응변으로 이뤄지고 있었다. 당시 소프트웨어 공학 방법론은 주로 개발된 코드를 재사용하는 방법에 대해서만 다루고 있었다. 이는 In-house 개발 및 COTS소프트웨어에 대해 적합한 방법론이다. 대형 SI에서는 주로 Waterfall 모델을 이용해 요구 사항 정의로 일이 시작되고 요구 사항의 구현으로 일이 끝나는 방법론 중심이었다. 다시 말해 실시간으로 운영 중인 시스템에 주기적으로 배포를 끊임없이 하기 위한 적절한 방법론 자체가 없었음이 맞을 것 같다. 당시 나는 Test NG(Next Generation)라는 이론을 접했고 여기에서 CI라는 용어를 처음으로 접했다. 개발 후 소스를 커밋하면 빌드 및 테스트를 자동으로 처리해주고 결과물을 바이너리로 남기는 일련의 과정을 CI라는 용어로 설명하고 있었다. 필자는 이 CI 절차를 도입해 유지 보수하는 데 반영시켰다. 이를 통해 자동화된 테스트를 통한 어처구니없는 실수를 차단시킬 수 있었다. 빌드 및 테스트가 성공한 바이너리만 상용 배포하도록 했고 배포된 바이너리에 오류가 있다면 직전 바이너리로 대체 배포할 수 있었다. 이를 통해 유지 보수가 훨씬 용이해졌을 뿐 아니라 작업 소요 시간, 평균 배포 주기, 배포 실패율 등을 산출하여 차기 운영프로젝트의 규모 산정 자료로 활용하기까지 할 수 있었다.
아쉬웠던 것은 테스트 환경 및 스테이징 환경 구성이 쉽지 않고 자동 배포가 불가능한 점이었다. 당시는 클라우드라는 용어가 막 등장하던 시절이다. 즉, 테스트 및 스테이징 환경을 구축하려면 별도의 하드웨어 투자가 필요하고 어떤 프로젝트에서도 이런 환경을 갖추기가 드물었다. 그러다 보니 로컬 PC 환경에서 개발 및 테스트 후 상용에 올릴 수밖에 없었고, 코드에 문제가 없어도 실행이 되지 않는 상황이 많이 발생했다.
바야흐로 클라우드 시대로 들어오면서 이런 환경의 구축이 가능한 시대가 됐다. CI 개념은 코드 빌드 및 바이너리 생성에서 멈추지 않고 인프라 생성과 바이너리 배포에까지 확장됐다. 이런 작업은 일반적으로 개발자보다는 운영자에게 이관돼왔다. 그러나 이러한 확장은 개발자와 운영자의 벽을 허물어뜨리는 결과를 가져오고 있다. 굳이 데브옵스라는 용어를 안 써도 이런 상황은 이미 발생하고 있다.
데브옵스는 소스 빌드, 바이너리 생성을 넘어 환경의 생성과 배포까지 모든 절차를 하나의 파이프라인으로 엮는 광범위한 작업을 의미한다. 그러나 국내에는 이런 거대한 작업을 해온 경험을 가진 인력이나 조직이 많지는 않은 것 같다. 너무 빨리 변하는 환경에 적응도 힘든 상황에서 데브옵스는 조직 자체를 흔드는 일이다. 이미 갖춰진 조직에서는 R&R 문제로 실현이 쉽지 않고 운영 안정성 측면 때문에 누구에게도 이런 일을 전체적으로 할 수 있는 권한을 부여하지 않기 때문이다.
이 책은 현행 프로젝트나 현행 서비스 환경을 데브옵스로 전환하는 데 필요한 대부분을 설명하고 있다. 1장부터 순서대로 따라 하다 보면 어느 순간 데브옵스 환경의 실체를 볼 수 있을 것이다. 또한 이 책에 나와 있는 예시를 여러 번 반복적으로 구축하다 보면 누구든지 자신이 수행할 프로젝트를 데브옵스로 쉽게 이끌 수 있는 경지에 오르게 될 것이다. 현실적으로 데브옵스로의 전환이 용이하지 않더라도 이 책을 통해 어떻게 하면 데브옵스로의 연착륙이 가능할지에 대한 아이디어를 얻을 수 있을 것이다. 또한 스타트업이나 신규 프로젝트를 기획하고 있다면 이 책에서 제시한 대로 따르면 200%의 실적을 달성할 수 있을 것이다.

옮긴이 소개

이준호

서울대학교 고고미술사학과를 졸업하고 전산과학을 부전공했다. 통신 인프라와 미디어, 클라우드 등 대형 IT 서비스 플랫폼 기획, 설계, 구축, 컨설팅 등 다양한 경력을 가졌으며 AWS 기반의 글로벌 서비스 플랫폼 설계와 구축을 진행하고 있다. 현재 넥슨 코리아에서 클라우드 아키텍트로 일하고 있다. 게임을 위한 글로벌 서비스 플랫폼을 AWS 기반으로 설계, 구축하며 운영하고 있다.

목차

목차
  • 1장. 클라우드와 데브옵스 혁명
    • 인프라 관점이 아닌 클라우드 관점으로 생각하기
      • 자체 하드웨어 배포 대 클라우드 배포
      • 비용 분석
      • 적시 제공(Just-In-Time) 인프라
      • 서로 다른 계층을 가진 클라우드 서비스
    • 데브옵스 문화 받아들이기
      • 데브옵스의 기원
      • 개발자 대 운영자의 딜레마
      • 데브옵스 문화의 주요 특징
    • AWS에 배포하기
      • AWS 생태계를 최대한 활용하는 방법
      • AWS를 이용해 데브옵스 문화와 시너지를 이루는 방법
    • 요약

  • 2장. 첫 번째 웹 응용프로그램 배포하기
    • 계정 생성과 구성
      • 계정 등록
      • 루트 계정에 멀티 팩터 인증 사용하기
      • IAM에서 신규 사용자 생성하기
      • 명령줄 인터페이스 설치와 구성
    • 첫 번째 웹 서버 만들기
      • AMI
      • 인스턴스 유형
      • 보안 그룹
      • ssh 키 생성하기
      • EC2 인스턴스 띄우기
      • 간단한 Hello World 웹 응용프로그램 생성하기
      • EC2 인스턴스 중단하기
    • 요약

  • 3장. 코드로서의 인프라 다루기
    • 클라우드포메이션으로 인프라 관리하기
      • 클라우드포메이션으로 시작하기
      • 클라우드포메이션을 이용 helloworld 예제 다시 작성하기
      • 템플릿을 소스 관리 시스템에 추가하기
      • 클라우드포메이션 스택 업데이트하기
      • 클라우드포메이션 스택 삭제하기
    • 구성 관리 시스템 추가하기
      • 앤시블로 시작하기
      • 컴퓨터에 앤시블 설치하기
      • 앤시블 플레이그라운드 생성하기
      • 앤시블 저장소 생성하기
      • 모듈 실행하기
      • 임의의 명령 실행하기
      • 앤시블 플레이북
      • 풀 모드로 앤시블 실행하기
      • EC2 인스턴스에 깃과 앤시블 설치하기
      • 클라우드포메이션에 앤시블 통합하기
      • 모니터링
    • 요약

  • 4장. 연속 통합과 연속 배포 추가하기
    • 연속 통합 파이프라인 구축하기
      • 앤시블과 클라우드포메이션을 이용해 젠킨스 생성하기
      • CI 환경 준비하기
      • CI 환경을 이용해 helloworld 응용프로그램 구현하기
      • CI 파이프라인 상용화하기
    • 연속 배포 파이프라인 구축하기
      • 연속 배포를 위한 새로운 웹 서버 생성하기
      • 코드 디플로이로 helloworld 응용프로그램 통합하기
      • AWS 코드 파이프라인으로 배포 파이프라인 구축하기
      • 상용을 위한 연속 파이프라인 구축하기
      • 상용에 연속 배포를 실행하기 위한 전략
    • 요약

  • 5장. 인프라 확장하기
    • 단일 구조의 응용프로그램 확장하기
      • 웹 서버를 확장하기 위해 오토 스케일링 그룹 사용하기
      • 전통적인 데이터베이스 규모 확장 기초
    • 성능 및 비용 절감 향상하기
      • 일래스틱 캐시
      • 클라우드프론트
    • 대용량 트래픽을 취급할 수 있는 응용프로그램 설계하기
      • 로드 밸런서
      • SQS와 키네시스를 이용한 오프라인 처리
      • 서버리스 아키텍처
      • 데이터 저장소 확장
      • 다중 리전 응용프로그램
    • 요약

  • 6장. AWS에서 컨테이너 실행하기
    • helloworld 응용프로그램 도커화하기
      • 도커로 시작하기
      • Dockerfile 작성하기
    • EC2 컨테이너 서비스 사용하기
      • 도커 이미지 관리를 위해 ECR 저장소 생성하기
      • ECS 클러스터 생성하기
      • ALB 생성하기
      • ECS helloworld 서비스 만들기
    • ECS에 배포하기 위한 CI/CD 파이프라인 작성하기
      • 상용 ECS 클러스터 생성하기
      • 코드 빌드를 이용해 컨테이너 생성 자동화하기
      • 코드 파이프라인으로 배포 파이프라인 생성하기
    • 요약

  • 7장. 모니터링과 알람
    • 모니터링을 위해 응용프로그램 측정하기
      • AWS 클라우드 와치
      • 클라우드 와치를 사용해 helloworld 응용프로그램 모니터링하기
      • 일래스틱서치, 키바나 및 파이어호스를 이용한 고급 로그 인프라
    • 인프라 모니터링하기
      • EC2 모니터링하기
      • ECS 클러스터 모니터링
      • ALB와 ELB 인스턴스 모니터링하기
    • 클라우드 와치와 SNS를 이용해 알람 생성하기
      • AWS 단순 알람 서비스
      • 응용프로그램의 오류율 증가에 대한 알람 생성하기
      • 클라우드 와치 이벤트와 람다를 사용해 사용자 정의 측정 지표에 대한 알람 생성하기
      • AWS 상태 모니터링 및 알람
    • 요약

  • 8장. AWS 환경의 보안성 강화하기
    • 노력을 집중할 수 있는 곳 이해하기
      • 공유된 책임 모델
      • 클라우드 보안 감사
    • IAM 계층의 보안성 개선하기
      • AWS에서 사용자 관리하기
      • AWS에서 서비스 권한 관리하기
    • 네트워크 수준에서 보안 강화하기
      • 공용 및 사설 서브넷을 가진 VPC 생성하기
      • 신규 VPC를 이용해 helloworld 다시 생성하기
      • VPC에 VPN 연결 생성하기
    • 표적 공격으로부터 보호
      • 표적 공격으로부터 보호
      • 랜섬웨어로부터 보호
    • 요약

도서 오류 신고

도서 오류 신고

에이콘출판사에 관심을 가져 주셔서 고맙습니다. 도서의 오탈자 정보를 알려주시면 다음 개정판 인쇄 시 반영하겠습니다.

오탈자 정보는 다음과 같이 입력해 주시면 됩니다.

(예시) p.100 아래에서 3행 : '몇일'동안 -> 며칠동안