Upload
kth-
View
1.264
Download
6
Embed Size (px)
Citation preview
공통플랫폼팀 I 이호철 I @5clee
클라우드 컴퓨팅 AWS (Amazon Web Services) - 글로벌 서비스 구축을 위한 선택
IT Issue
Elastic
Cost-Effective
Availability
AWS
높은 가용성
탄력적 용량제공
비용 효율화
IT Issue
여기서 잠깐!
AWS를 사용하면 무조건 싸다?
예) 최소 구성시 EC2(Large) 1대, RDS(Large) 1대
EC2 월 30만원, RDS 월 40만원
이중화 구성, MultiAZ 구성, 서버 증설 비용증가
예) 스트리밍 서비스
갑작스런 부하 증가, 서버 증설, 대용량 인코딩 필요
사용 후 즉시 반납 비용 효율화(사용한 만큼 지불)
KTH가 AWS 선택한 이유?
KTH Global Services
pudding.to , Friending
전 세계 사용자에 사진/동영상 제공
전 세계 사용자가 사진/동영상을 업로드
Global CDN 서비스 필요 CloudFront
업로드 지연 해결 필요 지역별 분산배치
AWS Overview
Global Infrastructure
R
R R
R
R
R
6개의 Regions – 지역 내 2개 이상의 가용존 R
20개의 Edge Locations – CloudFront, Route53
AWS Overview
Global Infra Structure
EC2
Compute Storage Networking
EBS
DataBase
RDS Elasti
Cache
Simple
DB
Clusters
Map
Reduce
CDN Automation Monitoring
Cloud
Watch
Auto
Scaling
S3 ELB Route 53
CloudFront
기초
서비스
데이터
처리
데이터
제공/
자동화
AWS Overview
EC2
웹 콘솔을 통하여 가상의 컴퓨팅 환경을 생성 관리
다양한 OS(Amazon Linux, RedHat, SUSE, Windows)
다양한 타입 (CPU, Core, Memory, Disk)
기본 3개의 네트워크 자원 할당
내부 연결/별도 트래픽 비용 없음
단, EIP(고정 아이피)는 외부 연결임
Elastic Compute Cloud
AWS Overview
EBS S3 VS.
Block Storage Data Storage
– Simple Storage Service
개별 Object : 1 Byte~5TB
HTTP
- GET,PUT, Delete 프로토콜
EC2에 Attach / EC2
instance Lifetime 의존
Volume당 1GB~1TB
- 다수사용 가능
AWS Overview
수천 대의 Instance 로 부하 균등 분산 또는 Health Check(5초)
를 통해 부하가 적은 쪽으로 부하 분배
특정 세션에 대해 강제로 하나의 인스턴스로 전달하는 Sticky
Session 가능
ELB – Elastic Load Balancing
ELB는 고정 IP(EIP) 할당 안됨 (CNAME, Route 53 활용필요)
AWS Overview
가장 가까운 DNS 서버를 찾아 높은 쿼리 응답 속도 제공
20개 Edge Locations 을 통해 서비스 제공
WRR (Weighted Round Robin) 지원
지원되는 Resource Record Type
- A, AAAA, CNAME, MX, NS, PTR, SOA, SPF, SRV, TXT, Alias
Amazon Route 53
kth 최적화 시작…
AWS 최적화 구성요소
Scalability High-
Availability Performance
확장성
Auto-Scaling
Scale-UP
고가용성
Multi-AZ
RDS HA
성능 최적화
CloudFront
ElastiCache
Amazon Web Services 활용한 최적의 서비스 플랫폼 구축을 위한 구성요소
최적화 #1 Scalability
Scalability (확장성)
Scale-UP Scale-OUT VS.
시스템 사양 UP
(CPU, 메모리, Disk)
Scale-Down
시스템 증설
Scale-In
Scalability (확장성) – Scale-UP
Scale-UP : EC2
웹 콘솔상에서 옵션 제공되지 않음
Scale-UP 방안
EBS에 SnapShot 생성
EC2 신규 생성(타입 변경)
기존 EC2 정지
Micro
Extra-
Large
Scalability (확장성) – Scale-UP
Scale-UP : RDS
웹 콘솔상에서 옵션 변경으로 처리
변경되는 동안 DownTime 존재
유지 보수 일정주기에 실행
- 즉시 실행이 필요하다면
Apply Immediately 옵션 체크
Small xLarge
Scalability (확장성) – Scale-OUT
EC2 – Auto Scaling
ELB(Elastic Load Balancer)
EC2 #1 EC2 #2
EBS -1
(OS영역)
EBS -2
(App영역)
EBS -1
(OS영역)
EBS -2
(App영역)
Cloud Watch
AutoScale
Scalability (확장성) – Scale-OUT
EC2 – Auto Scaling
ELB(Elastic Load Balancer)
EC2 #1 EC2 #2
EBS -1
(OS영역)
EBS -2
(App영역)
EBS -1
(OS영역)
EBS -2
(App영역)
Cloud Watch
AutoScale
elb-create-lb
my-loadbalancer
--listener
“lb-port=80,
instance-port=8080”
Scalability (확장성) – Scale-OUT
EC2 – Auto Scaling
ELB(Elastic Load Balancer)
EC2 #1 EC2 #2
EBS -1
(OS영역)
EBS -2
(App영역)
EBS -1
(OS영역)
EBS -2
(App영역)
Cloud Watch
AutoScale
1) Launch Config 생성
- 생성할 instance 타입, 이미지 지정
2) Auto-Scaling Group 생성
- 최대 생성할 instance 개수
- 최소 생성할 instance 개수
3) Trigger 생성
- Scale-OUT할 조건 설정
(CPU 또는 특정시간)
- 증설시 생성할 instance 개수
- 감소할 instance 개수
Scalability (확장성) – Scale-OUT
EC2 – Auto Scaling
ELB(Elastic Load Balancer)
EC2 #1 EC2 #2
EBS -1
(OS영역)
EBS -2
(App영역)
EBS -1
(OS영역)
EBS -2
(App영역)
Cloud Watch
AutoScale
EC2 #3
EBS -1
(OS영역)
Scalability (확장성) – Scale-OUT
EC2 – Auto Scaling
ELB(Elastic Load Balancer)
EC2 #1 EC2 #2
EBS -1
(OS영역)
EBS -2
(App영역)
EBS -1
(OS영역)
EBS -2
(App영역)
Cloud Watch
AutoScale
EC2 #3
EBS -1
(OS영역)
EBS -2
(App영역)
EBS-2 복제 EBS-2 Mount SVN CheckOut
Source Build EBS-2 내 WAS 구동
Scalability (확장성) – Scale-OUT
RDS – Scale OUT RDS Auto-Scaling 은 지원되지 않음
Master-Slave Type의 Replication 지원
Slave DB의 가용 존을 여러 지역에 분산 배치
최적화 #2 High Availability
High Availability (고가용성)
Elastic Load Balancer
Cloud Watch (Monitoring)
AWS Security Groups
US-EAST-1a
• ELB - 수 천대의 EC2를 로드밸런싱
• EC2 서버 Scale 방안 수동으로 증가시켜야 함
• 트래픽 증가 및 동시 접속자 증가시
MySQL DB
EC2 EC2
High Availability (고가용성)
• EC2 – Auto Scaling
• AZ 장애시 전체 서비스 중단
Multi-AZ 구조 필요
• US-EAST-1a AZ 장애시
Elastic Load Balancer
Cloud Watch (Monitoring)
US-EAST-1a
Auto Scaling Auto Scaling
AWS Security Groups
MySQL DB
High Availability (고가용성)
DB서버 부하분산 안되어 있음. 심할 경우 2개 AZ 모두 중단될 가능성 있음
Elastic Load Balancer
Cloud Watch (Monitoring) Cloud Watch (Monitoring)
US-EAST-1a US-EAST-1b
Auto Scaling Auto Scaling Auto Scaling Auto Scaling
MySQL DB MySQL DB
AWS Security Groups AWS Security Groups
High Availability (고가용성)
Elastic Load Balancer
Cloud Watch (Monitoring) Cloud Watch (Monitoring)
US-EAST-1a US-EAST-1b
Auto Scaling Auto Scaling Auto Scaling Auto Scaling
AWS Security Groups AWS Security Groups
Master Slave
Read Replica Read Replica
최적화 #3 Performance
Performance (성능 최적화)
CloudFront
다운로드/스트리밍
원본파일 : S3 또는 특정서버
20개 Edge Locations / 사용자에 가장 가까운 위치
E
E
E
E
E
E
CloudFront
Network
S3
원본파일
파일업로드
Performance (성능 최적화)
ElastiCache
Memcached 기반
미동부 만 지원
DB부하 절감
EC2 + Memcached (Redis) 구성
EC2 API Server
Cache
Engine
Cache
Engine
Cache
Node
Cache
Node
Cache Parameter Group
Cache Cluster
RDS
Application
Code
Database
Access
Memcached
Client Library
CloudWatch
Memcached
Protocol
kth 글로벌 서비스 on AWS
Scalability High-
Availability Performance
kth 글로벌 서비스(on AWS) 최적의 서비스 플랫폼 구축을 위한 구성요소
확장성
Auto-Scaling
Scale-UP
고가용성
Multi-AZ
RDS HA
성능 최적화
CloudFront
ElastiCache
kth 최적화 결과…
kth 글로벌 서비스 최적화 결과
Elastic Load Balancer
Auto Scaling Group
EC2
ElastiCache
Availability Zone #1 Availability Zone #2
Availability Zone #n
CloudFront
S3
media.mysite.com
Master
Read Replica
Auto Scaling Group
EC2
ElastiCache
Read Replica
Slave
www.mysite.com Route 53
TIP Upload Latency
접근 제어
파일 업로드 도구
TIP #1 – Upload Latency
Main Server Group(US-East)
S3 S3
S3
EC2
S3
EC2
S3
EC2 이미지업로드 이미지업로드
업로드 결과 전송
1
2
Media Upload Server Group (Each-Region)
지역별 업로드 서버 분산 배치 업로드 결과는 메인 서버그룹
RDS
Upload Latency
EC2 EC2
EC2
EC2
EC2
TIP #2 – 접근제어
접근 제어
Gateway Server (EC2)
Security
Group
Internet
HTTP
80/443 TCP
(SSH)
Office/
Engineer
TCP
22(SSH) HTTP
8080
TCP
3306
Web Server
(EC2)
App Server
(EC2)
개발자 접근 (SSH)
2
서비스 포트
(80/443) 1 1
WEB과WAS (8080)
4
개발서버 내
접근(SSH) 3
WAS와 DB (3306)
5
2
3 4
5
1
DB
Server
TIP #3 – 파일 업로드 도구
파일 업로드 도구
Tsunami UDP - UDP 기반의 Open Source File 전송 프로토콜 - 원거리 네트워크 사이에도 높은 전송속도 제공
상용도구 - Aspera : 빠른 속도를 보장하는 AWS를 위한 데이터 전송 상용
소프트웨어
FedEX
KTH + AWS
Scalability
High Availability
Performance
TIP
운영 준비
최적화 구성
Upload Latency
접근제어
파일 업로드