AWS 시스템 설계와 마이그레이션

아마존 웹 서비스 업무 시스템 설계와 마이그레이션을 위한 베스트 프랙티스

막상 AWS를 도입할 때는 무엇을 어디부터 시작해야 하는지 막막할 수가 있다. 개인적으로 사용하는 경우는 그냥 기본 설정으로 사용해도 문제가 되지 않지만, 여러 명이 같이 프로젝트를 진행한다거나 일반 고객에게 실제로 서비스를 제공하는 시스템을 구축할 경우에는 얘기가 달라진다. 예를 들어 개발자 간 혹은 부서 간의 권한 관리, 보안, 네트워크, 감시, 운용 등 고려해야 하는 부분이 많다. 또 프로젝트의 시스템 환경과 상황에 따라서도 다르다.

이 책은 기업 내에서 AWS를 이용하여 프로젝트를 시작할 때 가장 먼저 고려해야 하는 권한 관리를 비롯하여 네트워크 설계/구성, 서비스 감시, 운용에 이르기까지의 AWS 설계/구축 방법과 온프레미스에서 AWS로의 마이그레이션 방법에 대해 구체적으로 다룬다. AWS를 이용하여 프로젝트를 진행할 때 무엇을 고민해야 하고, 실제 구축은 어떻게 하는지 여러 프로젝트 경험에서 축적된 저자들의 노하우를 통해 배울 수 있다.

이 책을 통해 아직 AWS의 경험이 없는 독자에게는 AWS가 무엇인지를 알게 되는 계기가 되고, 이미 AWS를 사용하고 있는 독자에게는 평소 놓치고 지나가기 쉬웠던 부분, 알고 있던 부분이라도 저자들의 경험에서 나오는 새로운 관점과 베스트 프랙티스를 통해 AWS에 대한 이해가 더욱 깊어질 것이다.

사사키 타쿠로

전문 분야는 웹 관련 시스템 개발. 기획에서부터 설계 개발, 운용까지 모든 공정에 참여. 웹의 서비스 영역 확대와 더불어, IoT나 기계학습 등 담당 범위를 넓히고 있다.

하야시 신이치로

온프레미스, 클라우드를 불문하고 시스템 인프라 구축/운용 업무를 담당. 잇달아 등장하는 운용관리 관련의 새로운 서비스를 어떻게 현행 시스템에 잘 접목시킬 것인가를 계속 고민 중이다.

세토지마 토시히로

노무라 종합연구소 클라우드 기반 서비스3부서 주임. 엔터프라이즈 기업을 중심으로 AWS를 중심으로 한 퍼블릭 클라우드 도입 컨설팅, 설계, 구축을 담당. 특히 금융기관의 퍼블릭 클라우드 도입 지원을 중심으로 활동하고 있다.

미야카와 료

퍼블릭 클라우드의 네트워크 기반 담당. 도쿄 리전에 AWS Direct Connect가 도입된 이후, 많은 고객들에게 제안, 구축, 유지 관리에 종사하고 있다.

카나자와 케이

고객의 사업 개발실에서 신규 프로젝트 개발을 담당. 사업 개발 스피드를 올리기 위해 클라우드 서비스를 좇아, 현재는 서버리스쪽 서비스에 푹 빠져있는 중이다.

홍보표

데이터로 모두가 행복한 세상을 꿈꾸는 데이터 해피니스트. 게임/웹툰/EC 서비스의 BI시스템 구축, 운용 전반을 담당했으며, 현재는 AWS기반의 데이터 분석 환경 구축과 머신러닝을 활용한 데이터 분석 컨설팅 업무를 진행하고 있다. 좋아하는 AWS 서비스는 Redshift와 Athena이며 Glue의 성장을 예의 주시 중.

  • ▣ 01장: AWS 서비스 개요
    • 1.1 AWS란?
      • 1.1.1 AWS 서비스의 특징
      • 1.1.2 AWS와 온프레미스의 차이
        • 소유와 이용
        • 캐퍼시티 설계
        • 클라우드 서비스를 구분하는 방법
      • 1.1.3 AWS의 이점
        • 스몰 스타트로 시작, 필요 없어지면 삭제
        • 빠른 인프라 구축 속도
        • 사전 리소스 확보 불필요
        • AWS의 이점은 “빠르게 실패”가 가능한 점
    • 1.2 서비스의 전체적인 그림
      • 1.2.1 AWS의 기본적 사고
      • 1.2.2 리전 및 가용 영역
        • 리전
        • 가용 영역
      • 1.2.3 VPC와 Direct Connect
        • VPC
        • Direct Connect
      • 1.2.4 AWS 계정
        • 단일 계정
        • 복수 계정
      • 1.2.5 AWS의 감사 추적
        • AWS의 감사 추적 대상
      • 1.2.6 AWS의 요금
        • AWS의 요금 체계
        • AWS의 프리 티어
        • AWS의 요금 계산기(Simple Monthly Calculator)
        • 일반적인 구성에서의 요금 내역
    • 1.3 AWS의 주요 서비스
      • 1.3.1 컴퓨팅 서비스
        • 가상 서버 EC2
        • 서버리스 컴퓨터 처리 기반(Lambda)
      • 1.3.2 스토리지 서비스
        • 온라인 스토리지 볼륨(S3)
        • 파일 스토리지 볼륨(EFS)
        • S3로의 데이터 전송 기능(Storage Gateway)
      • 1.3.3 데이터베이스 서비스, 데이터 처리 서비스
        • Amazon RDS
        • AWS의 NoSQL 서비스
      • 1.3.4 네트워크 서비스
        • 프라이빗 네트워크 기능(VPC, Direct Connect)
        • DNS 서비스(Route 53)
        • CDN 서비스(CloudFront)
      • 1.3.5 AWS 관리 도구
        • 템플릿을 이용한 자동 구축 도구(CloudFormation)
        • AWS의 이용 상태 관리 도구(CloudTrail, Config)
        • 지원 서비스(Trusted Advisor, AWS Support)
      • 1.3.6 AWS 마이그레이션 서비스
        • 데이터 마이그레이션 서비스(DMS)
        • 대량 데이터 반입 서비스(Snowball)
      • 1.3.7 계정 관리
        • AWS의 계정 종류
        • AWS 계정
        • IAM 사용자
        • 조직 계정(AWS Organizations)
      • 1.3.8 보안 도구
        • 지속적 보안 평가 도구(Inspector)
        • 무료 서버 인증서 발행 도구(Certificate Manager)
        • DDoS, 애플리케이션 레이어의 방어(WAF, Shield)
      • 1.3.9 알림 및 모니터링 서비스
        • 알림 서비스(SNS)
        • 모니터링 서비스(CloudWatch)
    •  
  • ▣ 02장: 전체 설계(관리 방침과 마이그레이션 계획)
    • 2.1 계정 관리의 사고 방식
      • 2.1.1 AWS 계정과 IAM 사용자
        • AWS 계정
        • IAM의 구조
        • 일시적인 권한 부여와 교차 계정 역할
      • 2.1.2 복수의 AWS 계정 관리
        • 일괄 결제 기능(Consolidated Billing)
        • 조직 계정(AWS Organizations)
    • 2.2 AWS와 감사 추적
      • 2.2.1 시스템의 로그 및 작업 이력
      • 2.2.2 AWS의 로그 및 작업 이력
    • 2.3 AWS의 네트워크 설계의 사고 방식
      • 2.3.1 VPC의 역할과 사내 네트워크와의 연결 방법
        • 사내 네트워크의 형태
        • VPC를 어떻게 연결할까
        • 거점과 VPC의 연결
      • 2.3.2 여러 AWS 계정 간의 연결 방법
        • 용도별 AWS 계정의 분류와 연결 방법
        • VPC 피어링을 이용한 AWS 계정 간 연결
    • 2.4 AWS로의 시스템 마이그레이션
      • 2.4.1 클라우드 여행: 마이그레이션의 단계
      • 2.4.2 AWS 마이그레이션의 패턴
        • 단순 마이그레이션
        • 커스터마이즈
        • 최적화
      • 2.4.3 AWS로의 마이그레이션 계획
        • fit & gap 분석
        • 도입 컨설팅(AWS 프로페셔널 서비스)
        • 탁상 검증은 최소한으로
      • 2.4.4 AWS의 마이그레이션 서비스
        • 서버의 마이그레이션
        • 데이터의 마이그레이션
        • 데이터베이스의 마이그레이션
    • 2.5 AWS 상의 시스템에 대한 모니터링 운용
      • 2.5.1 AWS 상의 시스템을 모니터링하는 사고 방식
        • 시스템의 모니터링 대상
        • CloudWatch를 이용한 모니터링
        • SNS를 이용한 알림
      • 2.5.2 AWS의 운용 서비스
        • 인스턴스의 상태 관리 및 운용(Systems Manager)
        • 인스턴스의 보안 평가(Inspector)
        • 서포트 서비스
    •  
  • ▣ 03장: 계정 관리와 권한 부여
    • 3.1 AWS의 계정 관리
      • 3.1.1 효율적으로 계정 관리하기
      • 3.1.2 AWS Organizations
        • AWS Organizations를 이용한 AWS 계정의 그룹화
        • AWS Organizations의 기능
        • 계정 생성
        • 결제의 일원 관리
        • 계정으로 이용 가능한 AWS 서비스에 제한 설정하기
        • JSON 형식의 권한 설정
        • 정책 생성기
      • 3.1.3 AWS Organizations의 도입과 정책 설정
        • 마스터 계정으로 Organization을 생성
        • Organization에 연결할 계정의 설정
        • Organization Unit의 생성과 계층 구조의 정의
        • 서비스 제어 정책의 생성과 적용
      • 3.1.4 AWS Organizations의 베스트 프랙티스
        • 마스터 계정으로 CloudTrail을 활성화하기
        • 마스터 계정은 계정 관리 전용으로 하기
        • Organization Unit에 서비스 제어 정책을 적용해 권한 제한하기
        • Organization 내에 화이트 리스트와 블랙 리스트를 혼합하지 않기
      • 3.1.5 계정 관리의 로드 맵
        • 관리 주체와 관리 범위를 결정
        • Organization을 관리하는 담당을 결정
        • 권한 부여 규칙을 생성
        • Organization Unit의 구성 설계하기
    • 3.2 AWS의 환경 분리
      • 3.2.1 환경을 계정으로 분할하는 이점
      • _운용 측면의 이점
        • 비용 관리 측면의 이점
      • 3.2.2 환경을 계정으로 분할할 때의 단점
        • 운용 측면의 단점
        • 비용 관리 측면의 단점
      • 3.2.3 특별한 정책 없이 분할할 경우의 베스트 프랙티스
    • 3.3 AWS의 권한 관리
      • 3.3.1 IAM(Identity and Access Management)
        • IAM 정책
        • IAM 정책의 생성
        • IAM 사용자와 IAM 그룹
        • 루트 사용자 관리
      • 3.3.2 관리 콘솔 밖에서 AWS 서비스 작업하기
        • 액세스 키와 시크릿 키를 이용한 AWS 리소스 작업
        • 액세스 키와 시크릿 키의 생성
        • CLI의 설치
        • CLI의 설정(액세스 키와 시크릿 키의 설정)
        • AWS 리소스에 액세스
      • 3.3.3 키 유출 대책
        • IAM 역할
      • 3.3.4 Cognito
        • Cognito Identity
        • Cognito Identity를 이용한 인증과 인가 절차
        • User Pools
        • Federated Identities
        • Cognito Sync
      • 3.3.5 AWS 권한 관리의 베스트 프랙티스
        • 역할별 IAM 그룹으로 권한 관리하기
        • 이용자별 IAM 사용자를 발행
        • 권한은 필요 최소한으로 할당하기
        • 권한과 IAM 사용자를 정기적으로 정리해서 최적의 상태 유지하기
        • 기타 규칙
    •  
  • ▣ 04장: 네트워크의 설계와 구축 및 유지 관리
    • 4.1 AWS 네트워크의 전체 구성
      • 4.1.1 AWS 네트워크의 구성 요소
        • VPC
        • 인터넷에 있는 AWS 서비스에 연결
      • 4.1.2 통신 요건
        • 통신 내용의 정리
      • 4.1.3 물리 구성
        • VPC의 역할
        • VPC를 어디에 연결할까
        • 인터넷을 어디에 연결할까
      • 4.1.4 논리 구성
        • 주소 할당
        • VPC가 몇 개 필요한가
      • 4.1.5 서비스의 선정
        • 인터넷 VPN
        • Direct Connect
    • 4.2 네트워크 설계
      • 4.2.1 주소 설계
        • VPC에 할당하는 CIDR 블록
        • 서브넷
      • 4.2.2 라우팅 설계
        • AWS의 라우팅 요소
        • 라우팅 테이블
        • local
        • 인터넷 게이트웨이(Internet Gateway)
        • 가상 프라이빗 게이트웨이
        • 피어링 연결
        • 가동 중인 EC2 인스턴스
        • VPC 엔드포인트
      • 4.2.3 필터링 설계
        • 라우팅에 의한 필터링
        • VPC의 필터링 기능을 이용한 필터링
      • 4.2.4 이름 확인과 DHCP 옵션 세트
        • 글로벌(인터넷)에서 이름 확인의 중요성
      • 4.2.5 로드 밸런서 설계
        • ELB의 장단점
        • 가상 어플라이언스의 장단점
        • ELB(로드 밸런서 서비스)
        • ELB의 기본적인 기능
        • ELB를 이용할 때의 포인트
      • 4.2.6 패킷 캡처와 VPC 플로우 로그
      • 4.2.7 Route 53
        • authoritative DNS 서버 기능
        • 라우팅 기능
        • 상태 확인(헬스 체크) 기능
        • 도메인 등록(취득)
    •  
  • ▣ 05장: 시스템 설계와 서비스의 도입
    • 5.1 AWS 서비스를 이용한 시스템 설계
      • 5.1.1 온프레미스와 연계하지 않는 EC 사이트
        • 계정
        • VPC, 서브넷
        • 웹 서버 레이어
        • 데이터베이스 레이어
        • 배치 서버
      • 5.1.2 하이브리드 환경에서 운용하는 업무 시스템
        • 인터넷 연결 및 보안
        • 소개할 아키텍처 패턴
    • 5.2 웹 가용성 향상 패턴
      • 5.2.1 ELB
        • ELB 자체의 확장(스케일링)
        • 상태 확인(헬스 체크) 기능
        • 상태 유지 세션
        • Connection Draining
      • 5.2.2 Auto Scaling
        • Auto Scaling 설정 항목
        • Auto Scaling 그룹
        • 시작 설정
        • Scaling 정책/계획
      • 5.2.3 웹 가용성 향상 패턴
        • 패턴 도입의 포인트
      • 5.2.4 ELB와 Auto Scaling의 이용 방법
        • ELB의 이용 방법
        • Auto Scaling의 이용 방법
        • Auto Scaling 설정 확인
    • 5.3 콘텐츠 캐시 패턴
      • 5.3.1 CloudFront
      • 5.3.2 CloudFront와 AWS 서비스의 연계
        • 각종 보안 서비스와의 연계
        • Amazon API Gateway와의 연계
        • [email protected]와의 연계
      • 5.3.3 콘텐츠 캐시 패턴
        • 캐시 TTL(Time To Live)을 제대로 설정하기
        • Popular Object Report를 참고해서 정기적으로 설정 재검토를 실시
        • 오리진 서버의 장애를 고려한 설계를 실시
        • CloudWatch를 설정해 알람을 받음
      • 5.3.4 CloudFront 사용법
        • S3의 정적 호스팅 설정
        • CloudFront 설정
        • CloudFront 설정 확인
    • 5.4 DB 가용성 향상 패턴
      • 5.4.1 RDS
        • RDS를 사용할 때의 장점
        • RDS를 사용할 때의 단점
        • RDS vs. DB on EC2 with CLUSTERPRO
      • 5.4.2 DB 가용성 향상 패턴
        • 운용 포인트
      • 5.4.3 RDS 사용법
        • 멀티 AZ에 마스터 DB와 슬레이브 DB를 배치
        • 데이터베이스의 상세 설정
    • 5.5 인 메모리 캐시 패턴
      • 5.5.1 ElastiCache
        • ElastiCache for Memcached의 특징
        • ElastiCache for Redis의 특징
      • 5.5.2 인 메모리 캐시 패턴
        • 도입할 때의 포인트
      • 5.5.3 ElastiCache 사용법
        • Memcached 생성
        • Memcached 설정
    • 5.6 작업 서버 패턴
      • 5.6.1 작업 서버 패턴
        • 구축 포인트
      • 5.6.2 NAT 게이트웨이 사용법
        • NAT 게이트웨이 생성
        • 라우팅 테이블 편집
      • 5.6.3 VPC 엔드포인트 사용법
        • VPC 엔드포인트 생성
        • VPC 엔드포인트 설정
    • 5.7 하이브리드 사용 패턴
      • 5.7.1 인터넷 연결 설계
        • VPC 내에서 인터넷에 액세스
        • 서브넷 설계
      • 5.7.2 하이브리드 사용 패턴
        • AWS 환경으로 마이그레이션하는 방법
        • 시스템의 일부를 AWS 환경으로 마이그레이션하는 패턴
        • 시스템 전체를 AWS 환경으로 마이그레이션하는 패턴
    • 5.8 파일 서버 사용 패턴
      • 5.8.1 파일 서버 사용 패턴
        • 전체 구성
        • 네트워크 설계
      • 5.8.2 Storage Gateway 이용법
        • 파일 게이트웨이 서버 만들기
        • 백업을 저장할 S3의 설정
        • 클라이언트에서 파일 게이트웨이를 NFS 마운트
        • 주의 사항
    • 5.9 대규모 데이터 분석 패턴
      • 5.9.1 Redshift와 BI 도구를 이용한 대규모 분석
      • 5.9.2 대규모 데이터 분석 패턴
      • 5.9.3 Redshift 사용법
        • 샘플 데이터 S3 업로드
        • 테이블 생성과 데이터 임포트
        • 샘플 데이터 로드
        • BI 도구에서 Redshift에 연결
    • 5.10 인프라 구축 자동화
      • 5.10.1 AWS 인프라 구축 자동화 서비스
        • AWS CloudFormation
        • AWS OpsWorks
        • AWS Elastic Beanstalk
        • 서비스의 사용 구분
      • 5.10.2 CloudFormation을 이용한 인프라 자동 구축 2
        • CloudFormation 기능 개요
        • CloudFormation 내장 함수
      • 5.10.3 CloudFormation의 베스트 프랙티스
        • 보안 측면의 베스트 프랙티스
        • 템플릿 설계·생성 측면의 베스트 프랙티스
        • 운용 측면의 베스트 프랙티스
      • 5.10.4 OpsWorks
        • OpsWorks 스택
        • OpsWorks for Chef Automate
      • 5.10.5 Elastic Beanstalk
        • All at Once 배포
        • Rolling 배포
        • Rolling with additional batch 배포
        • Immutable 배포
        • URL Swap으로 교체
        • Route 53로 교체
    •  
  • ▣ 06장: 마이그레이션 테크닉
    • 6.1 마이그레이션 대상 자산
    • 6.2 데이터 마이그레이션
      • 6.2.1 데이터 마이그레이션에 걸리는 대략적인 시간
      • 6.2.2 AWS 서비스를 사용하지 않는 데이터 마이그레이션
        • OS 명령어를 이용한 데이터 마이그레이션
        • CLI를 이용한 데이터 마이그레이션
      • 6.2.3 AWS 서비스를 이용한 데이터 마이그레이션
        • Storage Gateway 사용
        • Snowball 사용
        • Snowball Edge
        • Snowmobile
    • 6.3 가상 서버 마이그레이션하기
      • 6.3.1 AWS Server Migration Service
        • SMS의 구성 개요
        • VM Import/Export와의 차이
        • SMS의 특징
        • OS의 라이선스
    • 6.4 데이터베이스 마이그레이션하기
      • 6.4.1 AWS 서비스를 사용하지 않고 데이터베이스 마이그레이션하기
      • 6.4.2 AWS Database Migration Service
        • DMS 구성 개요
        • DMS와 온프레미스 서버 간의 연결 경로
        • 동일한 데이터베이스 시스템 간의 마이그레이션
        • 다른 데이터베이스 시스템 간의 마이그레이션
        • 데이터 마이그레이션 및 마이그레이션 후의 데이터 동기화
    •  
  • ▣ 07장: 운용 모니터링 설계 및 실시
    • 7.1 시스템 모니터링하기
      • 7.1.1 CloudWatch 사용하기
        • 표준 지표로 모니터링하기
        • 사용자 지정 지표를 사용해 모니터링하기
        • 온프레미스 서버의 모니터링과 비교
        • AWS 특유의 모니터링
      • 7.1.2 CloudWatch Logs 사용하기
        • 에이전트 설치
        • 모니터링 대상 로그 설정
        • 에이전트 시작
        • 특정 문자열 감지
        • CloudWatch Logs의 기타 서비스 연계
      • 7.1.3 CloudWatch Events 사용하기
        • EC2 인스턴스의 스케줄 이벤트 알림
        • 이벤트 버스
    • 7.2 시스템 운용하기
      • 7.2.1 AWS Support
        • 인프라 이벤트 관리(IEM)
        • 서포트 문의 방법 및 응답 시간
        • 리소스 제한의 증가 신청
        • 서드파티 소프트웨어 지원
      • 7.2.2 Personal Health Dashboard 사용하기
      • 7.2.3 Trusted Advisor 사용하기
        • 검사 결과의 알림
        • 서비스 이용 제한 확인
      • 7.2.4 Inspector 사용하기
        • Inspector 실행
      • 7.2.5 EC2 Systems Manager 사용하기
        • SSM이 제공하는 서비스
    • 7.3 시스템 이력 관리하기
      • 7.3.1 CloudTrail 사용하기
        • CloudWatch 로그와 연계
        • CloudTrail 설정
      • 7.3.2 Config/Config Rules 사용하기
        • 서비스 연계
        • 규칙 생성
        • Config 설정
        • 기록 확인
  • 166쪽, 밑에서 7번째 줄

    PC 피어링은

    ==>

    VPC 피어링은