Upload
amazon-web-services-korea
View
655
Download
8
Embed Size (px)
Citation preview
웨비나 시리즈 2015 | 네 번째 강연 2015년 7월 7일 화요일 | 오후 2시
http://aws.amazon.com/ko
AWS로 사용자 천만 명 서비스 만들기
윤석찬, Tech Evangelist http://twitter.com/channyun http://facebook.com/channyblog http://channy.creation.net
이번 웨비나에서 들으실 내용..
AWS 클라우드를 활용하면 사용자의 트래픽에 따라 아키텍처를 확장할
수 있습니다. 이 강연에서는 적은 트래픽에 대응할 수 있는 단순한 아키
텍처로 시작해 수백만 사용자 트래픽을 지탱할 수 있는 고확장성 아키
텍처에 이르기까지의 단계별 아키텍처 구성 방법에 대해 알아봅니다.
v AWS로 천만 사용자를 어떻게?
확장성(Scalability)
v
읽을게 너무 많아요 ㅠㅠ
어떻게 시작해야 할까요?
v Auto Scaling는 훌륭한 도구이나 만능은 아닙니다!
v
무엇부터 시작할까요?
v
몇 가지 기초 지식…
선투자금 없음 고정비용에서 가변비용으로
규모의 경제 단일회사 이상의 TCO절감을
가격에 반영
탄력적인 처리용량 필요한 처리용량 예측 불필요
오버프로비저닝 방지
48 PRICE
REDUCTIONS
속도와 민첩성(agility) 인프라를 주단위가 아닌 분
단위로 프로비저닝
비지니스에 집중 핵심 서비스에만 집중 가능
글로벌 진출 수분 내에 글로벌 고객들을
위한 서비스 런칭
클라우드 컴퓨팅의 이점
AWS를 사용하는 스타트업의 약진! 핵심 역량에만 집중하여 빠른 비지니스 대처
Media Hotels
클라우드를 통한 민첩성으로 시장 파괴
Game
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로 구성
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이하)
53 엣지 - Edge locations
• 콘텐츠 배포 네트워크 및 도메인 네임 서비스 제공 • 한국에 2개의 엣지가 있음
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
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
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
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.
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
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
AWS 활용 = Building Block 조립
비지니스 요구 사항에 맞는 40여개 이상의 서비스 조립을 통해 유연한 활용 가능
첫날! 첫 사용자!
첫날! 사용자 1명
• 싱글 EC2 instance • 한 서버에 풀스택 가능
• 웹 서버 • 데이터베이스 • 시스템 운영
• 싱글 Elastic IP • DNS: Amazon Route 53
EC2 instance
Elastic IP
Amazon Route 53
User
v
Amazon Elastic Compute Cloud
• Amazon EC2 • 가상머신(Instance)- 다양한
운영체제 지원 – AMI (머신 이미지) – 스냅샷/백업 재사용 가능
• 다양한 컴퓨팅 옵션 선택 가능: 37가지 인스턴스 타입
Instance family
Instance generation
Instance size
c4.large
v
Amazon Route 53
• 가용성과 확장성이 뛰어난 클라우드 DNS • 동적으로 사용자에게 노출될 DNS 레코드 타입과 값 조정 • 각종 다양한 로드밸런싱 기능 지원
Amazon Route 53
Amazon EC2 Amazon EC2
OK FAIL 10ms 100ms
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
첫날! 사용자 1명
• 애플리케이션에 따라 일정 트래픽 이상은 처리 어려움 • 너무 많은 기능을 한 인스턴스에 있다면?
• 장애 복구의 어려움 • 증설의 어려움
EC2 Instance
Elastic IP
Amazon Route 53
User
둘째날! 사용자 1명 이상
하나의 인스턴스를 2개로 나눈다! • 웹 서버 • 데이터베이스
Web Instance
Database Instance
Elastic IP
Amazon Route 53
User
직접 운영 관리 서비스 선택
Amazon EC2 직접 설치
원하는 데이터 베이스를 선택
하여 운영
라이센스/백업 등 직접 운영
Amazon DynamoDB
SSD 스토리지기반
NoSQL DB
중단없는 확장성 및 관리 필요 없음
Amazon RDS
MySQL Microsoft SQL
Oracle PostgreSQL
매니지드서비스
라이센스/백업등 기본 제공
Amazon Redshift
대용량 병렬 페타바이트급 데이터웨어
서비스
빠르고 강력한 확장성 제공
데이터베이스 선택 사항
v
RDB? NoSQL?
v
관계형 데이터베이스
• 기존에 개발된 애플리케이션을 사용하는 경우 • 다양한 샘플, 커뮤니티 및 기술 정보 습득 가능 • RDB를 통해서도 천만 사용자 확장 가능
v
NoSQL를 선택하는 경우? • 메타데이터나 로그 기반 데이터 셋 • 데이터 속성상 관계(Relation)이 없는 경우 • 응답률이 빠른 대용량 데이터를 다루는 경우 (테라급) • 데이터를 대량으로 추가하는 경우 (초당 수천건)
v
Amazon DynamoDB • 빠르고 성능 예측이 가능한 분산 NoSQL • 평균 서비스 지연 시간은 보통 수 밀리초 미만 • 문서 데이터 구조와 키 값 데이터 구조를 모두 지원
• 확장 및 용량 등 매니지드 서비스로 제공 • HDD가 아니라 SSD 기반이라 빠른 속도 • 경험이 적은 운영 노하우 부분의 걱정을 덜 수 있음
사용자 >100
하나의 인스턴스를 2개로 나눈다! • 웹 서버 • 데이터베이스 • Amazon RDS 선택!
Web instance
Elastic IP
RDS DB instance
Amazon Route 53
User
사용자 > 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
v • 멀티 AZ 기반 EC2인스턴스 사이의 로드 분산 • 고 확장성 애플리케이션 제공 가능
주요 기능 상세 정보 Available 멀티 Availability Zone 기반의 인
스턴스 로드 분산 서비스 Health checks 자동으로 인스턴스가 서비스 중인
지 아닌지 체크 가능
Session stickiness
같은 인스턴스로 요청 처리 가능
Secure sockets layer
SSL 보안 트래픽 처리 가능 및 다양한 암호 알고리즘 지원
Monitoring CloudWatch를 통해 로그 제공 및 모니터링 가능
Elastic Load Balancer
Elastic Load Balancer(ELB)
v
수평적 확장을 위한 기본 클라우드 아키텍처
사용자: 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
v
성능과 효율성을 위한 고급 클라우드 아키텍처
Web Instance
RDS DB Instance Active (Multi-AZ)
Availability Zone
Elastic Load Balancer
Amazon Route 53
User
웹서버 및 데이터베이스의 일부 로드 분산:
어떻게?
1. 로드 분산
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. 로드 분산
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
쓴만큼만 내자!
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
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
v
Amazon ElastiCache
• 인메모리기반 캐시 서비스 • Memcached & Redis 지원 • 기존 오픈 소스 기반 API를 그대로 사용 가능
• 하나 부터 다수 노드 구성 가능 • 자가 치료(죽은 인스턴스 대체) • 빠른 속도(지연율 수 밀리세컨드)
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
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
# instances vs. CPU utilization 5월 어느날.!
2. 오토 스케일링
사용자 >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)
v
3. 자동화 및 모니터링
• 손으로 하지 말고 관리도구를 쓰세요! • 모든 것을 모니터링 하세요!
v
AWS 관리 서비스
편리성 제어 가능
손쉬운 관리 도구 직접 설정 가능
AWS Elastic Beanstalk
AWS OpsWorks
AWS CloudFormation Amazon EC2
v
Host Level Metrics Aggregate Level Metrics
Logstash: Centralized Log Analysis Pingdom: External Site Monitoring
AWS 모니터링 서비스
AWS CloudWatch
v
4. 마이크로서비스 • 앱 내부 컴포넌트를 느슨하게 분리 • 컴포넌트간 인터랙션 결합제거 (decoupling) • 모든 기능을 하나에 올리기 보다는 확장성 및 증설을 염두하여 기능 개발 (API 기반)
Controller A Controller B
Controller A Controller B
Q Q
Tight coupling
Amazon Simple Queue Service 활용 사례
Loose coupling
v
5. 서비스 재활용
활용 사례: • Email • Queuing • Transcoding • Search • Monitoring • Metrics • Logging
Amazon CloudSearch Amazon SQS Amazon SNS
Amazon Elastic Transcoder
Amazon SWF Amazon SES
AWS의 다양한 서비스를 이용하여 새로 만들지 말고 바로 활용하자!
v
사용자 >1백만+ 1백만 사용자일때 다시 한번 고려해야 할 사항:
• Tier별 Elastic Load Balancer • 멀티 AZ 아키텍쳐 • 오토 스케일링 • 마이크로서비스 아키텍쳐 • 효과적 콘텐츠 제공(Amazon S3/CloudFront/Route 53) • DB 캐싱
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백만+
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
사례: 비트앱
v
사용자: 1백만~ 1천만
마스터 DB에 뭔가 문제가 일어날 확률이 높습니다! 어떻게 해결해야 할까?
1. DB 분리: Federation
• 데이터베이스를 기능 및 목적에 따라 분리
• But, 각 DB를 포함하는 기능에 대한 쿼리가 힘듬 ForumsDB UsersDB ProductsDB
2. DB 수평적 확장: Sharding
• 애플리케이션 레이어에서 제어 가능/확장성에 이슈는 없음
• But, 앱 복잡성 증가
v
3. NoSQL로 이동
• DynamoDB와 같은 매니지드 서비스 활용 • 주요 케이스: • 클릭 데이터나 로그 데이터 추가 • 임시 데이터 (장바구니) • 업데이트가 잦은 “Hot” 테이블 • 메타 데이터 저장 및 검색
DynamoDB
v
정리 들어갑니다…
v
천만 사용자를 위한 십계명
1. 인프라를 Multi-AZ로 구성하세요 2. 스스로 확장 가능한 서비스로 만드세요- ELB, Amazon
S3, Amazon SNS, Amazon SQS, Amazon SWF, Amazon SES, and more.
3. 모든 영역에서 증설을 감안하세요. 4. 인프라 내외부의 캐시를 적극 활용하세요. 5. 인프라 운영을 자동화 하세요.
v
6. 한곳에 모니터링/로깅/통계 처리를 구축하세요. 7. 서비스를 작게 쪼개서 MicroServices 아키텍쳐를 구
성하세요. 8. 오토스케일링 적극 사용하세요. 9. 직접 만들지 말고 AWS 서비스를 활용하세요. 10. 가장 중요한 시간과 돈을 아끼세요!
v
사용자 > 1천만+을 위한 조언 • 전 영역에 대한 아키텍쳐 튜닝 • 애플리케이션 레벨의 튜닝 필요 • API 기반 앱 기능 및 서비스 단위의 분리
• 글로벌 고가용성 • Multi-AZ에서 Multi-region
• DevOpS 기반 앱 배포 및 통합 도구 활용 • 지속적 배포(CD) 및 지속적 통합(CI)
• 콘테이너 서비스 • 자원 절약 및 마이크로서비스
온라인 자습 및 실습
다양한 온라인 강의 자료 및 실습을 통해 AWS에 대한 기초적인 사용법 및 활용 방법을 익히
실 수 있습니다.
강의식 교육
AWS 전문 강사가 진행하는 강의를 통해 AWS 클라우드로 고가용성,
비용 효율성을 갖춘 안전한 애플리케이션을 만드는 방법을 알아보세요. 아키텍쳐 설계 및 구현에 대한 다양한 오프라인 강의가 개설되어
있습니다.
인증 시험을 통해 클라우드에 대한 자신의 전문 지식 및 경험을 공인받고 개발 경력을 제시할 수 있습
니다.
AWS 공인 자격증
http://aws.amazon.com/ko/training
다양한 교육 프로그램
AWS 웨비나 시리즈에 참여해 주셔서 감사합니다! 이번 웨비나가 여러분의 궁금증 해소에 도움이 되었길 바랍니다. 이후 이어질 설문 조사를 통해 오늘 웨비나에 대한 의견을 알려주세요. [email protected] http://twitter.com/AWSKorea http://facebook.com/AmazonWebServices.ko http://youtube.com/user/AWSKorea http://slideshare.net/AWSKorea