1장 클라우드의 역할
1.1 시스템 기반과 기존 인프라의 문제점
1.1.1 시스템 기반이란?
NOTE 업무 시스템으로 이용되고 있는 주요 서버
1.1.2 데이터 센터 보유의 문제점
1.2 클라우드 시스템이란?
1.2.1 클라우드의 서비스 체계
1.2.2 클라우드는 만능인가?
NOTE 클라우드 퍼스트(Cloud First)
1.3 주요 클라우드 서비스
1.3.1 Amazon Web Services
1.3.2 Microsoft Azure
1.3.3 IBM SoftLayer / Bluemix
1.3.4 Google Cloud Platform
1.3.5 사쿠라 클라우드
1.3.6 니프티 클라우드
1.4 클라우드 서비스의 활용 사례
1.4.1 빅 데이터
1.4.2 업무 시스템으로 클라우드 활용
1.4.3 모바일 앱의 백 엔드 기능
1.4.4 재해 복구(Disaster Recovery) 시스템
2장 AWS 기본과 계정 등록
2.1 Amazon Web Services에서 제공하는 서비스
2.1.1 컴퓨팅 관련 서비스
2.1.2 스토리지 & 콘텐츠 전송 관련 서비스
2.1.3 데이터베이스 관련 서비스
2.1.4 네트워크 관련 서비스
2.1.5 기타 서비스
2.2 AWS 클라우드 디자인 패턴
2.2.1 Multi-Server 패턴(서버의 다양화)
2.2.2 Scale Up 패턴(서버의 확장/축소)
2.2.3 DB Replication 패턴(데이터베이스 복제)
2.2.4 Functional Firewall 패턴(계층별 접속)
2.3 AWS 데이터 센터
2.3.1 리전(Region)
2.3.2 Availability Zone(AZ)
2.4 AWS 계정 등록 및 사용
2.4.1 AWS 계정 등록
2.4.2 AWS의 요금 체계와 무료 이용 한도
2.5 AWS 개발 도구
2.5.1 AWS 관리 콘솔
NOTE Web 관리 콘솔의 바로가기(Short Cut) 생성
2.5.2 AWS 명령 라인 인터페이스(CLI, Command Line Interface)
2.5.3 소프트웨어 개발 키트(SDK, Software Development Kit)
2.5.4 통합 개발 환경(IDE, Integrated Development Environment)의 플러그인(Plug-In)
3장 Web 서버 구축
3.1 Web의 구조와 HTTP 통신의 기본
3.1.1 Web 애플리케이션이란?
3.1.2 Web 서버에 대한 Request(요청)과 Response(응답)
3.1.3 Web 서버에 접속과 URL 서식
3.1.4 IP 주소와 도메인 이름
3.1.5 HTTP 통신의 구조
NOTE Well known PORT
3.2 S3를 사용한 Web 사이트 구축
3.2.1 Amazon Simple Storage Service(Amazon S3)란?
3.2.2 S3의 기본 용어
3.2.3 S3를 사용한 Web 사이트 구축
NOTE 기밀 정보 관리
3.3 EC2를 사용한 Web 서버 구축
3.3.1 Amazon Elastic Compute Cloud(Amazon EC2)란?
NOTE 사이징(Sizing)의 어려움
3.3.2 EC2의 기본 용어
3.3.3 EC2 인스턴스 기동
3.3.4 EC2 인스턴스 상태 확인
3.3.5 Web 서버 설치
NOTE 키 파일 관리
NOTE 패키지 관리 시스템
3.3.6 Web 콘텐츠 업로드와 동작 확인
NOTE SCP
3.3.7 EC2 인스턴스의 시작/정지/재기동/삭제
3.4 ELB를 사용한 부하 분산
3.4.1 커스텀 AMI에 의한 EC2 인스턴스 생성
3.4.2 ELB에 의한 부하 분산 시스템 구축
3.4.3 ELB 동작 확인
3.5 Elastic IP를 사용한 독자 도메인으로 사이트 운용
3.5.1 고정 IP 주소(Elastic IP) 할당
NOTE Elastic IP 주소 제한
3.5.2 Route 53에 의한 DNS 서버 설정
3.6 CloudFront를 사용한 데이터 전달
3.6.1 CloudFront란?
3.6.2 CloudFront를 사용한 Web 콘텐츠 배포
4장 Web 애플리케이션 서버 구축
4.1 Web 애플리케이션 아키텍처 기본
4.1.1 Web 시스템 아키텍처
4.1.2 AWS에서 Web 시스템 아키텍처
NOTE 서버리스(Serverless) 아키텍처
4.2 애플리케이션 개발 환경 구축
4.2.1 통합 개발 환경
4.2.2 Eclipse와 AWS Toolkit 설치
4.2.3 AWS Toolkit의 설정
NOTE 인증 정보 관리
4.3 MySQL에 의한 데이터베이스 서버 구축
4.3.1 Amazon Relational Database Service(RDS)란
NOTE 관계형 데이터베이스
NOTE ADO.NET
NOTE IOPS
4.3.2 보안 그룹 생성
4.3.3 Parameter Group 생성
NOTE Option Group과 Subnet Group
4.3.4 RDS 인스턴스 생성
NOTE RDS 무료 이용 한도
4.3.5 데이터 등록(AWS Toolkit에 의한 실행)
4.3.6 데이터 등록(MySQL 명령 라인에서 SQL 실행)
4.4 Tomcat을 이용한 Web 애플리케이션 서버 구축
4.4.1 Apache Tomcat이란?
4.4.2 보안 그룹 생성
4.4.3 EC2 인스턴스 시작
NOTE AWS 관리 콘솔에서 EC2 인스턴스를 생성하는 경우
4.4.4 Apache Tomcat 설치
4.4.5 JDBC 드라이버 설치
NOTE JDBC란?
4.4.6 Web 애플리케이션 Deploy
4.4.7 Tomcat 8 기동
4.4.8 Web 애플리케이션 동작 확인
4.4.9 Web 애플리케이션 서버용 AMI 생성
5장 네트워크 구축
5.1 네트워크 기초 기술
5.1.1 네트워크 Address(Network Address)
NOTE IP Address의 고갈
NOTE 네트워크 Address 부문과 호스트 Address 부문에 대한 생각
5.1.2 네트워크 프로토콜(Protocol)
5.1.3 방화벽(Firewall)과 라우터(Router)
5.2 보안 그룹(Security Group)에 의한 패킷 필터링
5.2.1 보안 그룹
5.2.2 보안 정책(Security Policy)의 검토
NOTE 방화벽 설정
5.2.3 EC2 보안 그룹 수정 절차
5.2.4 RDS 보안 그룹 수정 절차
5.2.5 보안 설정에 대한 동작 확인
5.3 VPC에 의한 가상 네트워크 구축
5.3.1 Amazon VPC란?
5.3.2 네트워크 구성의 검토
5.3.3 가상 네트워크(VPC) 생성
5.3.4 가상 라우터(인터넷 게이트웨이) 생성
5.3.5 방화벽(보안 그룹) 생성
5.3.6 서버(인스턴스) 생성
5.3.7 Load Balancer 생성
5.3.8 관리를 위한 네트워크 구성
5.3.9 Maintenance 환경 동작 확인
6장 AWS Security
6.1 Security 기초 기술
6.1.1 Security란?
NOTE Web 애플리케이션에 대한 대표적인 공격
6.1.2 물리적 보안 대책
6.1.3 계정 관리
6.1.4 데이터 암호화
6.1.5 사용자 교육
6.1.6 보안 감사
NOTE 제3자 인증에 대해서
6.1.7 AWS 공유 책임 모델
6.2 IAM을 이용한 사용자 계정 관리
6.2.1 IAM은?
6.2.2 AWS 사용자 계정
6.2.3 다요소 인증(MFA, Multi Factor Authentication) 설정
NOTE 원 타임 패스워드(OTP, One Time Password)
6.2.4 IAM 계정 생성
6.2.5 IAM 그룹 작성
6.2.6 패스워드 정책의 설정
6.3 데이터 암호화
6.3.1 EC2 인스턴스에 SSH 접속
NOTE 키 페어 Import
6.3.2 S3 데이터 암호화
6.3.3 RDS 데이터 암호화
7장 시스템 운용
7.1 시스템 운용의 기본
NOTE SLA(Service Level Agreement)
7.1.1 용량 관리
7.1.2 가용성 관리
7.1.3 구성 관리/변경 관리
7.1.4 서비스 운용
NOTE 통합 운용 관리 도구
7.2 CloudWatch에 의한 감시
7.2.1 CloudWatch란?
7.2.2 EC2 인스턴스에 대한 실시간 감시
7.3 CloudFormation에 의한 구성 관리
7.3.1 CloudFormation이란?
NOTE AWS에 의한 구성 관리
7.3.2 WordPress 환경의 자동 구성
7.4 데이터의 백업과 복구
7.4.1 EC2의 데이터 백업과 복구
7.4.2 RDS의 데이터 백업과 복구
7.5 과금 관리
7.5.1 이용 요금의 확인
8장 Docker 컨테이너 운영 환경 구축
8.1 Docker란?
8.1.1 Docker란?
NOTE 소프트웨어 이식성(Portability)
8.1.2 가상화 기술이란?
NOTE 소프트웨어의 상호 운용성(Interoperability)
8.1.3 Docker의 기능
8.2 Docker 설치
8.2.1 Docker에서 제공하는 컴포넌트
NOTE Docker for Windows/Mac
8.2.2 Windows 클라이언트에 설치
8.2.3 Docker에서 “Hello world”
8.3 Docker 이미지 생성
8.3.1 Dockerfile이란?
8.3.2 Dockerfile 생성
NOTE 참조 구현이란?
8.3.3 Dockerfile의 Docker 이미지 생성
8.4 Docker 이미지 생성
8.4.1 Docker Hub 계정 등록
8.4.2 Docker Hub에 공개
NOTE Docker에서 Java를 실행할 때 주의사항
8.5 AWS에서 Docker 컨테이너 실행
8.5.1 EC2를 사용하는 방법
8.5.2 ECS를 사용하는 방법
8.5.3 Elastic Beanstalk를 사용하는 방법
8.6 EC2에서 Docker 실행 환경의 구축
8.6.1 EC2에 대한 Docker 설치
NOTE 명령어로 Docker의 실행 환경을 구축하려면
8.6.2 Docker 컨테이너 실행
8.6.3 Docker 컨테이너의 기본 조작
8.7 EC2 Container Service에 의한 Docker 실행 환경 구축
8.7.1 EC2 Container Service란?
8.7.2 Docker 클러스터 구축
8.7.3 Docker 클러스터 운용
Index