© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
더 빠른 게임시스템을 위하여
개선된 서비스들
발표: 김병수, 솔루션즈 아키텍트 – 게이밍
작성: 김성수, 솔루션즈 아키텍트 – 게이밍
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Agenda
오늘 세션에서는 높은 성능 필요로 하는 게임 환경에 도움이 될 수 있는
몇가지 성능 관련 정보와 팁을 알려드립니다.
• EC2 의 CPU 성능과 Instance type 선택
• I/O 최대 성능과 고려사항
• 향상된 Network 성능 정보
• Amazon Aurora 글로벌 데이터베이스 성능 확인
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
• 2006 년 첫 EC2 instance 가 소개됨
• M1 instance
• “One size fits all”
M1
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
EC2 인스턴스의 지속적인 개발 및 다양화
2006
m1.small
2007
m1.large
m1.xlarge
2008
c1.xlarge
c1.medium
2009
m2.2xlarge
m2.4xlarge
2010
m2.xlarge
cc1.4xlarge
t1.micro
cg1.4xlarge
2011
cc2.8xlarge
2012
m1.medium
hi1.4xlarge
hs1.8xlarge
m3.2xlarge
m3.xlarge
2013
cr1.8xlarge
g2.2xlarge
c3.8xlarge
c4.4xlarge
c3.2xlarge
c3.xlarge
c3.large
i2.xlarge
i2.2xlarge
i2.4xlarge
i2.8xlarge
2014
m3.medium
m3.large
r3.large
r3.xlarge
r3.2xlarge
r3.4xlarge
r3.8xlarge
t2.micro
t2.small
t2.medium
2015
g2.8xlarge
c4.large
c4.xlarge
c4.2xlarge
c4.4xlarge
c4.8xlarge
d2.xlarge
d2.2xlarge
d2.4xlarge
d2.8xlarge
t2.large
m4.large
m4.xlarge
m4.2xlarge
m4.4xlarge
m4.10xlarge
t2.nano
x1.32xlarge
2016
m4.16xlarge
x1.16xlarge
p2.xlarge
p2.8xlarge
p2.16xlarge
r4.large
r4.xlarge
r4.2xlarge
r4.4xlarge
r4.8xlarge
r4.16xlarge
2017
x1e.32xlarge
g3.4xlarge
g3.8xlarge
g3.16xlarge
i3.large
i3.xlarge
i3.2xlarge
i3.4xlarge
i3.8xlarge
i3.16xlarge
f1.2xlarge
f1.16xlarge
c5.19xlarge
c5.9xlarge
c5.4xlarge
c5.2xlarge
c5.xlarge
p3.16xlarge
p3.8xlarge
p3.2xlarge
x1e.16xlarge
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
General
purpose
Compute
optimized
C4
Storage and I/O
optimized
I3 P3
Accelerated
Memory
optimized
C5
M5
D2
X1
G3
F1
C3
다양한 워크로드에 최적화
R4 Z1
U-6,9,12tb1
H1T3T1
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
연산이 많이 필요한 게임 Back-end 서버
C5 인스턴스 타입
• 인텔 Advanced Vector Extension 512(AVX-512) 명령 세트가 포함된 3.0GHz Intel
XEON Platinum Processor
• 인텔 터보 부스트 기술을 사용하여 최대 3.5GHz에서 각 코어 실행
• 더 큰 인스턴스 크기인 c5.18xlarge에서 72개 vCPU 및 144GiB 메모리 제공
• ENA 및 NVMe용 드라이버가 포함된 HVM AMI 필요
• C5d 인스턴스를 사용하면 로컬 NVMe 기반 SSD가 호스트 서버에 물리적으로
연결되며 C5 인스턴스 수명과 결합된 블록 수준의 스토리지를 제공
• 탄력적 네트워크 어댑터(ENA)는 C5 인스턴스에 최대 25Gbps의 네트워크 대역폭과
Amazon EBS에 최대 14Gbps의 전용 대역폭을 제공
C5
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
빠른 연산, 대용량 메모리 요하는 게임 Back-end 서버
Z1 시리즈
• 최대 4.0GHz의 일관된 올코어 클럭을 지원하는 Custom Intel® XEON®
Scalable Processor
• 최대 1.8TB의 인스턴스 스토리지
• 최대 384GiB의 RAM을 지원하는 큰 메모리
• AWS Nitro System 기반의 전용 하드웨어 및 경량 하이퍼바이저 결합
• z1d 인스턴스를 사용하면 로컬 NVMe 기반 SSD가 호스트 서버에
물리적으로 연결되며 z1d 인스턴스 수명과 결합된 블록 스토리지를 제공
Z1
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
병렬 처리 효율에 따른 선택
병렬 처리 효율이 좋다
비용에 대한 고민이 있다
M, R Instance type
병렬 처리 효율이 낮다.
단위 처리 성능이 더
중요하다.
C, Z Instance type
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
간단한 단위 코어 별 상대 성능 수치
• Windows 2019 + CineBench R20 (CPU만 사용)
• 테스트 대상 : M4, M5, M5a, R4, R5, C4, C5, Z1d
140
120
110 110
100
90 90 85
4.0 3.5 3.1 3.1 2.9 2.4 2.3 2.5
0
20
40
60
80
100
120
140
160
Z1d.12XL C5.18XL M5.24XL R5.24XL C4.8XL M4.16XL R4.16XL M5a.24XL
인스턴스별 Single-Core 상대성능 (C4 대비)
Single-Core 상대성능(C4 대비) CPU Clock(GHz)
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
멀티 코어 성능 시험
• Windows 2019 + CineBench R20 (CPU만 사용)
• 테스트 대상: M4, M5, M5a, R4, R5, C4, C5, Z1d
275 275
233
196 192
155 155
100
110 110
120
85
140
90 90
10096 96
72
96
48
64 64
36
0
50
100
150
200
250
300
M5.24XL R5.24XL C5.18XL M5a.24XL Z1d.12XL M4.16XL R4.16XL C4.8XL
멀티코어 상대성능 (C4.8XL대비)
Multi-Core 상대성능 Single-Core 상대성능 Core 수
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
CPU Performance Test 결과 정리
• EC2 환경에서도 Single core의 성능은 Clock수에 영향이 크며, Multi-core
성능은 병렬 처리가 가능한 구조에서는 Clock x Core 수에 비례하게 됨
• 단, 인스턴스 별 가용 vCPU, Memory 의 차이, 워크로드의 차이 등 다양한
조건이 있으므로, 직접 테스트를 통한 Instance type 과 Size를 선택하는
것이 가장 중요함.
“Launching new instances and running tests in parallel is
easy…[when choosing an instance] there is no
substitute for measuring the performance of your
full application.”
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Hyper-Threading 비활성화 (기존 방식)
• Linux 머신에서 직접 Hot offline
for cpunum in $(cat /sys/devices/system/cpu/cpu*/topology/thread_siblings_list | cut -s
echo 0 | sudo tee /sys/devices/system/cpu/cpu${cpunum}/online
Done
• Linux 부팅시 Grub 에서 설정
maxcpus=20
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Hyper-Threading 비활성화API 지원
$ aws ec2 run-instances --image-id ami-1a2b3c4d --instance-type r4.4xlarge --cpu-options
"CoreCount=8,ThreadsPerCore=1" --key-name MyKeyPair
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
성능 향상을 System clock 설정
[centos@ip-192-168-1-77 testbench]$ strace -c ./test
Elapsed time is 10.0336 seconds
% time seconds usecs/call calls errors syscall
------ ----------- ----------- --------- --------- --------------
--
99.99 3.322956 2 2001862 gettimeofday
0.00 0.000096 6 16 mmap
0.00 0.000050 5 10 mprotect
0.00 0.000038 8 5 open
0.00 0.000026 5 5 fstat
0.00 0.000025 5 5 close
0.00 0.000023 6 4 read
0.00 0.000008 8 1 1 access
0.00 0.000006 6 1 brk
0.00 0.000006 6 1 execve
0.00 0.000005 5 1 arch_prctl
0.00 0.000000 0 1 munmap
------ ----------- ----------- --------- --------- --------------
--
100.00 3.323239 2001912 1 total
[centos@ip-192-168-1-77 testbench]$ strace -c ./test
Elapsed time is 2.0787 seconds
% time seconds usecs/call calls errors syscall
------ ----------- ----------- --------- --------- ----------------
32.97 0.000121 7 17 mmap
20.98 0.000077 8 10 mprotect
11.72 0.000043 9 5 open
10.08 0.000037 7 5 close
7.36 0.000027 5 6 fstat
6.81 0.000025 6 4 read
2.72 0.000010 10 1 munmap
2.18 0.000008 8 1 1 access
1.91 0.000007 7 1 execve
1.63 0.000006 6 1 brk
1.63 0.000006 6 1 arch_prctl
0.00 0.000000 0 1 write
------ ----------- ----------- --------- --------- ----------------
100.00 0.000367 53 1 total
Grub.conf -> tsc=reliable clocksource=tsc
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
AWS 스토리지 서비스
오브젝트 스토리지
S3 Standard
S3 Glacier Deep Archive
S3 Glacier
S3 Intelligent-Tiering
S3 One Zone-IA
S3 Standard-IA
블록 스토리지
Provisioned IOPS SSD
Cold HDD
Throughput-Optimized HDD
NEW!
COMING
SOON!
파일 스토리지
EFS Standard
EFS Infrequent Access
COMING
SOON!
Elastic
Amazon EFS AWS Storage
Gateway Family
Amazon S3
NEW!
Amazon FSx
for Lustre
Amazon FSx
for Windows
File Server
NEW!
Amazon
EBS
Amazon
EC2
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
AWS 블록 스토리지 구분
EC2 instance
store
sc1st1
io1gp2
EBS
SSD-backed
volumes
EBS
HDD-backed
volumes
HDDSSD
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Amazon EBS 볼륨 종류
HDDSSD
Throughput Optimized
HDD
st1 sc1
Cold
HDD
General Purpose
SSD
gp2
Provisioned IOPS
SSD
io1
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Amazon EBS 볼륨 타입 선택
gp2
Latency?
< 1 ms Single-digit ms
Which is more important?
Cost Performance
IOPS
≤ 80,000> 80,000
is more important
io1
Throughput
is more important
Small, random I/O Large, sequential I/O
st1
d2
≤ 1,750 MiB/s
Aggregate throughput?
> 1,750 MiB/s
Which is more important?
Cost Performance
sc1Instance
storage
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Amazon EBS 성능 향상
io1 볼륨 2배의 성능 향상 / gp2 볼륨에 대해 60% 성능 향상
Gp2볼륨당 최대 16,000
IOPS 및 256MB/s 의 처리량
제공
더 적은 볼륨과 운영 인력으로 어플리케이션의 최대성능 달성
Io1볼륨당 최대 6,4000
IOPS/1000 MB/s 처리량
제공
* 32000 IOPS 이상의 볼륨은 Nitro 기반 인스턴스 필요
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
EBS의 I/O count 개념
• Random I/O는 Payload가 작아도 하나의 Operation마다 하나의 I/O 소모
• Sequential I/O는 I/O buffer를 채워 Operation이 이루어 지므로 I/O를 덜 소모
EC2
instance
Amazon EBS
Counted as 4 I/Os
Up to 256 KiB (SSD)
EC2
instance
Counted as 1 I/O
Amazon EBS
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
EBS EBS EBS
I/O 최대 성능 지원과 EC2 instance 타입
• EBS의 성능을 최대한 활용하기 위해서는 적절한 크기와
종류의 EC2를 사용해야함.
• EBS는 이미 자체적으로 Redundancy를 가지고 있기
때문에 성능/ 안정성을 위하여 추가적인 SW RAID를
사용해야할 경우는 적으나 Windows 에서의 Volume을
묶는 경우 S/W RAID 고려 가능
• RAID5/6의 경우 약 20~30% I/O 를 Parity 에 소모
c5.large * 20,000
c5.xlarge * 20,000
c5.2xlarge * 20,000
c5.4xlarge 20,000
c5.9xlarge 40,000
c5.18xlarge 80,000
c5d.large * 20,000
c5d.xlarge * 20,000
c5d.2xlarge * 20,000
c5d.4xlarge 20,000
c5d.9xlarge 40,000
c5d.18xlarge 80,000
c5n.large * 20,000
c5n.xlarge * 20,000
c5n.2xlarge * 20,000
c5n.4xlarge 20,000
c5n.9xlarge 40,000
c5n.18xlarge 80,000
m5.large * 18,750
m5.xlarge * 18,750
m5.2xlarge * 18,750
m5.4xlarge 18,750
m5.12xlarge 40,000
m5.24xlarge 80,000
m5.metal 80,000
m5a.large * 16,000
m5a.xlarge * 16,000
m5a.2xlarge * 16,000
m5a.4xlarge 16,000
m5a.12xlarge 30,000
m5a.24xlarge 60,000
m5ad.large * 16,000
m5ad.xlarge * 16,000
m5ad.2xlarge * 16,000
m5ad.4xlarge 16,000
m5ad.12xlarge 30,000
m5ad.24xlarge 60,000
m5d.large * 18,750
m5d.xlarge * 18,750
m5d.2xlarge * 18,750
m5d.4xlarge 18,750
m5d.12xlarge 40,000
m5d.24xlarge 80,000
m5d.metal 80,000
r5.large * 18,750
r5.xlarge * 18,750
r5.2xlarge * 18,750
r5.4xlarge 18,750
r5.12xlarge 40,000
r5.24xlarge 80,000
r5.metal 80,000
r5a.large * 16,000
r5a.xlarge * 16,000
r5a.2xlarge * 16,000
r5a.4xlarge 16,000
r5a.12xlarge 30,000
r5a.24xlarge 60,000
r5ad.large * 16,000
r5ad.xlarge * 16,000
r5ad.2xlarge * 16,000
r5ad.4xlarge 16,000
r5ad.12xlarge 30,000
r5ad.24xlarge 60,000
r5d.large * 18,750
r5d.xlarge * 18,750
r5d.2xlarge * 18,750
r5d.4xlarge 18,750
r5d.12xlarge 40,000
r5d.24xlarge 80,000
z1d.large * 13,333
z1d.xlarge * 13,333
z1d.2xlarge 13,333
z1d.3xlarge 20,000
z1d.6xlarge 40,000
z1d.12xlarge 80,000
z1d.metal 80,000
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
265.1
883
1685.8
66.14 165.5
1259.5
66.15 165.5
584.6
21.98 21.13 37.49
264.9
912.1
791.8
66.14 165.5
703.6
66.19 165.5
538.2
9.009 9.07 101.1
0
500
1000
1500
2000
gp2 16000 IOPS io1 64000 IOPS nvme local storage
IOPS 비교 (MB/s)
Seq Read(Q32T1) Random Read(Q8T8) Rand Read(Q32T1) Random Read(Q1T1)
Seq Write(Q32T1) Random Read(Q8T8)2 Random Read(Q32T1) Random Read(Q1T1)2
I/O 성능 테스트 결과 (참조)
• 시험은 Crystal Disk Mark 사용
• C5d.9xl 에서 nvme Local Disk 900GB, GP2 10T, IO1 4T 테스트
• 높은 IO 성능 시험을 위해서는 Queue/Thread 수를 충분히 늘려 Load를 병렬로 증가
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
EC2 Networking 성능 향상 1/2
1. 단순한 가상 인터페이스(ENI)에서 시작
• 모든 Network I/O가 Hypervisor driver pane을 거쳐 처리
• 3세대 이전
2. 향상된 네트워킹(SR-IOV) 지원
• Single Route IO Virtualization: Guest OS에서 Network I/O
직접 액세스
• 3세대 이후 M4,C3,C4,D3,I2,R3
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
EC2 Networking 성능 향상 2/2
3. 향상된 네트워킹(ENA) 지원
• SR-IOV + Multiple Tx/Rx queue(Linux), RSS(Windows)
• A1, C5, C5d, C5n, F1, G3, H1, I3, M4.16XL, M5, M5a, M5d, P2, P3,
R4, R5, R5a, R5d, T3, u-6tb1.metal, u-9tb1.metal, u-12tb1.metal,
X1, X1e, z1d (Nitro based EC2 기본탑재)
4. 특정 인스턴스, 최대 100Gbps의 초고속 인터페이스
• Small Packet으로도 높은 대역을 지속가능한 성능
• Large Packet으로는 더욱 고효율의 대역을 지원
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
100Gbps 세부 사항
• 인스턴스 이름에 c5n과 같이 n으로 끝나는 인스턴스들은 최대 100Gbps의 대역폭을
제공
• 100Gbps는 현재 가장 큰 크기의 인스턴스가 필요
• 같은 크기라면 C5에 비해서 C5n이 더 높은 유효 Bandwidth를 제공
모델
네트워크
대역폭(Gbps)
EBS
대역폭(Mbps)
모델
네트워크
대역폭(Gbps)
EBS 대역폭(Mbps)
c5.large 최대 10 최대 3,500 c5n.large 최대 25 최대 3,500
c5.xlarge 최대 10 최대 3,500 c5n.xlarge 최대 25 최대 3,500
c5.2xlarge 최대 10 최대 3,500 c5n.2xlarge 최대 25 최대 3,500
c5.4xlarge 최대 10 3,500 c5n.4xlarge 최대 25 3,500
c5.9xlarge 10 7,000 c5n.9xlarge 50 7,000
c5.18xlarge 25 14,000 c5n.18xlarge 100 14,000
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Jumbo frame 지원, 성능 향상 가능
• 인터넷과의 통신에서는 MTU크기 1500을 사용
• 동일 리젼, 또는 VPC, 또는 VPC 피어링에서는 Jumbo Frame을 활용 가능
• Route 별 MTU, 또는 복수개의 ENI를 활용하여 개별 인터페이스별로
별도의 MTU와 ROUTE를 지정
• Amazon Linux 2에서는 EC2인스턴스 사이의 트래픽은 점보 프레임을
지원하는 인스턴스들의 경우 MTU값이 9001로 기본 설정
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
• Iperf3 기본 설정 사용, client –t 20 option
• MTU 1500
간단한 Network 성능 시험
테스트 구성 Host : C5n.18xlarge
Clients : 9 x C5 instances
MTU : 1500
Total Bandwidth ( C5n ) 56Gbps
CPU Load Load Avg 1.86, Avg CPU : 7-7.5%
- 72 Core system이므로, CPU 사용량이 매우 높은 것을 알수 있음. 네트워킹은 상당히
CPU intensive한 작업
테스트 구성 Host : C5n.18xlarge
Clients : 9 x C5 instances
MTU : Amazon Linux 2 기본 설정 : MTU 9001(Jumbo Frame)
Total Bandwidth ( C5n ) 67Gbps
- Placement Group 사용 및 Client instance를 늘려 최대 98Gbps까지 확인
CPU Load Load Avg 1.3, Avg CPU : 6-6.8%
- MTU 1500과 비교하여 MTU 9001 점보프레임을 사용한 결과, 처리 대역폭 뿐만
아니라CPU 사용량이 현저히 감소한 것을 확인
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
네트워크 성능향상을 위한 참조 사항
• 대용량 네트워크 트래픽은 고성능 네트워크와 트래픽을 처리하기 위한
높은 CPU 성능도 필요
• 내부에서 대용량 트래픽을 다루는 경우 Jumbo Frame의 적극적 활용을
고려 가능
• Device Driver 단에서는 수신 버퍼 사이즈 조정으로 성능 향상 가능
• ENA NIC의 고급 속성에서 수신 버퍼를 최대 8192의 값으로 구성
• 경우에 따라 RSS와 같은 복수 코어 대응이 대용량 트래픽을 처리하는데
효과적
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Amazon Aurora 글로벌 데이터베이스 장점
• 전 세계적으로 분산된 애플리케이션을 위해 설계
• 단일 Amazon Aurora 데이터베이스를 여러 AWS 리전으로 확장
• 데이터베이스 성능에 어떠한 영향도 주지 않고 데이터를 복제
• 각 리전에서 낮은 지연 시간으로 빠른 로컬 읽기를 지원
• 리전 규모의 가동 중단 발생 시 재해 복구를 제공
• 1초 미만의 일반적인 지연 시간으로 스토리지 기반 복제를 사용
• 리전의 성능 저하 또는 가동 중단은 드문 일이지만, Secondary 리전 중
하나가 1분 이내에 읽기 및 쓰기 기능으로 승격 가능
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
물리적 복제로 빠르게 데이터 이동 가능
Primary region Secondary region
1
ASYNC 4/6 QUORUM
Continuous
backup
AZ 1
Primary
Instance
Amazon
S3
AZ 2
Replica
Instance
AZ 3
Replica
Instance
Replication
Server
Replication Fleet
Storage Fleet
11
4
AZ 1
Replica
Instance
AZ 2 AZ 3
ASYNC 4/6 QUORUM
Continuous
backup
Amazon
S3
Replica
Instance
Replica
Instance
Replication
Agent
Replication Fleet
Storage Fleet
3
3
2
① Primary Instance가 Log record들을 storage node,
replica instance, replication server에 동시에 전송합니다.
② Replication server는 Log record들을 Secondary
Region의 Replication Agent로 스트리밍합니다.
③ Replication agent는 Log record들을 Storage node,
replica instance들로 동시에 전송합니다.
④ 장애 발생시, 동기화를 위하여 Replication serve가
Storage node에서 Log record들을 확인하여 재전송합니다.
High throughput: Up to 150K writes/sec –
negligible performance impact
Low replica lag: < 1 sec cross-region replica lag
under heavy load
Fast recovery: < 1 min to accept full read-write
workloads after region failure
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
강조; 낮은 지연 시간과 빠른 복구
• 모든 리전에서 1초 내에 데이터에 액세스
• 추가 리전으로 데이터베이스 확장시 성능에 어떠한 영향도 미치지 않음. 교차 리전 복제는 Aurora 스토리지 계층의
전용 인프라를 사용하여 기본 및 보조 리전의 데이터베이스 리소스를 애플리케이션 요구에 따라 완전히 서비스
가능한 상태로 유지
• 교차 리전 재해 복구
• 기본 리전에서 성능 저하 또는 가동 중지가 발생한 경우 보조 리전 중 하나를 승격하여 읽기/쓰기 책임을 맡길 수
있음. Aurora 클러스터는 리전이 완전히 가동 중지되는 경우에도 1분 이내에 재해 복구가 가능합니다. 이로써
애플리케이션에 효율적인 1초의 RPO(복구 목표 지점) 및 1분 미만의 RTO(복구 목표 시간)를 제공하여, 글로벌
비즈니스 연속성 계획의 탄탄한 기반을 제공
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
글로벌 복제 성능
Logical 복제 Physical 복제
0
100
200
300
400
500
600
0
50,000
100,000
150,000
200,000
250,000
seconds
QPS
QPS Lag
0.00
0.50
1.00
1.50
2.00
2.50
3.00
3.50
4.00
4.50
5.00
0
50,000
100,000
150,000
200,000
250,000
seconds
QPS
QPS Lag
Logical vs. physical 복제
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
실제 복제 실험 (참조)
단순한 Schema와 간단한 Insert Loop, 그리고 Select Loop을 통하여 실제 성능 체감
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
• 글로벌 데이터베이스 구성
• Primary Region: N.Virginia
• Secondary Region: Ireland
• Primary Insert , Secondary Select 동시 수행
Latency 참고를 위한 실제 시험
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Amazon Aurora 글로벌 데이터베이스 이점 정리
• Replay 방식의 Replication 대비 매우 짧은 RPO(1초), RTO(1분) 목표의
DR 구성이 가능
• Primary Database에 성능 영향 없이 Global Database 구성 가능
• Primary가 끊어졌을 때 즉시 Secondary Region의 Global Databse를
독자적인 Master Node로 승격시켜 DR 복구
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
마치며
• AWS서비스는 CPU, Disk IO, Networking과 같은 Low level에서 Database
서비스와 같은 High level까지 모든 방면에서 계속 진화하고 있습니다.
• 대부분의 경우, AWS의 새로운 서비스들은 기존의 서비스에서 손쉽게
변경 가능합니다.
• 프로젝트를 시작할 때 잡은 기준 스펙과 성능을 계속 고수할 필요가
없습니다.
• 최적의 결과를 내기 위하여 주기적으로 “현재”의 상황에 맞는 성능을
검토하고 사용할 필요가 있습니다.

더 빠른 게임시스템을 위하여 개선된 서비스들 - 김병수 솔루션즈 아키텍트, AWS :: AWS Summit Seoul 2019

  • 1.
    © 2019, AmazonWeb Services, Inc. or its affiliates. All rights reserved. 더 빠른 게임시스템을 위하여 개선된 서비스들 발표: 김병수, 솔루션즈 아키텍트 – 게이밍 작성: 김성수, 솔루션즈 아키텍트 – 게이밍
  • 2.
    © 2019, AmazonWeb Services, Inc. or its affiliates. All rights reserved. Agenda 오늘 세션에서는 높은 성능 필요로 하는 게임 환경에 도움이 될 수 있는 몇가지 성능 관련 정보와 팁을 알려드립니다. • EC2 의 CPU 성능과 Instance type 선택 • I/O 최대 성능과 고려사항 • 향상된 Network 성능 정보 • Amazon Aurora 글로벌 데이터베이스 성능 확인
  • 3.
    © 2019, AmazonWeb Services, Inc. or its affiliates. All rights reserved.
  • 4.
    © 2019, AmazonWeb Services, Inc. or its affiliates. All rights reserved. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. • 2006 년 첫 EC2 instance 가 소개됨 • M1 instance • “One size fits all” M1
  • 5.
    © 2019, AmazonWeb Services, Inc. or its affiliates. All rights reserved. EC2 인스턴스의 지속적인 개발 및 다양화 2006 m1.small 2007 m1.large m1.xlarge 2008 c1.xlarge c1.medium 2009 m2.2xlarge m2.4xlarge 2010 m2.xlarge cc1.4xlarge t1.micro cg1.4xlarge 2011 cc2.8xlarge 2012 m1.medium hi1.4xlarge hs1.8xlarge m3.2xlarge m3.xlarge 2013 cr1.8xlarge g2.2xlarge c3.8xlarge c4.4xlarge c3.2xlarge c3.xlarge c3.large i2.xlarge i2.2xlarge i2.4xlarge i2.8xlarge 2014 m3.medium m3.large r3.large r3.xlarge r3.2xlarge r3.4xlarge r3.8xlarge t2.micro t2.small t2.medium 2015 g2.8xlarge c4.large c4.xlarge c4.2xlarge c4.4xlarge c4.8xlarge d2.xlarge d2.2xlarge d2.4xlarge d2.8xlarge t2.large m4.large m4.xlarge m4.2xlarge m4.4xlarge m4.10xlarge t2.nano x1.32xlarge 2016 m4.16xlarge x1.16xlarge p2.xlarge p2.8xlarge p2.16xlarge r4.large r4.xlarge r4.2xlarge r4.4xlarge r4.8xlarge r4.16xlarge 2017 x1e.32xlarge g3.4xlarge g3.8xlarge g3.16xlarge i3.large i3.xlarge i3.2xlarge i3.4xlarge i3.8xlarge i3.16xlarge f1.2xlarge f1.16xlarge c5.19xlarge c5.9xlarge c5.4xlarge c5.2xlarge c5.xlarge p3.16xlarge p3.8xlarge p3.2xlarge x1e.16xlarge
  • 6.
    © 2019, AmazonWeb Services, Inc. or its affiliates. All rights reserved. General purpose Compute optimized C4 Storage and I/O optimized I3 P3 Accelerated Memory optimized C5 M5 D2 X1 G3 F1 C3 다양한 워크로드에 최적화 R4 Z1 U-6,9,12tb1 H1T3T1
  • 7.
    © 2019, AmazonWeb Services, Inc. or its affiliates. All rights reserved. 연산이 많이 필요한 게임 Back-end 서버 C5 인스턴스 타입 • 인텔 Advanced Vector Extension 512(AVX-512) 명령 세트가 포함된 3.0GHz Intel XEON Platinum Processor • 인텔 터보 부스트 기술을 사용하여 최대 3.5GHz에서 각 코어 실행 • 더 큰 인스턴스 크기인 c5.18xlarge에서 72개 vCPU 및 144GiB 메모리 제공 • ENA 및 NVMe용 드라이버가 포함된 HVM AMI 필요 • C5d 인스턴스를 사용하면 로컬 NVMe 기반 SSD가 호스트 서버에 물리적으로 연결되며 C5 인스턴스 수명과 결합된 블록 수준의 스토리지를 제공 • 탄력적 네트워크 어댑터(ENA)는 C5 인스턴스에 최대 25Gbps의 네트워크 대역폭과 Amazon EBS에 최대 14Gbps의 전용 대역폭을 제공 C5
  • 8.
    © 2019, AmazonWeb Services, Inc. or its affiliates. All rights reserved. 빠른 연산, 대용량 메모리 요하는 게임 Back-end 서버 Z1 시리즈 • 최대 4.0GHz의 일관된 올코어 클럭을 지원하는 Custom Intel® XEON® Scalable Processor • 최대 1.8TB의 인스턴스 스토리지 • 최대 384GiB의 RAM을 지원하는 큰 메모리 • AWS Nitro System 기반의 전용 하드웨어 및 경량 하이퍼바이저 결합 • z1d 인스턴스를 사용하면 로컬 NVMe 기반 SSD가 호스트 서버에 물리적으로 연결되며 z1d 인스턴스 수명과 결합된 블록 스토리지를 제공 Z1
  • 9.
    © 2019, AmazonWeb Services, Inc. or its affiliates. All rights reserved. 병렬 처리 효율에 따른 선택 병렬 처리 효율이 좋다 비용에 대한 고민이 있다 M, R Instance type 병렬 처리 효율이 낮다. 단위 처리 성능이 더 중요하다. C, Z Instance type
  • 10.
    © 2019, AmazonWeb Services, Inc. or its affiliates. All rights reserved. 간단한 단위 코어 별 상대 성능 수치 • Windows 2019 + CineBench R20 (CPU만 사용) • 테스트 대상 : M4, M5, M5a, R4, R5, C4, C5, Z1d 140 120 110 110 100 90 90 85 4.0 3.5 3.1 3.1 2.9 2.4 2.3 2.5 0 20 40 60 80 100 120 140 160 Z1d.12XL C5.18XL M5.24XL R5.24XL C4.8XL M4.16XL R4.16XL M5a.24XL 인스턴스별 Single-Core 상대성능 (C4 대비) Single-Core 상대성능(C4 대비) CPU Clock(GHz)
  • 11.
    © 2019, AmazonWeb Services, Inc. or its affiliates. All rights reserved. 멀티 코어 성능 시험 • Windows 2019 + CineBench R20 (CPU만 사용) • 테스트 대상: M4, M5, M5a, R4, R5, C4, C5, Z1d 275 275 233 196 192 155 155 100 110 110 120 85 140 90 90 10096 96 72 96 48 64 64 36 0 50 100 150 200 250 300 M5.24XL R5.24XL C5.18XL M5a.24XL Z1d.12XL M4.16XL R4.16XL C4.8XL 멀티코어 상대성능 (C4.8XL대비) Multi-Core 상대성능 Single-Core 상대성능 Core 수
  • 12.
    © 2019, AmazonWeb Services, Inc. or its affiliates. All rights reserved. CPU Performance Test 결과 정리 • EC2 환경에서도 Single core의 성능은 Clock수에 영향이 크며, Multi-core 성능은 병렬 처리가 가능한 구조에서는 Clock x Core 수에 비례하게 됨 • 단, 인스턴스 별 가용 vCPU, Memory 의 차이, 워크로드의 차이 등 다양한 조건이 있으므로, 직접 테스트를 통한 Instance type 과 Size를 선택하는 것이 가장 중요함. “Launching new instances and running tests in parallel is easy…[when choosing an instance] there is no substitute for measuring the performance of your full application.”
  • 13.
    © 2019, AmazonWeb Services, Inc. or its affiliates. All rights reserved. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Hyper-Threading 비활성화 (기존 방식) • Linux 머신에서 직접 Hot offline for cpunum in $(cat /sys/devices/system/cpu/cpu*/topology/thread_siblings_list | cut -s echo 0 | sudo tee /sys/devices/system/cpu/cpu${cpunum}/online Done • Linux 부팅시 Grub 에서 설정 maxcpus=20
  • 14.
    © 2019, AmazonWeb Services, Inc. or its affiliates. All rights reserved. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Hyper-Threading 비활성화API 지원 $ aws ec2 run-instances --image-id ami-1a2b3c4d --instance-type r4.4xlarge --cpu-options "CoreCount=8,ThreadsPerCore=1" --key-name MyKeyPair
  • 15.
    © 2019, AmazonWeb Services, Inc. or its affiliates. All rights reserved. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. 성능 향상을 System clock 설정 [centos@ip-192-168-1-77 testbench]$ strace -c ./test Elapsed time is 10.0336 seconds % time seconds usecs/call calls errors syscall ------ ----------- ----------- --------- --------- -------------- -- 99.99 3.322956 2 2001862 gettimeofday 0.00 0.000096 6 16 mmap 0.00 0.000050 5 10 mprotect 0.00 0.000038 8 5 open 0.00 0.000026 5 5 fstat 0.00 0.000025 5 5 close 0.00 0.000023 6 4 read 0.00 0.000008 8 1 1 access 0.00 0.000006 6 1 brk 0.00 0.000006 6 1 execve 0.00 0.000005 5 1 arch_prctl 0.00 0.000000 0 1 munmap ------ ----------- ----------- --------- --------- -------------- -- 100.00 3.323239 2001912 1 total [centos@ip-192-168-1-77 testbench]$ strace -c ./test Elapsed time is 2.0787 seconds % time seconds usecs/call calls errors syscall ------ ----------- ----------- --------- --------- ---------------- 32.97 0.000121 7 17 mmap 20.98 0.000077 8 10 mprotect 11.72 0.000043 9 5 open 10.08 0.000037 7 5 close 7.36 0.000027 5 6 fstat 6.81 0.000025 6 4 read 2.72 0.000010 10 1 munmap 2.18 0.000008 8 1 1 access 1.91 0.000007 7 1 execve 1.63 0.000006 6 1 brk 1.63 0.000006 6 1 arch_prctl 0.00 0.000000 0 1 write ------ ----------- ----------- --------- --------- ---------------- 100.00 0.000367 53 1 total Grub.conf -> tsc=reliable clocksource=tsc
  • 16.
    © 2019, AmazonWeb Services, Inc. or its affiliates. All rights reserved.© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
  • 17.
    © 2019, AmazonWeb Services, Inc. or its affiliates. All rights reserved. AWS 스토리지 서비스 오브젝트 스토리지 S3 Standard S3 Glacier Deep Archive S3 Glacier S3 Intelligent-Tiering S3 One Zone-IA S3 Standard-IA 블록 스토리지 Provisioned IOPS SSD Cold HDD Throughput-Optimized HDD NEW! COMING SOON! 파일 스토리지 EFS Standard EFS Infrequent Access COMING SOON! Elastic Amazon EFS AWS Storage Gateway Family Amazon S3 NEW! Amazon FSx for Lustre Amazon FSx for Windows File Server NEW! Amazon EBS Amazon EC2
  • 18.
    © 2019, AmazonWeb Services, Inc. or its affiliates. All rights reserved. AWS 블록 스토리지 구분 EC2 instance store sc1st1 io1gp2 EBS SSD-backed volumes EBS HDD-backed volumes HDDSSD
  • 19.
    © 2019, AmazonWeb Services, Inc. or its affiliates. All rights reserved. Amazon EBS 볼륨 종류 HDDSSD Throughput Optimized HDD st1 sc1 Cold HDD General Purpose SSD gp2 Provisioned IOPS SSD io1
  • 20.
    © 2019, AmazonWeb Services, Inc. or its affiliates. All rights reserved. Amazon EBS 볼륨 타입 선택 gp2 Latency? < 1 ms Single-digit ms Which is more important? Cost Performance IOPS ≤ 80,000> 80,000 is more important io1 Throughput is more important Small, random I/O Large, sequential I/O st1 d2 ≤ 1,750 MiB/s Aggregate throughput? > 1,750 MiB/s Which is more important? Cost Performance sc1Instance storage
  • 21.
    © 2019, AmazonWeb Services, Inc. or its affiliates. All rights reserved. Amazon EBS 성능 향상 io1 볼륨 2배의 성능 향상 / gp2 볼륨에 대해 60% 성능 향상 Gp2볼륨당 최대 16,000 IOPS 및 256MB/s 의 처리량 제공 더 적은 볼륨과 운영 인력으로 어플리케이션의 최대성능 달성 Io1볼륨당 최대 6,4000 IOPS/1000 MB/s 처리량 제공 * 32000 IOPS 이상의 볼륨은 Nitro 기반 인스턴스 필요
  • 22.
    © 2019, AmazonWeb Services, Inc. or its affiliates. All rights reserved. EBS의 I/O count 개념 • Random I/O는 Payload가 작아도 하나의 Operation마다 하나의 I/O 소모 • Sequential I/O는 I/O buffer를 채워 Operation이 이루어 지므로 I/O를 덜 소모 EC2 instance Amazon EBS Counted as 4 I/Os Up to 256 KiB (SSD) EC2 instance Counted as 1 I/O Amazon EBS
  • 23.
    © 2019, AmazonWeb Services, Inc. or its affiliates. All rights reserved. EBS EBS EBS I/O 최대 성능 지원과 EC2 instance 타입 • EBS의 성능을 최대한 활용하기 위해서는 적절한 크기와 종류의 EC2를 사용해야함. • EBS는 이미 자체적으로 Redundancy를 가지고 있기 때문에 성능/ 안정성을 위하여 추가적인 SW RAID를 사용해야할 경우는 적으나 Windows 에서의 Volume을 묶는 경우 S/W RAID 고려 가능 • RAID5/6의 경우 약 20~30% I/O 를 Parity 에 소모 c5.large * 20,000 c5.xlarge * 20,000 c5.2xlarge * 20,000 c5.4xlarge 20,000 c5.9xlarge 40,000 c5.18xlarge 80,000 c5d.large * 20,000 c5d.xlarge * 20,000 c5d.2xlarge * 20,000 c5d.4xlarge 20,000 c5d.9xlarge 40,000 c5d.18xlarge 80,000 c5n.large * 20,000 c5n.xlarge * 20,000 c5n.2xlarge * 20,000 c5n.4xlarge 20,000 c5n.9xlarge 40,000 c5n.18xlarge 80,000 m5.large * 18,750 m5.xlarge * 18,750 m5.2xlarge * 18,750 m5.4xlarge 18,750 m5.12xlarge 40,000 m5.24xlarge 80,000 m5.metal 80,000 m5a.large * 16,000 m5a.xlarge * 16,000 m5a.2xlarge * 16,000 m5a.4xlarge 16,000 m5a.12xlarge 30,000 m5a.24xlarge 60,000 m5ad.large * 16,000 m5ad.xlarge * 16,000 m5ad.2xlarge * 16,000 m5ad.4xlarge 16,000 m5ad.12xlarge 30,000 m5ad.24xlarge 60,000 m5d.large * 18,750 m5d.xlarge * 18,750 m5d.2xlarge * 18,750 m5d.4xlarge 18,750 m5d.12xlarge 40,000 m5d.24xlarge 80,000 m5d.metal 80,000 r5.large * 18,750 r5.xlarge * 18,750 r5.2xlarge * 18,750 r5.4xlarge 18,750 r5.12xlarge 40,000 r5.24xlarge 80,000 r5.metal 80,000 r5a.large * 16,000 r5a.xlarge * 16,000 r5a.2xlarge * 16,000 r5a.4xlarge 16,000 r5a.12xlarge 30,000 r5a.24xlarge 60,000 r5ad.large * 16,000 r5ad.xlarge * 16,000 r5ad.2xlarge * 16,000 r5ad.4xlarge 16,000 r5ad.12xlarge 30,000 r5ad.24xlarge 60,000 r5d.large * 18,750 r5d.xlarge * 18,750 r5d.2xlarge * 18,750 r5d.4xlarge 18,750 r5d.12xlarge 40,000 r5d.24xlarge 80,000 z1d.large * 13,333 z1d.xlarge * 13,333 z1d.2xlarge 13,333 z1d.3xlarge 20,000 z1d.6xlarge 40,000 z1d.12xlarge 80,000 z1d.metal 80,000
  • 24.
    © 2019, AmazonWeb Services, Inc. or its affiliates. All rights reserved. 265.1 883 1685.8 66.14 165.5 1259.5 66.15 165.5 584.6 21.98 21.13 37.49 264.9 912.1 791.8 66.14 165.5 703.6 66.19 165.5 538.2 9.009 9.07 101.1 0 500 1000 1500 2000 gp2 16000 IOPS io1 64000 IOPS nvme local storage IOPS 비교 (MB/s) Seq Read(Q32T1) Random Read(Q8T8) Rand Read(Q32T1) Random Read(Q1T1) Seq Write(Q32T1) Random Read(Q8T8)2 Random Read(Q32T1) Random Read(Q1T1)2 I/O 성능 테스트 결과 (참조) • 시험은 Crystal Disk Mark 사용 • C5d.9xl 에서 nvme Local Disk 900GB, GP2 10T, IO1 4T 테스트 • 높은 IO 성능 시험을 위해서는 Queue/Thread 수를 충분히 늘려 Load를 병렬로 증가
  • 25.
    © 2019, AmazonWeb Services, Inc. or its affiliates. All rights reserved.© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
  • 26.
    © 2019, AmazonWeb Services, Inc. or its affiliates. All rights reserved. EC2 Networking 성능 향상 1/2 1. 단순한 가상 인터페이스(ENI)에서 시작 • 모든 Network I/O가 Hypervisor driver pane을 거쳐 처리 • 3세대 이전 2. 향상된 네트워킹(SR-IOV) 지원 • Single Route IO Virtualization: Guest OS에서 Network I/O 직접 액세스 • 3세대 이후 M4,C3,C4,D3,I2,R3
  • 27.
    © 2019, AmazonWeb Services, Inc. or its affiliates. All rights reserved. EC2 Networking 성능 향상 2/2 3. 향상된 네트워킹(ENA) 지원 • SR-IOV + Multiple Tx/Rx queue(Linux), RSS(Windows) • A1, C5, C5d, C5n, F1, G3, H1, I3, M4.16XL, M5, M5a, M5d, P2, P3, R4, R5, R5a, R5d, T3, u-6tb1.metal, u-9tb1.metal, u-12tb1.metal, X1, X1e, z1d (Nitro based EC2 기본탑재) 4. 특정 인스턴스, 최대 100Gbps의 초고속 인터페이스 • Small Packet으로도 높은 대역을 지속가능한 성능 • Large Packet으로는 더욱 고효율의 대역을 지원
  • 28.
    © 2019, AmazonWeb Services, Inc. or its affiliates. All rights reserved. 100Gbps 세부 사항 • 인스턴스 이름에 c5n과 같이 n으로 끝나는 인스턴스들은 최대 100Gbps의 대역폭을 제공 • 100Gbps는 현재 가장 큰 크기의 인스턴스가 필요 • 같은 크기라면 C5에 비해서 C5n이 더 높은 유효 Bandwidth를 제공 모델 네트워크 대역폭(Gbps) EBS 대역폭(Mbps) 모델 네트워크 대역폭(Gbps) EBS 대역폭(Mbps) c5.large 최대 10 최대 3,500 c5n.large 최대 25 최대 3,500 c5.xlarge 최대 10 최대 3,500 c5n.xlarge 최대 25 최대 3,500 c5.2xlarge 최대 10 최대 3,500 c5n.2xlarge 최대 25 최대 3,500 c5.4xlarge 최대 10 3,500 c5n.4xlarge 최대 25 3,500 c5.9xlarge 10 7,000 c5n.9xlarge 50 7,000 c5.18xlarge 25 14,000 c5n.18xlarge 100 14,000
  • 29.
    © 2019, AmazonWeb Services, Inc. or its affiliates. All rights reserved. Jumbo frame 지원, 성능 향상 가능 • 인터넷과의 통신에서는 MTU크기 1500을 사용 • 동일 리젼, 또는 VPC, 또는 VPC 피어링에서는 Jumbo Frame을 활용 가능 • Route 별 MTU, 또는 복수개의 ENI를 활용하여 개별 인터페이스별로 별도의 MTU와 ROUTE를 지정 • Amazon Linux 2에서는 EC2인스턴스 사이의 트래픽은 점보 프레임을 지원하는 인스턴스들의 경우 MTU값이 9001로 기본 설정
  • 30.
    © 2019, AmazonWeb Services, Inc. or its affiliates. All rights reserved.
  • 31.
    © 2019, AmazonWeb Services, Inc. or its affiliates. All rights reserved. • Iperf3 기본 설정 사용, client –t 20 option • MTU 1500 간단한 Network 성능 시험 테스트 구성 Host : C5n.18xlarge Clients : 9 x C5 instances MTU : 1500 Total Bandwidth ( C5n ) 56Gbps CPU Load Load Avg 1.86, Avg CPU : 7-7.5% - 72 Core system이므로, CPU 사용량이 매우 높은 것을 알수 있음. 네트워킹은 상당히 CPU intensive한 작업 테스트 구성 Host : C5n.18xlarge Clients : 9 x C5 instances MTU : Amazon Linux 2 기본 설정 : MTU 9001(Jumbo Frame) Total Bandwidth ( C5n ) 67Gbps - Placement Group 사용 및 Client instance를 늘려 최대 98Gbps까지 확인 CPU Load Load Avg 1.3, Avg CPU : 6-6.8% - MTU 1500과 비교하여 MTU 9001 점보프레임을 사용한 결과, 처리 대역폭 뿐만 아니라CPU 사용량이 현저히 감소한 것을 확인
  • 32.
    © 2019, AmazonWeb Services, Inc. or its affiliates. All rights reserved. 네트워크 성능향상을 위한 참조 사항 • 대용량 네트워크 트래픽은 고성능 네트워크와 트래픽을 처리하기 위한 높은 CPU 성능도 필요 • 내부에서 대용량 트래픽을 다루는 경우 Jumbo Frame의 적극적 활용을 고려 가능 • Device Driver 단에서는 수신 버퍼 사이즈 조정으로 성능 향상 가능 • ENA NIC의 고급 속성에서 수신 버퍼를 최대 8192의 값으로 구성 • 경우에 따라 RSS와 같은 복수 코어 대응이 대용량 트래픽을 처리하는데 효과적
  • 33.
    © 2019, AmazonWeb Services, Inc. or its affiliates. All rights reserved.© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
  • 34.
    © 2019, AmazonWeb Services, Inc. or its affiliates. All rights reserved. Amazon Aurora 글로벌 데이터베이스 장점 • 전 세계적으로 분산된 애플리케이션을 위해 설계 • 단일 Amazon Aurora 데이터베이스를 여러 AWS 리전으로 확장 • 데이터베이스 성능에 어떠한 영향도 주지 않고 데이터를 복제 • 각 리전에서 낮은 지연 시간으로 빠른 로컬 읽기를 지원 • 리전 규모의 가동 중단 발생 시 재해 복구를 제공 • 1초 미만의 일반적인 지연 시간으로 스토리지 기반 복제를 사용 • 리전의 성능 저하 또는 가동 중단은 드문 일이지만, Secondary 리전 중 하나가 1분 이내에 읽기 및 쓰기 기능으로 승격 가능
  • 35.
    © 2019, AmazonWeb Services, Inc. or its affiliates. All rights reserved. 물리적 복제로 빠르게 데이터 이동 가능 Primary region Secondary region 1 ASYNC 4/6 QUORUM Continuous backup AZ 1 Primary Instance Amazon S3 AZ 2 Replica Instance AZ 3 Replica Instance Replication Server Replication Fleet Storage Fleet 11 4 AZ 1 Replica Instance AZ 2 AZ 3 ASYNC 4/6 QUORUM Continuous backup Amazon S3 Replica Instance Replica Instance Replication Agent Replication Fleet Storage Fleet 3 3 2 ① Primary Instance가 Log record들을 storage node, replica instance, replication server에 동시에 전송합니다. ② Replication server는 Log record들을 Secondary Region의 Replication Agent로 스트리밍합니다. ③ Replication agent는 Log record들을 Storage node, replica instance들로 동시에 전송합니다. ④ 장애 발생시, 동기화를 위하여 Replication serve가 Storage node에서 Log record들을 확인하여 재전송합니다. High throughput: Up to 150K writes/sec – negligible performance impact Low replica lag: < 1 sec cross-region replica lag under heavy load Fast recovery: < 1 min to accept full read-write workloads after region failure
  • 36.
    © 2019, AmazonWeb Services, Inc. or its affiliates. All rights reserved. 강조; 낮은 지연 시간과 빠른 복구 • 모든 리전에서 1초 내에 데이터에 액세스 • 추가 리전으로 데이터베이스 확장시 성능에 어떠한 영향도 미치지 않음. 교차 리전 복제는 Aurora 스토리지 계층의 전용 인프라를 사용하여 기본 및 보조 리전의 데이터베이스 리소스를 애플리케이션 요구에 따라 완전히 서비스 가능한 상태로 유지 • 교차 리전 재해 복구 • 기본 리전에서 성능 저하 또는 가동 중지가 발생한 경우 보조 리전 중 하나를 승격하여 읽기/쓰기 책임을 맡길 수 있음. Aurora 클러스터는 리전이 완전히 가동 중지되는 경우에도 1분 이내에 재해 복구가 가능합니다. 이로써 애플리케이션에 효율적인 1초의 RPO(복구 목표 지점) 및 1분 미만의 RTO(복구 목표 시간)를 제공하여, 글로벌 비즈니스 연속성 계획의 탄탄한 기반을 제공
  • 37.
    © 2019, AmazonWeb Services, Inc. or its affiliates. All rights reserved. 글로벌 복제 성능 Logical 복제 Physical 복제 0 100 200 300 400 500 600 0 50,000 100,000 150,000 200,000 250,000 seconds QPS QPS Lag 0.00 0.50 1.00 1.50 2.00 2.50 3.00 3.50 4.00 4.50 5.00 0 50,000 100,000 150,000 200,000 250,000 seconds QPS QPS Lag Logical vs. physical 복제
  • 38.
    © 2019, AmazonWeb Services, Inc. or its affiliates. All rights reserved. 실제 복제 실험 (참조) 단순한 Schema와 간단한 Insert Loop, 그리고 Select Loop을 통하여 실제 성능 체감
  • 39.
    © 2019, AmazonWeb Services, Inc. or its affiliates. All rights reserved. • 글로벌 데이터베이스 구성 • Primary Region: N.Virginia • Secondary Region: Ireland • Primary Insert , Secondary Select 동시 수행 Latency 참고를 위한 실제 시험
  • 40.
    © 2019, AmazonWeb Services, Inc. or its affiliates. All rights reserved. Amazon Aurora 글로벌 데이터베이스 이점 정리 • Replay 방식의 Replication 대비 매우 짧은 RPO(1초), RTO(1분) 목표의 DR 구성이 가능 • Primary Database에 성능 영향 없이 Global Database 구성 가능 • Primary가 끊어졌을 때 즉시 Secondary Region의 Global Databse를 독자적인 Master Node로 승격시켜 DR 복구
  • 41.
    © 2019, AmazonWeb Services, Inc. or its affiliates. All rights reserved.© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
  • 42.
    © 2019, AmazonWeb Services, Inc. or its affiliates. All rights reserved. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. 마치며 • AWS서비스는 CPU, Disk IO, Networking과 같은 Low level에서 Database 서비스와 같은 High level까지 모든 방면에서 계속 진화하고 있습니다. • 대부분의 경우, AWS의 새로운 서비스들은 기존의 서비스에서 손쉽게 변경 가능합니다. • 프로젝트를 시작할 때 잡은 기준 스펙과 성능을 계속 고수할 필요가 없습니다. • 최적의 결과를 내기 위하여 주기적으로 “현재”의 상황에 맞는 성능을 검토하고 사용할 필요가 있습니다.