65
웨비나 시리즈 2015 | 네 번째 강연 2015년 7월 7일 화요일 | 오후 2시 http://aws.amazon.com/ko AWS로 사용자 천만 명 서비스 만들기

AWS로 사용자 천만 명 서비스 만들기 (윤석찬) - AWS 웨비나 시리즈 2015

Embed Size (px)

Citation preview

Page 1: AWS로 사용자 천만 명 서비스 만들기 (윤석찬) - AWS 웨비나 시리즈 2015

웨비나 시리즈 2015 | 네 번째 강연 2015년 7월 7일 화요일 | 오후 2시

http://aws.amazon.com/ko

AWS로 사용자 천만 명 서비스 만들기

Page 2: AWS로 사용자 천만 명 서비스 만들기 (윤석찬) - AWS 웨비나 시리즈 2015

윤석찬, Tech Evangelist http://twitter.com/channyun http://facebook.com/channyblog http://channy.creation.net

Page 3: AWS로 사용자 천만 명 서비스 만들기 (윤석찬) - AWS 웨비나 시리즈 2015

이번 웨비나에서 들으실 내용..

AWS 클라우드를 활용하면 사용자의 트래픽에 따라 아키텍처를 확장할

수 있습니다. 이 강연에서는 적은 트래픽에 대응할 수 있는 단순한 아키

텍처로 시작해 수백만 사용자 트래픽을 지탱할 수 있는 고확장성 아키

텍처에 이르기까지의 단계별 아키텍처 구성 방법에 대해 알아봅니다.

Page 4: AWS로 사용자 천만 명 서비스 만들기 (윤석찬) - AWS 웨비나 시리즈 2015

v  AWS로 천만 사용자를 어떻게?

확장성(Scalability)

Page 5: AWS로 사용자 천만 명 서비스 만들기 (윤석찬) - AWS 웨비나 시리즈 2015

v  

읽을게 너무 많아요 ㅠㅠ

어떻게 시작해야 할까요?

Page 6: AWS로 사용자 천만 명 서비스 만들기 (윤석찬) - AWS 웨비나 시리즈 2015

v  Auto Scaling는 훌륭한 도구이나 만능은 아닙니다!

Page 7: AWS로 사용자 천만 명 서비스 만들기 (윤석찬) - AWS 웨비나 시리즈 2015

v  

무엇부터 시작할까요?

Page 8: AWS로 사용자 천만 명 서비스 만들기 (윤석찬) - AWS 웨비나 시리즈 2015

v  

몇 가지 기초 지식…

Page 9: AWS로 사용자 천만 명 서비스 만들기 (윤석찬) - AWS 웨비나 시리즈 2015

선투자금 없음 고정비용에서 가변비용으로

규모의 경제 단일회사 이상의 TCO절감을

가격에 반영

탄력적인 처리용량 필요한 처리용량 예측 불필요

오버프로비저닝 방지

48 PRICE

REDUCTIONS

속도와 민첩성(agility) 인프라를 주단위가 아닌 분

단위로 프로비저닝

비지니스에 집중 핵심 서비스에만 집중 가능

글로벌 진출 수분 내에 글로벌 고객들을

위한 서비스 런칭

클라우드 컴퓨팅의 이점

Page 10: AWS로 사용자 천만 명 서비스 만들기 (윤석찬) - AWS 웨비나 시리즈 2015

AWS를 사용하는 스타트업의 약진! 핵심 역량에만 집중하여 빠른 비지니스 대처

Media Hotels

클라우드를 통한 민첩성으로 시장 파괴

Game

Page 11: AWS로 사용자 천만 명 서비스 만들기 (윤석찬) - AWS 웨비나 시리즈 2015

11 리전 - Regions US-WEST (Oregon)

EU-WEST (Ireland)

ASIA PAC (Tokyo)

US-WEST (N. California)

SOUTH AMERICA (Sao

Paulo)

US-EAST (Virginia)

AWS GovCloud (US)

ASIA PAC (Sydney)

ASIA PAC (Singapore)

CHINA (Beijing)

EU-CENTRAL (Frankfurt)

•  모든 Region은 2개 이상의 AZ로 구성

Page 12: AWS로 사용자 천만 명 서비스 만들기 (윤석찬) - AWS 웨비나 시리즈 2015

US-WEST (Oregon)

EU-WEST (Ireland)

ASIA PAC (Tokyo)

US-WEST (N. California)

SOUTH AMERICA (Sao

Paulo)

US-EAST (Virginia)

AWS GovCloud (US)

ASIA PAC (Sydney)

ASIA PAC (Singapore)

CHINA (Beijing)

30 가용존 - Availability Zones EU-CENTRAL (Frankfurt)

•  AZ는 전력, 인터넷, 물리적 으로 독립 •  AZ는 1개 이상의 데이터센터로 구성 (AZ간 latency 2ms이하)

Page 13: AWS로 사용자 천만 명 서비스 만들기 (윤석찬) - AWS 웨비나 시리즈 2015

53 엣지 - Edge locations

•  콘텐츠 배포 네트워크 및 도메인 네임 서비스 제공 •  한국에 2개의 엣지가 있음

Page 14: AWS로 사용자 천만 명 서비스 만들기 (윤석찬) - AWS 웨비나 시리즈 2015

v  

폭넓은 서비스 분야 및 전문성

Administration & Security

Access Control

Identity Management

Key Management & Storage

Monitoring & Logs

Resource & Usage Auditing

Platform Services

Analytics App Services Developer Tools & Operations Mobile Services

Data Pipelines

Data Warehouse

Hadoop

Real-time Streaming Data

Application Lifecycle Management

Containers

Deployment

DevOps

Event-driven Computing

Resource Templates

Identity

Mobile Analytics

Push Notifications

Sync

App Streaming

Email

Queuing & Notifications

Search

Transcoding

Workflow

Core Services

CDN Compute (VMs, Auto-scaling, and Load Balancing)

Databases (Relational, NoSQL, and Caching)

Networking (VPC, DX, and DNS)

Storage (Object, Block, EFS, and Archival)

Infrastructure Availability Zones

Points of Presence Regions

Enterprise Applications

Business Email

Sharing & Collaboration

Virtual Desktop

Technical & Business Support

Account Management

Partner Ecosystem

Professional Services

Security & Pricing Reports

Solutions Architects Support Training &

Certification

Machine Learning

Page 15: AWS로 사용자 천만 명 서비스 만들기 (윤석찬) - AWS 웨비나 시리즈 2015

v  

Security is the #1 Priority on AWS 보안 요구 사항에 적합한 아키텍쳐

주요 업무에 대한 보안 감사 및 인증 획득

우리 경험에 따르면 AWS 클라우드 환경이 자체 데이터 센터 보다 보안이 더 강화되었다고 생각합니다. “Based on our experience, I believe that we can be even more secure in the AWS cloud than in our own data centers.”

-Tom Soderstrom, CTO, NASA JPL

http://aws.amazon.com/ko/security

Page 16: AWS로 사용자 천만 명 서비스 만들기 (윤석찬) - AWS 웨비나 시리즈 2015

Gartner Magic Quadrant for Cloud Infrastructure as a Service, Worldwide

Gartner “Magic Quadrant for Cloud Infrastructure as a Service, Worldwide,” Lydia Leong, Douglas Toombs, Bob Gill, May 18, 2015. This Magic Quadrant graphic was published by Gartner, Inc. as part of a larger research note and should be evaluated in the context of the entire report. The Gartner report is available at http://aws.amazon.com/resources/analyst-reports/. Gartner does not endorse any vendor, product or service depicted in its research publications, and does not advise technology users to select only those vendors with the highest ratings or other designation. Gartner research publications consist of the opinions of Gartner's research organization and should not be construed as statements of fact. Gartner disclaims all warranties, expressed or implied, with respect to this research, including any warranties of merchantability or fitness for a particular purpose.

Page 17: AWS로 사용자 천만 명 서비스 만들기 (윤석찬) - AWS 웨비나 시리즈 2015

v  

고객 피드백에 따른 지속적 서비스 혁신 •  AWS 서비스가 시작한 이후:

•  1,407회의 신규 서비스 및 기능 추가 •  40여개 이상의 주요 서비스 출시 •  48번의 자체적인 가격 인하 단행

2010

Amazon SNS

AWS Identity & Access Management Amazon Route 53

61

2011

Amazon ElastiCache

Amazon SES

AWS CloudFormation

AWS Direct Connect

AWS Elastic Beanstalk

GovCloud

82 Amazon CloudTrail

Amazon CloudHSM

Amazon WorkSpaces

Amazon Kinesis

Amazon Elastic Transcoder

Amazon AppStream

AWS OpsWorks

280

2013

Amazon SWF

Amazon Redshift

Amazon Glacier

Amazon Dynamo DB Amazon CloudSearch

AWS Storage Gateway

AWS Data Pipeline

159

2012

516

*as of April 30, 2015 2014

Amazon Cognito

Amazon WorkDoc

Amazon Mobile Analytics

AWS Directory Service

Amazon RDS for Aurora

AWS CodeDeploy

AWS Lambda

AWS Config

AWS Key Management Service

AWS Service Catalog

Amazon EC2 Container Service

AWS CodePipeline

AWS CodeCommit

2015

+234 Amazon WorkMail

Amazon Elastic File System

Amazon Machine Learning

Page 18: AWS로 사용자 천만 명 서비스 만들기 (윤석찬) - AWS 웨비나 시리즈 2015

Mobile

Push Notifications

Mobile Analytics Cognito Cognito

Sync

Analytics

Kinesis Data Pipeline RedShift EMR

AWS Global Infrastructure

Your Applications

AWS Global Infrastructure 11 Regions 30 Availability Zones 53 Edge Locations

Network

VPC Direct Connect Route 53

API

Human Interaction

Support

Web Console

Interaction

Command Line

Libraries, SDK’s

Storage

EBS S3 Glacier CloudFront

Database

DynamoDB RDS ElastiCache

Deployment & Management

Elastic Beanstalk OpsWorks Cloud

Formation Code

Deploy Code

Pipeline Code

Commit

Security & Administration

CloudWatch Config Cloud Trail IAM Directory KMS

Application

SQS SWF App Stream

Elastic Transcoder SES Cloud

Search SNS

Enterprise Applications

WorkSpaces WorkMail WorkDocs

Compute

EC2 ELB Auto Scaling Lambda ECS

Page 19: AWS로 사용자 천만 명 서비스 만들기 (윤석찬) - AWS 웨비나 시리즈 2015

AWS 활용 = Building Block 조립

비지니스 요구 사항에 맞는 40여개 이상의 서비스 조립을 통해 유연한 활용 가능

Page 20: AWS로 사용자 천만 명 서비스 만들기 (윤석찬) - AWS 웨비나 시리즈 2015

첫날! 첫 사용자!

Page 21: AWS로 사용자 천만 명 서비스 만들기 (윤석찬) - AWS 웨비나 시리즈 2015

첫날! 사용자 1명

• 싱글 EC2 instance •  한 서버에 풀스택 가능

•  웹 서버 •  데이터베이스 •  시스템 운영

• 싱글 Elastic IP • DNS: Amazon Route 53

EC2 instance

Elastic IP

Amazon Route 53

User

Page 22: AWS로 사용자 천만 명 서비스 만들기 (윤석찬) - AWS 웨비나 시리즈 2015

v  

Amazon Elastic Compute Cloud

•  Amazon EC2 •  가상머신(Instance)- 다양한

운영체제 지원 –  AMI (머신 이미지) –  스냅샷/백업 재사용 가능

•  다양한 컴퓨팅 옵션 선택 가능: 37가지 인스턴스 타입

Instance family

Instance generation

Instance size

c4.large

Page 23: AWS로 사용자 천만 명 서비스 만들기 (윤석찬) - AWS 웨비나 시리즈 2015

v  

Amazon Route 53

• 가용성과 확장성이 뛰어난 클라우드 DNS • 동적으로 사용자에게 노출될 DNS 레코드 타입과 값 조정 • 각종 다양한 로드밸런싱 기능 지원

Amazon Route 53

Amazon EC2 Amazon EC2

OK FAIL 10ms 100ms

Page 24: AWS로 사용자 천만 명 서비스 만들기 (윤석찬) - AWS 웨비나 시리즈 2015

v  

트래픽↗ “좀 더 성능 좋은 인스턴스!” • 스케일업(Scale-Up) • 가장 빠르고 간단한 접근 • 요구사항에 최적의 높은 사양 • High I/O 기반 인스턴스 • 메모리 기반 인스턴스 • CPU 기반 인스턴스 • 스토리지 기반 인스턴스

• 인스턴스 종류 변경 쉬움

고려 사항: 트래픽이 꽉찬다면?

2 vCPU 7.5 GiB Memory $0.203/hour m3.large

m3.xlarge

4 vCPU 15 GiB Memory $0.405/hour

m3.2xlarge

8 vCPU 30 GiB Memory $0.810/hour

Page 25: AWS로 사용자 천만 명 서비스 만들기 (윤석찬) - AWS 웨비나 시리즈 2015

첫날! 사용자 1명

• 애플리케이션에 따라 일정 트래픽 이상은 처리 어려움 • 너무 많은 기능을 한 인스턴스에 있다면?

• 장애 복구의 어려움 • 증설의 어려움

EC2 Instance

Elastic IP

Amazon Route 53

User

Page 26: AWS로 사용자 천만 명 서비스 만들기 (윤석찬) - AWS 웨비나 시리즈 2015

둘째날! 사용자 1명 이상

하나의 인스턴스를 2개로 나눈다! • 웹 서버 • 데이터베이스

Web Instance

Database Instance

Elastic IP

Amazon Route 53

User

Page 27: AWS로 사용자 천만 명 서비스 만들기 (윤석찬) - AWS 웨비나 시리즈 2015

직접 운영 관리 서비스 선택

Amazon EC2 직접 설치

원하는 데이터 베이스를 선택

하여 운영

라이센스/백업 등 직접 운영

Amazon DynamoDB

SSD 스토리지기반

NoSQL DB

중단없는 확장성 및 관리 필요 없음

Amazon RDS

MySQL Microsoft SQL

Oracle PostgreSQL

매니지드서비스

라이센스/백업등 기본 제공

Amazon Redshift

대용량 병렬 페타바이트급 데이터웨어

서비스

빠르고 강력한 확장성 제공

데이터베이스 선택 사항

Page 28: AWS로 사용자 천만 명 서비스 만들기 (윤석찬) - AWS 웨비나 시리즈 2015

v  

RDB? NoSQL?

Page 29: AWS로 사용자 천만 명 서비스 만들기 (윤석찬) - AWS 웨비나 시리즈 2015

v  

관계형 데이터베이스

• 기존에 개발된 애플리케이션을 사용하는 경우 • 다양한 샘플, 커뮤니티 및 기술 정보 습득 가능 • RDB를 통해서도 천만 사용자 확장 가능

Page 30: AWS로 사용자 천만 명 서비스 만들기 (윤석찬) - AWS 웨비나 시리즈 2015

v  

NoSQL를 선택하는 경우? • 메타데이터나 로그 기반 데이터 셋 • 데이터 속성상 관계(Relation)이 없는 경우 • 응답률이 빠른 대용량 데이터를 다루는 경우 (테라급) • 데이터를 대량으로 추가하는 경우 (초당 수천건)

Page 31: AWS로 사용자 천만 명 서비스 만들기 (윤석찬) - AWS 웨비나 시리즈 2015

v  

Amazon DynamoDB • 빠르고 성능 예측이 가능한 분산 NoSQL • 평균 서비스 지연 시간은 보통 수 밀리초 미만 • 문서 데이터 구조와 키 값 데이터 구조를 모두 지원

• 확장 및 용량 등 매니지드 서비스로 제공 • HDD가 아니라 SSD 기반이라 빠른 속도 • 경험이 적은 운영 노하우 부분의 걱정을 덜 수 있음

Page 32: AWS로 사용자 천만 명 서비스 만들기 (윤석찬) - AWS 웨비나 시리즈 2015

사용자 >100

하나의 인스턴스를 2개로 나눈다! • 웹 서버 • 데이터베이스 • Amazon RDS 선택!

Web instance

Elastic IP

RDS DB instance

Amazon Route 53

User

Page 33: AWS로 사용자 천만 명 서비스 만들기 (윤석찬) - AWS 웨비나 시리즈 2015

사용자 > 1000

장애 복구 및 증설 이슈를 해결해보자!: • 로드밸런서 구성 • Elastic Load Balancer 활용 • 웹서버를 멀티 AZ에 구성 • RDS의 마스터-슬레이브를 멀티 AZ에 구성

Web Instance

RDS DB Instance Active (Multi-AZ) Availability Zone Availability Zone

Web Instance

RDS DB Instance Standby (Multi-AZ)

Elastic Load Balancer

Amazon Route 53

User

Page 34: AWS로 사용자 천만 명 서비스 만들기 (윤석찬) - AWS 웨비나 시리즈 2015

v  •  멀티 AZ 기반 EC2인스턴스 사이의 로드 분산 •  고 확장성 애플리케이션 제공 가능

주요 기능 상세 정보 Available 멀티 Availability Zone 기반의 인

스턴스 로드 분산 서비스 Health checks 자동으로 인스턴스가 서비스 중인

지 아닌지 체크 가능

Session stickiness

같은 인스턴스로 요청 처리 가능

Secure sockets layer

SSL 보안 트래픽 처리 가능 및 다양한 암호 알고리즘 지원

Monitoring CloudWatch를 통해 로그 제공 및 모니터링 가능

Elastic Load Balancer

Elastic Load Balancer(ELB)

Page 35: AWS로 사용자 천만 명 서비스 만들기 (윤석찬) - AWS 웨비나 시리즈 2015

v  

수평적 확장을 위한 기본 클라우드 아키텍처

Page 36: AWS로 사용자 천만 명 서비스 만들기 (윤석찬) - AWS 웨비나 시리즈 2015

사용자: 1만~10만

RDS DB Instance Active (Multi-AZ)

Availability Zone Availability Zone

RDS DB Instance Standby (Multi-AZ)

Elastic Load Balancer

RDS DB Instance Read Replica

RDS DB Instance Read Replica

RDS DB Instance Read Replica

RDS DB Instance Read Replica

Web Instance

Web Instance

Web Instance

Web Instance

Web Instance

Web Instance

Web Instance

Web Instance

Amazon Route 53

User

Page 37: AWS로 사용자 천만 명 서비스 만들기 (윤석찬) - AWS 웨비나 시리즈 2015

v  

성능과 효율성을 위한 고급 클라우드 아키텍처

Page 38: AWS로 사용자 천만 명 서비스 만들기 (윤석찬) - AWS 웨비나 시리즈 2015

Web Instance

RDS DB Instance Active (Multi-AZ)

Availability Zone

Elastic Load Balancer

Amazon Route 53

User

웹서버 및 데이터베이스의 일부 로드 분산:

어떻게?

1. 로드 분산

Page 39: AWS로 사용자 천만 명 서비스 만들기 (윤석찬) - AWS 웨비나 시리즈 2015

Web Instance

RDS DB Instance Active (Multi-AZ)

Availability Zone

Elastic Load Balancer

Amazon S3

Amazon Cloudfront

Amazon Route 53

User

웹서버 및 데이터베이스의 일부 로드 분산: • 정적 콘텐츠를 Amazon S3 및 CloudFront로 이전 • CSS/JS 파일 • 사용자 업로드 이미지

1. 로드 분산

Page 40: AWS로 사용자 천만 명 서비스 만들기 (윤석찬) - AWS 웨비나 시리즈 2015

v  

Amazon Simple Storage Service • Amazon S3- 개체 기반 스토리지 • 99.999999999% 내구성 • 주요 활용처: • 정적파일( css, js, images, videos ) • 백업 및 로그 • 지속적 파일 추가 • 다운로드 파일 배포

•  “무제한 확장” – 파일별 5TB 크기까지 • 정적 웹 사이트 호스팅 가능

1 TB raw storage 800 GB usable storage

600 GB allocated storage 400 GB application data

쓴만큼만 내자!

Page 41: AWS로 사용자 천만 명 서비스 만들기 (윤석찬) - AWS 웨비나 시리즈 2015

v  

Amazon CloudFront •  정적/동적 컨텐츠 가속 •  HTTP/HTTPS 서비스 •  맞춤 오류 응답 •  쿠키/헤더 오리진 서버 전달 •  다양한 통계 보고서 •  컨텐츠 보안

• Signed URL, Signed Cookie •  API 호출 감사 : CloudTrail 연계 •  업로드 가속

Resp

onse

Tim

e

Serv

er L

oad

Resp

onse

Ti

me

Serv

er

Load

Resp

onse

Ti

me

Serv

er

Load

No CDN CDN for Static Content

CDN for Static & Dynamic

Content

Page 42: AWS로 사용자 천만 명 서비스 만들기 (윤석찬) - AWS 웨비나 시리즈 2015

1. 로드 분산 웹서버 및 데이터베이스의 일부 로드 분산:

• 세션/상태 및 DB 캐시의 경우 Amazon ElastiCache 및 Amazon DynamoDB로 이동

Web Instance

RDS DB Instance Active (Multi-AZ)

Availability Zone

Elastic Load Balancer

Amazon S3

Amazon Cloudfront

Amazon Route 53

User

ElastiCache

DynamoDB

Page 43: AWS로 사용자 천만 명 서비스 만들기 (윤석찬) - AWS 웨비나 시리즈 2015

v  

Amazon ElastiCache

• 인메모리기반 캐시 서비스 • Memcached & Redis 지원 • 기존 오픈 소스 기반 API를 그대로 사용 가능

• 하나 부터 다수 노드 구성 가능 • 자가 치료(죽은 인스턴스 대체) • 빠른 속도(지연율 수 밀리세컨드)

Page 44: AWS로 사용자 천만 명 서비스 만들기 (윤석찬) - AWS 웨비나 시리즈 2015

1. 로드 분산 웹서버 및 데이터베이스의 일부 로드 분산: • 동적 콘텐츠에 대해서도 ELB에서 CloudFront 이동 • (모든 웹 페이지에 대해 캐싱 처리)

Web Instance

RDS DB Instance Active (Multi-AZ)

Availability Zone

Elastic Load Balancer

Amazon S3

Amazon Cloudfront

Amazon Route 53

User

ElastiCache

DynamoDB

Page 45: AWS로 사용자 천만 명 서비스 만들기 (윤석찬) - AWS 웨비나 시리즈 2015

v  자동 스케일인/아웃 트래픽에 따라 인스턴스를 자동으로 증설 혹은 감소하는 기능

주요 기능 상세 소개

Control 확장이 필요할 때, 최소 및 최대 인스턴스 숫자를 세팅하여 제공

Monitoring CloudWatch 를 통해 확장할 기준 값을 확인 가능

Instance types

VPC호환 및 온디멘드 및 스팟 인스턴스 사용 가능

$ aws autoscaling create-auto-scaling-group --auto-scaling-group-name MyGroup --launch-configuration-name MyConfig --min-size 4 --max-size 200 --availability-zones us-west-2c, us-west-2b

2. 오토 스케일링 Amazon

CloudWatch

AWS CLI

Page 46: AWS로 사용자 천만 명 서비스 만들기 (윤석찬) - AWS 웨비나 시리즈 2015

# instances vs. CPU utilization 5월 어느날.!

2. 오토 스케일링

Page 47: AWS로 사용자 천만 명 서비스 만들기 (윤석찬) - AWS 웨비나 시리즈 2015

사용자 >50만+

Availability Zone

Amazon Route 53

User

Amazon S3

Amazon Cloudfront

Availability Zone

Elastic Load Balancer

DynamoDB RDS DB Instance

Read Replica

Web Instance

Web Instance

Web Instance

ElastiCache RDS DB Instance Read Replica

Web Instance

Web Instance

Web Instance

ElastiCache RDS DB Instance Standby (Multi-AZ)

RDS DB Instance Active (Multi-AZ)

Page 48: AWS로 사용자 천만 명 서비스 만들기 (윤석찬) - AWS 웨비나 시리즈 2015

v  

3. 자동화 및 모니터링

• 손으로 하지 말고 관리도구를 쓰세요! • 모든 것을 모니터링 하세요!

Page 49: AWS로 사용자 천만 명 서비스 만들기 (윤석찬) - AWS 웨비나 시리즈 2015

v  

AWS 관리 서비스

편리성 제어 가능

손쉬운 관리 도구 직접 설정 가능

AWS Elastic Beanstalk

AWS OpsWorks

AWS CloudFormation Amazon EC2

Page 50: AWS로 사용자 천만 명 서비스 만들기 (윤석찬) - AWS 웨비나 시리즈 2015

v  

Host Level Metrics Aggregate Level Metrics

Logstash: Centralized Log Analysis Pingdom: External Site Monitoring

AWS 모니터링 서비스

AWS CloudWatch

Page 51: AWS로 사용자 천만 명 서비스 만들기 (윤석찬) - AWS 웨비나 시리즈 2015

v  

4. 마이크로서비스 • 앱 내부 컴포넌트를 느슨하게 분리 • 컴포넌트간 인터랙션 결합제거 (decoupling) • 모든 기능을 하나에 올리기 보다는 확장성 및 증설을 염두하여 기능 개발 (API 기반)

Controller A Controller B

Controller A Controller B

Q Q

Tight coupling

Amazon Simple Queue Service 활용 사례

Loose coupling

Page 52: AWS로 사용자 천만 명 서비스 만들기 (윤석찬) - AWS 웨비나 시리즈 2015

v  

5. 서비스 재활용

활용 사례: • Email • Queuing • Transcoding • Search • Monitoring • Metrics •  Logging

Amazon CloudSearch Amazon SQS Amazon SNS

Amazon Elastic Transcoder

Amazon SWF Amazon SES

AWS의 다양한 서비스를 이용하여 새로 만들지 말고 바로 활용하자!

Page 53: AWS로 사용자 천만 명 서비스 만들기 (윤석찬) - AWS 웨비나 시리즈 2015

v  

사용자 >1백만+ 1백만 사용자일때 다시 한번 고려해야 할 사항:

• Tier별 Elastic Load Balancer • 멀티 AZ 아키텍쳐 • 오토 스케일링 • 마이크로서비스 아키텍쳐 • 효과적 콘텐츠 제공(Amazon S3/CloudFront/Route 53) • DB 캐싱

Page 54: AWS로 사용자 천만 명 서비스 만들기 (윤석찬) - AWS 웨비나 시리즈 2015

RDS DB Instance Active (Multi-AZ)

Availability Zone

Elastic Load Balancer

RDS DB Instance Read Replica

RDS DB Instance Read Replica

Web Instance

Web Instance

Web Instance

Web Instance

Amazon Route 53

User

Amazon S3

Amazon Cloudfront

DynamoDB

Amazon SQS

ElastiCache

Worker Instance

Worker Instance

Amazon CloudWatch

Internal App Instance

Internal App Instance

Amazon SES

사용자 >1백만+

Page 55: AWS로 사용자 천만 명 서비스 만들기 (윤석찬) - AWS 웨비나 시리즈 2015

Mobile Client

Route 53

CloudFront

Amazon S3 Static Contents &

Logs CloudWatch

Elastic Load

Balancing

RDS (Multi-AZ)

ElastiCache

ElastiCache

API Servers

API Servers

Workers & MQ

Workers & MQ servers

AWS Tokyo region

Avability Zone #1vai

Availability Zone #2

Ansible

Origin-Access Identity Signed-

URL

DynamoDB

RDS DB

AutoScaling

사례: 비트앱

Page 56: AWS로 사용자 천만 명 서비스 만들기 (윤석찬) - AWS 웨비나 시리즈 2015

v  

사용자: 1백만~ 1천만

마스터 DB에 뭔가 문제가 일어날 확률이 높습니다! 어떻게 해결해야 할까?

Page 57: AWS로 사용자 천만 명 서비스 만들기 (윤석찬) - AWS 웨비나 시리즈 2015

1. DB 분리: Federation

•  데이터베이스를 기능 및 목적에 따라 분리

•  But, 각 DB를 포함하는 기능에 대한 쿼리가 힘듬 ForumsDB UsersDB ProductsDB

Page 58: AWS로 사용자 천만 명 서비스 만들기 (윤석찬) - AWS 웨비나 시리즈 2015

2. DB 수평적 확장: Sharding

•  애플리케이션 레이어에서 제어 가능/확장성에 이슈는 없음

•  But, 앱 복잡성 증가

Page 59: AWS로 사용자 천만 명 서비스 만들기 (윤석찬) - AWS 웨비나 시리즈 2015

v  

3. NoSQL로 이동

• DynamoDB와 같은 매니지드 서비스 활용 •  주요 케이스: • 클릭 데이터나 로그 데이터 추가 • 임시 데이터 (장바구니) • 업데이트가 잦은 “Hot” 테이블 • 메타 데이터 저장 및 검색

DynamoDB

Page 60: AWS로 사용자 천만 명 서비스 만들기 (윤석찬) - AWS 웨비나 시리즈 2015

v  

정리 들어갑니다…

Page 61: AWS로 사용자 천만 명 서비스 만들기 (윤석찬) - AWS 웨비나 시리즈 2015

v  

천만 사용자를 위한 십계명

1.  인프라를 Multi-AZ로 구성하세요 2.  스스로 확장 가능한 서비스로 만드세요- ELB, Amazon

S3, Amazon SNS, Amazon SQS, Amazon SWF, Amazon SES, and more.

3.  모든 영역에서 증설을 감안하세요. 4.  인프라 내외부의 캐시를 적극 활용하세요. 5.  인프라 운영을 자동화 하세요.

Page 62: AWS로 사용자 천만 명 서비스 만들기 (윤석찬) - AWS 웨비나 시리즈 2015

v  

6.  한곳에 모니터링/로깅/통계 처리를 구축하세요. 7.  서비스를 작게 쪼개서 MicroServices 아키텍쳐를 구

성하세요. 8.  오토스케일링 적극 사용하세요. 9.  직접 만들지 말고 AWS 서비스를 활용하세요. 10.  가장 중요한 시간과 돈을 아끼세요!

Page 63: AWS로 사용자 천만 명 서비스 만들기 (윤석찬) - AWS 웨비나 시리즈 2015

v  

사용자 > 1천만+을 위한 조언 • 전 영역에 대한 아키텍쳐 튜닝 • 애플리케이션 레벨의 튜닝 필요 • API 기반 앱 기능 및 서비스 단위의 분리

• 글로벌 고가용성 • Multi-AZ에서 Multi-region

• DevOpS 기반 앱 배포 및 통합 도구 활용 • 지속적 배포(CD) 및 지속적 통합(CI)

• 콘테이너 서비스 • 자원 절약 및 마이크로서비스

Page 64: AWS로 사용자 천만 명 서비스 만들기 (윤석찬) - AWS 웨비나 시리즈 2015

온라인 자습 및 실습

다양한 온라인 강의 자료 및 실습을 통해 AWS에 대한 기초적인 사용법 및 활용 방법을 익히

실 수 있습니다.

강의식 교육

AWS 전문 강사가 진행하는 강의를 통해 AWS 클라우드로 고가용성,

비용 효율성을 갖춘 안전한 애플리케이션을 만드는 방법을 알아보세요. 아키텍쳐 설계 및 구현에 대한 다양한 오프라인 강의가 개설되어

있습니다.

인증 시험을 통해 클라우드에 대한 자신의 전문 지식 및 경험을 공인받고 개발 경력을 제시할 수 있습

니다.

AWS 공인 자격증

http://aws.amazon.com/ko/training

다양한 교육 프로그램

Page 65: AWS로 사용자 천만 명 서비스 만들기 (윤석찬) - AWS 웨비나 시리즈 2015

AWS 웨비나 시리즈에 참여해 주셔서 감사합니다! 이번 웨비나가 여러분의 궁금증 해소에 도움이 되었길 바랍니다. 이후 이어질 설문 조사를 통해 오늘 웨비나에 대한 의견을 알려주세요. [email protected] http://twitter.com/AWSKorea http://facebook.com/AmazonWebServices.ko http://youtube.com/user/AWSKorea http://slideshare.net/AWSKorea