소스 코드 파일은여기에서 내려 받으실 수 있습니다.
https://github.com/AcornPublishing/effective-devops-aws-2e
테라폼, 앤서블, 깃허브, AWS 코드 파이프라인 등을 활용한 데브옵스 구축을 위한 지침서다. 1판에서는 트로포스피어(Troposphere)라는 파이썬 라이브러리를 이용한 클라우드 포메이션 스크립트 생성으로 인프라를 구성한 반면에서 2판에서는 잘 알려진 테라폼으로 인프라를 구성해 1판에 비해는 좀 더 일반적인 방법을 제시한다. 데브옵스를 실현하기 위해서는 많은 솔루션을 사용할 수 있어야 한다. 이 책을 통해서 데브옵스에 관한 전반적인 솔루션을 이해하고 실제 코드를 다룰 것이다. 이 책이 100% 정답은 아니더라도 데브옵스의 전체 라이프사이클을 빠짐없이 경험해 볼 수 있을 것이다.
■ 클라우드 포메이션을 이용해 자동화된 AWS 인스턴스 프로비저닝 구현
■ 앤서블로 프로비전된 인프라에 애플리케이션 배포
■ 테라폼을 이용해 인프라 관리
■ AWS상의 자동화된 테스트로 CI/CD 파이프라인 구축 및 배포
■ AWS ECS를 이용한 CI/CD 파이프라인을 위한 컨테이너 이해
■ AWS 환경 모니터링 및 보안 강화
개발자, 데브옵스 엔지니어 또는 소프트웨어 인프라에 AWS를 사용해 구축하는 팀과 같이 일하고 있다면, 이 책은 당신을 위한 책이다. 그러나 이 책을 최대한 활용하려면 기본적인 전산 과학 지식이 요구된다.
1장, ‘클라우드와 데브옵스 혁명’에서는 데브옵스와 클라우드 여행을 시작하는 모든 사람에게 기초 지식을 제공한다. 데브옵스 문화, 데브옵스 용어 및 AWS 생태계에 대한 이해는 다음 장들의 이정표가 될 것이다.
2장, ‘첫 번째 웹애플리케이션 배포하기’에서는 AWS 인증 모범 사례 실습 및 가장 간단한 형태의 AWS 인프라 프로비저닝을 연습한다. 간단한 웹 애플리케이션을 작성해 가장 단순한 형태로 애플리케이션을 AWS에 배포하는 방법을 배우고 그 후 인스턴스를 종료한다. 모든 절차를 AWS CLI로 구현한다. 사용 가능한 여러 AWS 서비스와 그 밖의 유명한 서비스 및 제품을 이용해 수동 작업을 자동화하는 방법을 배우고, 다음 장부터 자동화를 구현한다.
3장, ‘코드로 인프라 다루기’에서는 AWS 기본 도구인 클라우드 포메이션과 클라우드 포메이션 템플릿 작성에 사용하는 기법을 이용해 프로비저닝 자동화를 처리한다. 그런 다음 애플리케이션 배포를 자동화하는 구성 관리 시스템 앤서블을 소개한다.
4장, ‘테라폼 코드로 인프라 다루기’에서는 테라폼의 기본을 다룬다. 테라폼 템플릿으로 첫 번째 AWS 인스턴스를 프로비저닝하고 또 다른 테라폼 템플릿으로 애플리케이션을 배포해 테라폼 구현 능력을 키운다. 끝으로 테라폼과 앤서블을 활용해 인프라 프로비저닝 및 애플리케이션 배포 자동화를 통합하는 AWS 프로비저닝을 다룬다.
5장, ‘연속 통합과 연속 배포 추가하기’에서는 자동화된 테스트 프레임워크가 포함된 AWS의 데브옵스 서비스를 사용해 CI/CD 파이프라인을 구성한다. 버전 컨트롤, 연속 통합, 테스트 자동화 도구, AWS 기본 데브옵스 도구 및 인프라 자동화 도구 같은 여러 도구를 이용한 기술 프레임워크를 준비해 얼마나 빨리 실패해야 하고 이런 잦은 실패가 어떻게 안정적인 상용 환경을 이끄는지 배운다.
6장, ‘인프라 확장하기’에서는 확장 가능한 AWS 인프라를 구축하는 데 있어 비용 효율적이고 유용한 AWS 서비스를 소개해 성능에 기반한 비전을 제시한다. 일래스틱 캐시, 클라우드 프론트, SQS, 키네시스 등을 이용해 애플리케이션 프레임워크를 구축한다.
7장, ‘AWS에서 컨테이너 실행하기’에서는 도커 시장에서 가장 유명한 틈새 기술 중 하나를 소개한다. 도커를 통해 컨테이너에 대한 모든 개념을 배운다. ECS로 AWS 컨테이너 환경을 준비하고 애플리케이션을 위한 완벽한 ECS 프레임워크를 구축한다. 끝으로 AWS 데브옵스 도구셋을 이용해 AWS ECS에 서비스를 배포하기 위해 완벽한 CI/CD 파이프라인을 구축한다.
8장, ‘AWS 환경의 보안 강화하기’에서는 AWS 감사 서비스와 역할에 대해 제한된 접근을 제공하고 관리하는 AWS IAM 서비스를 배운다. 이를 통해 AWS VPC 모델을 강화하고 결과적으로 랜섬웨어와 기타 취약점으로부터 보호할 수 있게 하고 AWS 환경의 변화를 인지하고 보안을 강화하는 방법을 배운다.
9장, ‘모니터링과 알람’에서는 AWS 클라우드 와치 서비스를 이용해 AWS 환경 모니터링 프레임워크를 구축한다. 로그를 시각화하기 위한 일부 유명한 대시보드 도구를 이용한다. 끝으로 AWS SNS 서비스를 이용해 알람 프레임워크를 생성하고, 사용자에게 AWS 환경의 정상 여부를 알린다.
데브옵스 운동은 현대 기술 회사의 일하는 방식을 변화시켜왔다. 클라우드 컴퓨팅 혁명의 선두 주자인 아마존 웹 서비스(AWS, Amazon Web Services)는 데브옵스 원칙을 구현하는 데 도움이 되는 넓은 범위의 관리형 서비스를 출시했으며 데브옵스 운동의 핵심 공헌 회사이기도 하다.이 책에서는 기술 스타트업이 AWS에서 서비스를 시작하고 확장하는 방법을 이해하고 적용하는 방법을 배운다. 이 책은 인프라를 코드로 취급하는 방법을 설명한다. 인프라를 코드로 취급한다는 것은 인프라 리소스를 소프트웨어를 다루듯이 쉽게 온라인과 오프라인으로 구축하는 것을 의미한다. 또한 애플리케이션을 최신으로 유지하도록 연속 통합과 연속 배포 파이프라인을 구축한다.
모든 내용을 다룬 후 컨테이너 같은 최근 기술을 이용해 트래픽 폭증에도 사용자에게 최대의 성능을 제공하도록 애플리케이션을 확장하는 방법을 배운다. 또한 모니터링과 알람도 살펴본다. 이를 통해 서비스를 이용하는 데 있어 가장 좋은 경험을 사용자에게 제공할 수 있다. ‘결론’에서는 많은 AWS 관리자가 데브옵스를 사용할 때 활용하는 클라우드 포메이션, 코드 디플로이 같은 내장형 AWS 도구를 다룬다.
이 책의 끝에서는 가장 최신이자 가장 훌륭한 AWS 도구를 이용해 플랫폼과 데이터의 보안을 보장하는 방법을 배운다.
IT 분야에서 10년째 활동해온 공인 데브옵스 및 클라우드 전문가다. OS, 소스 코드 관리, 빌드 및 배포 도구, 연속 통합/배포/전개 도구, 컨테이너, 구성 관리 도구, 모니터링, 로깅 도구 및 공용/사설 클라우드 기술 전문가다. 기술적인 전문성을 전 세계의 청중들에게 콘퍼런스, 웨비나, 블로그 링크드인으로 공유하는 것을 즐긴다.
『Automation with Puppet 5』와 『Automation with Ansible』을 집필했으며, 유데미(Udemy)에 온라인 강좌를 개설했다. 또한 『Implementing Splunk 7, Third Edition』, 『Splunk Operational Intelligence Cookbook, Third Edition』 같은 팩트출판사의 여러 책들도 검토했다.
현재 지멘스(Siemens)에서 데브옵스 AWS 전문가로 일하고 있다. 인터넷 기술 석사 학위를 취득했으며, 공인 자격증을 4개 갖고 있는 AWS 공인 데브옵스 엔지니어 전문가다. AWS 튜토리얼 시리즈가 포함된 유튜브 채널과 리눅스 아카데미 같은 유명한 블로그의 수많은 기사 등을 통해 AWS 커뮤니티에 공헌해왔다. 또한 VMWare와 시스코의 자격증을 갖고 있다. 이 책은 그의 두 번째 책이자 팩트출판사에 출간된 첫 번째 책이다. 이 책에서는 6장 ‘인프라 확장하기’와 8장 ‘AWS 환경의 보안 강화하기’를 집필했다.
10여 년 전 용어조차 없던 시절 데브옵스 엔지니어링 개념으로 작업을 시작했던 데브옵스 엔지니어다. 작은 스타트업 회사에서 시작해 쿨리스(Qualys), 스퀘어(Square), 최근에는 미디엄(Medium) 같은 대기업까지 여러 회사에서 일했다.
직장 밖에서는 활동적인 자녀들을 돌보고 아내와 가끔 데이트하는 저녁을 즐기는 멋진 삶을 살고 있다. 프랑스인이지만 와인보다는 친구들과 함께 현지의 스타우트 맥주를 즐겨 찾는다. 프랑스의 컴퓨터공학 관련 명문 대학교인 EPITA(Ecole Pour l'Informatiqueet les Techniques Avancées)에서 시스템, 네트워크 및 보안 관련 석사 학위를 취득했다.
이 책은 2018년 출간된 『AWS를 이용한 데브옵스 완벽 구축』의 개정판이다. 2년의 시간이지만 참 많은 것이 변했다. 번역 당시에 데브옵스는 생소한 개념이었으나 이제 데브옵스는 당연한 절차로 여겨진다. 클라우드의 저변 확대로 인프라 구성을 수작업으로 하는 경우는 IDC 기반 일부 서비스 외에는 사라진 것 같다. 초반에 AWS 기반으로 인프라 및 서비스 플랫폼 구성 시, 각 서비스별로 설치 스크립트를 작성하고 테스트하고 수작업으로 인프라 구성을 했었다. 실제 장비 도입에 따른 시간 지연 없이 빠르게 인프라를 구성할 수 있었기 때문에 시간 내의 성공적인 구축이 가능했다. 그 후에도 빠른 구축의 장점으로 적극적으로 AWS를 활용해 인프라를 구성했지만 시간이 경과하면서 데브옵스를 기반으로 구축하지 않은 관계로 유지보수에 많은 어려움을 겪게 됐다. 그 후에 코드 기반 인프라 구성 관리를 제안 및 도입했지만 상용에 운용 중인 기존 서비스에 데브옵스를 적용하기는 쉽지 않았다. 그래서 그 이후에 구성되는 신규 서비스는 모두 코드로 구성해 관리하게 하고 그대로 진행 중이다. 한 발 더 나아가 컨테이너 기반(도커, 쿠버네티스)으로 구축을 진행했고 현재는 모든 인프라 및 서비스의 설치 변경은 모두 소스 관리 시스템을 기반으로 한 코드로 진행되고 있다. 이로 인해 구축 속도가 매우 빠르고 구축된 스크립트의 재사용이 매우 편하다. 또한 인프라 변경도 소스로 관리되므로 변경 관리가 용이하다. 그리고 운영 부담이 대폭 줄어들어 시스템 엔지니어 한 명이 서비스 플랫폼을 통째로 관리할 수 있게 됐다.
이 과정을 겪으면서 초반부터 데브옵스로 시작하는 것이 얼마나 중요한지 알 수 있었다. 한번 구축하고 나면 그 이후 변경하기란 거의 불가능에 가깝다. 그러므로 초반에 적극적으로 데브옵스를 채택해야 나중에 큰 효과를 얻을 수 있다. 많은 소프트웨어, 솔루션, 방법론 등이 준비돼 있으므로 이제는 얼마든지 데브옵스의 채택이 가능한 상태다. 물론 내가 근무하는 곳의 환경이 이렇게 바뀐 것이므로 저변 확대라는 말로 일반화하기는 힘들 듯하다. 아직도 수작업으로 인프라를 구성하는 곳이 많을 것으로 예상하고 있다. 그러나 데브옵스의 적용은 정말 유익하다. 초반에는 여러 저항에 부딪히겠지만 이를 달성한 이후의 비즈니스 속도는 그렇지 않은 곳에서 도저히 따라오지 못할 수준의 빠른 전개가 가능할 것이다.
서울대학교를 졸업하고 숭실대학원에서 소프트웨어공학을 전공했다. Open API 플랫폼, IPTV 콘텐츠 관리 플랫폼, UCC 콘텐츠 서비스 플랫폼을 설계, 구축, 운영했으며, IPTV 플랫폼에 대한 진단 및 개선 관련 컨설팅을 진행했다. 넥슨 코리아에 입사해 AWS 기반의 게임 서비스 플랫폼 설계 구축을 진행했고, 클라우드 포메이션, 테라폼, 앤서블, 깃을 활용해 AWS 관리형 쿠버네티스 플랫폼인 EKS에 데브옵스화된 게임 서비스 인프라 구축을 진행했다. 현재는 대학원에서 빅데이터, 머신러닝 및 AI 관련 수학 중이다.
[p. 23 : 코드 주소]
http://www.http://www.acornpub.co.kr/book/effective-devops-aws-2e
->
http://www.acornpub.co.kr/book/effective-devops-aws-2e
[p. 30 : 아래서 6행]
https://nvlpubs.nist.gov/nistpubs/legacy/sp/nistspecialpublication800-145.pdf에서 클라우드 컴퓨팅에 대한 국립 표준 기술 연구소 (NIST, National Institute of Standard and Technology)의 정의와 https://nvlpubs.nist.gov/nistpubs/Legacy/SP/nistspecialpublication800-145.pdf에서 NIST의 클라우드 컴퓨팅 표준 로드맵을 살펴보는 것이 좋다.
->
https://nvlpubs.nist.gov/nistpubs/legacy/sp/nistspecialpublication800-145.pdf에서 클라우드 컴퓨팅에 대한 국립 표준 기술 연구소 (NIST, National Institute of Standard and Technology)의 정의와 NIST의 클라우드 컴퓨팅 표준 로드맵을 살펴보는 것이 좋다.