AWS 컨테이너 설계와 구축 철저 입문

그림과 실전 운용 사례로 배우는 최적의 컨테이너 설계와 구축의 기술

AWS에서 컨테이너 환경의 설계와 구축 노하우를 기본부터 실무 지식까지 확실히 배운다!

앱이나 온라인 콘텐츠 사업을 지속적으로 발전시키기 위해서는 기술을 활용해 실패에 대한 영향을 최소화하면서 신속하게 사용자에게 가치를 제공하는 것이 중요하다. 이를 실현할 수 있는 핵심 기술 중 하나가 퍼블릭 클라우드 서비스와 컨테이너 기술이다.

이 책은 대표적인 퍼블릭 클라우드 서비스인 Amazon Web Services(AWS)와 컨테이너 기술에 초점을 맞춘다. AWS를 중심으로 한 컨테이너 활용을 위한 설계 포인트와 실습 내용을 소개하고, 특히 실습은 단순히 문서를 기반으로 하는 절차가 아니라 프로덕션 환경에서의 가동이나 실제 운영을 가정한 설계 방식을 체험할 수 있는 형태로 구성했다.

★ 이 책에서 다루는 내용 ★

  • 도커를 중심으로 한 컨테이너의 개요
  • 컨테이너와 관련된 AWS 서비스: Amazon ECS, AWS Fargate
  • AWS Well-Architected 프레임워크에 따른 최적의 컨테이너 설계
  • AWS상에서의 실습을 통한 아키텍처 구축
  • 운영과 보안, 최적화에 필요한 아키텍처 구축
  • CI/CD를 위한 AWS Code 활용
  • 스케일 전략 구현
  • 로깅 구현 및 DevSecOps를 통한 지속적인 보안 컴플라이언스

 

도서 상세 이미지

아라이 마사야

머리말, 1장, 3장 담당.

주로 금융 업계의 고객에 대한 비즈니스 제안과 시스템 설계, 개발, 운영을 담당. UI/UX 디자인 및 스마트폰 앱, 서버 사이드 프로그램 등이 가능한 풀스택 엔지니어로 클라우드 아키텍처 설계와 개발이 특기. 업무 외에도 강연과 기고, AWS 커뮤니티 운영 등 폭 넓은 활동 중.

우마카츠 아츠시

2장, 4장, 5장, 예제 애플리케이션 담당.

프런트엔드 및 백엔드 애플리케이션을 구현하는 시스템 엔지니어. 금융 관련 고객에 대한 비즈니스 제안, PoC를 위한 프로덕트 개발, UI/UX 검토 등에도 종사. 저서로는 'Voice User Interface 설계' 등이 있음.

사사키 타쿠로

감수.

SI 기업에서 클라우드를 중심으로 하는 시스템 구축 컨설팅 및 개발 운영에 종사. 최근에는 직접적인 기술론이 아닌 CCoE 등 조직 설계의 비율이 높음.

양현

경희대학교 지리학과를 졸업하고 웹 개발자로 근무하다 보안 업무에 뛰어들었다. SK인포섹에서 소스 취약점 분석, 모의해킹, 서버 취약점 분석 업무로 본격적인 보안 실무 경험을 쌓고, NHN JAPAN과 DMM.com에서 보안을 담당했고, 현재는 AI 스타트업 기업에서 rust 프로그래밍 및 IoT 보안을 하고 있다. 번역한 책으로는 『나만의 해킹 랩 만들기』 『하이퍼레저 패브릭 철저 입문』 『정보보안 콘테스트를 위한 CTF 문제집』 『블록체인 구조와 이론』 『CTF 정보보안 콘테스트 챌린지 북』 『알기 쉽게 설명한 VMware NSX』 『리눅스 서버 보안』 『취약점 진단 스타트 가이드』가 있다.

  • ▣ Chapter 01: 컨테이너 개요
  • 1-1 컨테이너 기술
  • __서버 가상화와 컨테이너
  • __컨테이너의 장점
  • 1-2 도커란
  • __도커 개요
  • __알아둬야 할 기본 도커 조작
  • __컨테이너를 운용할 때의 과제
  • 1-3 오케스트레이터란
  • __오케스트레이터가 해결할 수 있는 것
  • __대표적인 컨테이너 오케스트레이터
  • 1-4 컨테이너 기술을 도입하기 위해 고려해야 할 것
  • __컨테이너를 전제로 하는 애플리케이션을 개발하는 방법
  • __컨테이너 설계·운용에 임하는 자세
  • __개발 팀 역할 분담 개편
  •  
  • ▣ Chapter 02: 컨테이너 설계에 필요한 AWS 기초 지식
  • 2-1 AWS가 제공하는 컨테이너 서비스
  • __제어 플레인
  • __데이터 플레인
  • __저장소(Repository)
  • __기타
  • 2-2 아키텍처 구성 예
  • __ECS on EC2
  • __ECS on Fargate
  • __EKS on EC2
  • __EKS on Fargate
  • 2-3 각 아키텍처를 적용한 사용 예
  • __온프레미스 또는 EC2에 쿠버네티스를 사용하는 경우
  • __블록체인을 이용하는 풀 노드(Full node)를 구축하는 경우
  • __기계 학습이 필요한 경우
  • __높은 자원 집약율을 실현하고자 하는 경우
  • __SI로 서비스를 만드는 경우
  • __자사 제품으로 서비스를 개발하는 경우
  • 2-4 AWS에서 컨테이너를 이용할 때의 장점
  • __로드맵 정보 제공
  • __지속적인 요금 개정
  • __다수의 컨테이너 활용 사례
  • __풍부한 학습 매뉴얼
  •  
  • ▣ Chapter 03: 컨테이너를 이용한 AWS 아키텍처
  • 3-1 이 장을 읽기에 앞서
  • 3-2 Well-Architected 프레임워크 활용
  • 3-3 설계 대상 아키텍처
  • __이 장에서 다룰 AWS 서비스
  • __예제 웹 애플리케이션 개요
  • __설계 요구사항과 기본 아키텍처
  • 3-4 운영 설계
  • __모니터링과 옵저버빌리티(Observability)의 중요성
  • __로깅 설계
  • __지표 설계
  • __트레이스 설계
  • __CI/CD 설계
  • __이미지 유지 보수 운영
  • __Bastion 설계
  • 3-5 보안 설계
  • __공동 책임 모델의 이해
  • __컨테이너 개발 보안 모범 사례
  • __이미지에 대한 보안 대책
  • __레지스트리에 대한 보안 대책
  • __오케스트레이터에 대한 보안 대책
  • __컨테이너에 대한 보안 대책
  • 3-6 안정성 설계
  • __다중 AZ 구성을 통한 가용성 향상
  • __장애 시 절체 및 복구
  • __시스템 유지 보수를 위한 서비스 정지
  • __서비스 할당량 고려
  • 3-7 성능 설계
  • __성능 설계 아이디어
  • __Step 1: 비즈니스상 성능 요건
  • __Step 2-1: 자원 할당
  • __Step 2-2: 확장 전략 검토
  • __Step 3: 테스트 수행
  • __Step 4: 지표 확인
  • __Step 5: 용량 할당 및 확장 전략의 수정
  • __성능 설계에 필요한 사고방식
  • 3-8 비용 최적화 설계
  • __비용 최적화 아이디어
  • __ECS 태스크 수와 자원 크기 산정
  • __Compute Savings Plans 활용
  • __ECR 컨테이너 이미지 관리
  • __개발·스테이징 환경의 ECS 태스크 실행 시간대 조절
  • __Fargate Spot 활용
  • __컨테이너 이미지 크기 줄이기
  •  
  • ▣ Chapter 04: 컨테이너 구축하기(기초편)
  • 4-1 실습으로 만들 AWS 구성
  • __CloudFormation 템플릿을 이용한 구축
  • 4-2 네트워크 구축
  • __VPC와 서브넷
  • __인터넷 게이트웨이
  • __라우팅 테이블
  • __보안 그룹
  • __CloudFormation을 이용한 자원 생성
  • 4-3 애플리케이션 구축
  • __예제 애플리케이션 개요
  • __예제 애플리케이션 구축
  • 4-4 컨테이너 레지스트리 구축
  • __컨테이너 레지스트리 생성
  • __컨테이너 레지스트리용 네트워크 생성
  • __애플리케이션 등록
  • __컨테이너 애플리케이션 등록
  • 4-5 오케스트레이터 구축
  • __ECS on Fargate 동작 이미지 확인
  • __오케스트레이터 구축 내용 확인
  • __CloudWatch Logs용 VPC 엔드포인트 생성
  • __Blue/Green 배포용 ALB 추가
  • __Internal용 보안 그룹 변경
  • __Blue/Green 배포용 IAM 역할 생성
  • __ECS 구축
  • __컨테이너 배포 확인
  • 4-6 데이터베이스 구축
  • __보안 그룹 생성
  • __Aurora 인스턴스의 네트워크 구성
  • __Aurora 인스턴스 생성
  • __데이터베이스 접속을 위한 준비
  • __Secrets Manager 설정
  • 4-7 애플리케이션 간 통신 확인
  • __DB에 접속하는 프런트엔드 애플리케이션 등록 및 실행
  • __통신 확인
  •  
  • ▣ Chapter 05: 컨테이너 구축하기(실천편)
  • 5-1 실습에서 구축할 AWS 구성
  • 5-2 운영 설계: Code 시리즈를 이용한 CI/CD
  • __CodeCommit 생성
  • __CodeBuild 생성
  • __CodeDeploy에 대해
  • __CodePipeline 생성
  • __응용 프로그램 수정 및 파이프라인 실행 확인
  • 5-3 운영 설계 & 보안 설계: 애플리케이션 이미지 추가 설정
  • 5-4 성능 설계: 수평 확장을 이용한 가용성 향상
  • __ECS 서비스에 Auto Scaling 설정 추가
  • __Auto Scaling 동작 확인
  • 5-5 보안 설계: 응용 프로그램 무단 접근 방지
  • __AWS WAF
  • __WAF 생성
  • __WAF 추가 후 확인
  • 5-6 운영 설계 & 보안 설계: 로그 수집 기반 구축
  • __로그 관리용 S3 버킷 생성
  • __FireLens용 컨테이너 기본 이미지 생성
  • __ECS 작업에 로그 라우터 컨테이너 추가
  • __로그 출력 확인
  • 5-7 운영 설계: Fargate를 이용한 Bastion 구축
  • __Fargate Bastion으로 이용할 컨테이너 이미지 등록
  • __각종 IAM 설정
  • __Systems Manager의 VPC 엔드포인트 생성
  • __Systems Manager 인스턴스 티어 변경
  • __Fargate Bastion용 작업 정의 생성
  • __Fargate Bastion 실행
  • 5-8 보안 설계: Trivy/Dockle을 이용한 보안 확인
  •  
  • ▣ 부록A: AWS 계정 생성 및 설정
  •  
  • ▣ 부록B: 생성한 자원 삭제