[오픈소스컨설팅]Day #1 MySQL 엔진소개, 튜닝, 백업 및 복구, 업그레이드방법Ji-Woong Choi
MySQL 소개
간략한 소개
version history
MySQL 사용처
제품 군 변화
시장 변화
MySQL 구성
MySQL 클라이언트 / 서버 개념
클라이언트 프로그램
MySQL 설치
MySQL 버전
MySQL 설치
MySQL 환경 설정
환경설정, 변수 설정
MySQL 스토리지 엔진 소개
MySQL tuning 소개 및 방법
데이터 백업/복구 방법
백업
복구
MySQL Upgrade
SELinux(Security-Enhanced Linux)는 미국 국가 안보국(NSA)에서 개발한 것으로,
관리자가 시스템 엑세스 권한을 효과적으로 제어할 수 있게 하는 Linux 시스템용 보안 아키텍처입니다.
특정 서비스의 구동이 원활하지 않거나 혹은 관리의 번거로움 등으로 인해 SELinux를 Disable 하는 경우가 많은데요,
SELinux를 사용해야 하는 이유와 작동 방식에 대해 설명합니다,
[오픈소스컨설팅]Day #1 MySQL 엔진소개, 튜닝, 백업 및 복구, 업그레이드방법Ji-Woong Choi
MySQL 소개
간략한 소개
version history
MySQL 사용처
제품 군 변화
시장 변화
MySQL 구성
MySQL 클라이언트 / 서버 개념
클라이언트 프로그램
MySQL 설치
MySQL 버전
MySQL 설치
MySQL 환경 설정
환경설정, 변수 설정
MySQL 스토리지 엔진 소개
MySQL tuning 소개 및 방법
데이터 백업/복구 방법
백업
복구
MySQL Upgrade
SELinux(Security-Enhanced Linux)는 미국 국가 안보국(NSA)에서 개발한 것으로,
관리자가 시스템 엑세스 권한을 효과적으로 제어할 수 있게 하는 Linux 시스템용 보안 아키텍처입니다.
특정 서비스의 구동이 원활하지 않거나 혹은 관리의 번거로움 등으로 인해 SELinux를 Disable 하는 경우가 많은데요,
SELinux를 사용해야 하는 이유와 작동 방식에 대해 설명합니다,
본 세션에서는 Amazon의 관리형 데이터베이스 서비스(RDS) 중 기존 상용데이터베이스의 5배 성능 및 1/10 가격으로도 확장성을 보장하는 Aurora에 대한 소개 및 사용법 그리고 기존의 DB에서의 마이그레이션 방법에 대해 소개해드립니다. 10월 리인벤트를 통해 동경 리전에 Aurora를 사용가능하게 되었습니다.
천만사용자를 위한 AWS 클라우드 아키텍처 진화하기 – 문종민, AWS솔루션즈 아키텍트:: AWS Summit Online Korea 2020Amazon Web Services Korea
발표영상 다시보기: https://youtu.be/z68l2X5KoC4
AWS 클라우드는 초기에 적은 비용으로 웹 서비스를 시작하고, 향후 사업이 발전했을 때 천만 이상의 유저가 사용할 수 있는 고가용성, 확장성, 민첩성이 뛰어난 웹 서비스를 만들 수 있습니다. 본 세션에서는 작은 서비스로 시작하여 AWS의 다양한 서비스를 사용하여 천만 이상의 대규모 유저 트래픽을 수용할 수 있는 웹 서비스로 발전시키는 것을 단계별로 오토스케일링, 트래픽 경감, 모니터링과 자동화, 고가용성 확보를 위한 아키텍처 구성 방법을 소개합니다.
게임 서비스를 위한 AWS상의 고성능 SQL 데이터베이스 구성 (이정훈 솔루션즈 아키텍트, AWS) :: Gaming on AWS 2018Amazon Web Services Korea
게임 서비스를 위한 AWS상의 고성능 SQL 데이터베이스 구성
게임 서비스 아키텍처에서 관계형 데이터베이스는 핵심 컴포넌트이며 또한 전체 서비스의 성능 병목 지점이 되곤 합니다. 이 세션에서는 AWS 상에서 게임 서비스를 구현할 때, 기존 물리환경에서의 DB 성능과 동일하거나 더 높은 성능을 얻을 수 있는 구성을 설명 드리며, MS SQL 구성의 성능 데모를 시연하고자 합니다.
재해복구에 대한 대비는 온프레미스를 이용할때나, 클라우드를 이용할때나 항상 중요합니다. 이 세션에서는 AWS Backup을 활용하여 최소한의 비용으로 클라우드 환경에서 운영 중인 시스템에 대한 멀티 리전 재해복구를 자동화하는 방안을 살펴봅니다. 더불어 온프레미스에서 운영중인 시스템에 대한 재해복구를 비용 효율적으로 자동화하기 위해 어떻게 AWS Elastic Disaster Recovery를 활용할 수 있는지도 알아봅니다. AWS 서비스를 활용해 대부분의 시간 동안 유휴 상태인 복구 사이트에 대한 비용을 최소화하면서도 재해복구를 자동화할 수 있습니다.
3. v• 완전 관리형 관계형 데이터베이스 서비스
• Aurora, MySQL, MariaDB, PostgreSQL, Oracle, SQL Server
• 인스턴스 및 스토리지 확장성
• Multi-AZ 기능을 통한 고가용성 구성
• 스냅샷(Snapshot)을 통한 백업/복구 구성
• 읽기 복제(Read Replica)를 통한 확장성
Amazon
RDS
Aurora
RDS 서비스 개요
4. vv
Amazon Aurora 개요
• Amazon Aurora는 MySQL 호환 관계형 데이터베이스 엔진
• Aurora는 상용 데이터베이스의 10분의 1 가격으로 MySQL보다 최고 5배
뛰어난 성능을 제공
• 3 가용영역에 거쳐 6개의 복제를 저장하여 고가용성 제공
• Amazon S3에 지속적으로 데이터를 백업
• 지역 내 15개 Amazon Aurora Replicas
• 10GB에서 64TB까지 스토리지 자동 증가
• 지역 : Virginia, Oregon, Ireland 및 Tokyo
5. vv
Amazon Aurora 개요
• 서비스 중심 아키텍처의 적용
• 로깅 및 스토리지 레이어에, 멀티-
티넌트, 스케일-아웃,
데이터베이스 최적화된 스토리지
서비스 적용
• 내부 운영을 위하여 EC2, VPC,
DynamoDB, SWF, Route 53 등
AWS 기존 서비스 활용
• 연속 백업을 위하여 Amazon S3
통합
Logging
+
Storage
SQL
Transactions
Caching
Control
PlaneData
Plane
Amazon S3
DynamoDB
Amazon SWF
Amazon Route 53
6. vv
Amazon Aurora의 스토리지
• 기본 고가용성
• 3가용영역에 6-way 복제
• 4 / 6 쓰기, 3 / 6 읽기 쿼럼
• S3 저장소에 연속 백업
• SSD, 스케일-아웃, 멀티-
테넌트 스토리지
• 연속적 스토리지 확장
• 최대 64TB 크기
• 사용한만큼만 지불
• 로그-구조 기반 스토리지
SQL
Transactions
AZ
1 AZ
2 AZ
3
Caching
Amazon S3
7. vv
Amazon Aurora Replica의 읽기 복제
MySQL 읽기 확장
• 복제는 반드시 로그를 재생
• 복제는 마스터에 추가적인 부하
• 복제 지연의 증가
• 페일오버 시 데이터 유실 발생 가능
Page
cache
invalidation
Aurora Master
30%
Read
70%
Write
Aurora
Replica
100%
New
Reads
Shared
Multi-‐AZ
Storage
MySQL Master
30%
Read
70%
Write
MySQL
Replica
30%
New
Reads
70%
Write
Single
threaded
binlog
apply
Data
Volume Data
Volume
Amazon Aurora 읽기 확장
• 로그 재생 없음
• 마스터 부하 최소, 최대 15개 복제
• ~100 ms 복제 지연
• 동일 스토리지를 공유하여 페일오버
시 데이터 유실 없음
9. vv
2. RDS MySQL
• Multi-AZ 기능
• 동기적 복제
• 자동 페일-오버
MySQL 고가용성 구성 비교
Availability
Zone
Master
(EC2
+
EBS)
Availability
Zone
Slave
(EC2
+
EBS)
Replication
1. MySQL on EC2/EBS
• EC2 + EBS 직접 설치
• MySQL Replication 기반
Availability
Zone
RDS
Master
MySQL
Availability
Zone
RDS
Standby
MySQL
Multi-‐AZ
/w
Syncronoous
Replication
Availability
Zone
RDS
Master
Aurora
Availability
Zone
RDS
Standby
Aurora
3. RDS Aurora
• 고가용성 스토리지 서비스
• 자동 페일-오버
• 빠른 크래시 복구
Multi-‐AZ
/w
Aurora
Replica
10. vv
Multi-AZ 배포를 통한 고가용성
Enterprise-grade fault tolerance solution for production databases
11. vv
Multi-AZ 배포 시 페일오버 프로세스
• Planned 또는 unplanned 다운타임 발생 시,
• 단일 가용 영역 장애
• 프라이머리 DB 인스턴스 장애
• DB 인스턴스 타입 변경
• DB 인스턴스의 소프트웨어 패치
• ‘Reboot with failover’를 통한 수동 페일오버
• 다른 가용 영역의 Standby 인스턴스 자동으로 승격
• 일반적으로 60-120초 시간 이내 완료. (대규모 트랜잭션 및 복구
프로세스 시간에 따라 증가할 수 있음)
12. vv
Multi-AZ 배포 시 페일오버 프로세스
• DB 인스턴스 엔드포인트 유지하며, DNS 레코드 업데이트
• Java DNS 캐싱에 따라 구성 변경 필요할 수 있음
• http://docs.aws.amazon.com/AWSSdkDocsJava/latest/DeveloperGuide/java-dg-jvm-
ttl.html
• JVM 사용 모든 어플리케이션 글로벌 적용
• Set networkaddress.cache.ttl in the$JAVA_HOME/jre/lib/security/java.security file:
• networkaddress.cache.ttl=60
• 단일 어플리케이션 적용
• set networkaddress.cache.ttl in your application’s initialization code:
• java.security.Security.setProperty("networkaddress.cache.ttl" , "60");
• 클라이언트는 접속 재설정(re-establish) 필요
17. vv
Amazon Aurora의 인스턴스 자동 페일-오버
읽기 복제 있는 경우
• 기존 복제를 새 기본 인스턴스로 승격
• DB 클러스터 엔드포인트 유지하며, 신규 기본
인스턴스로 DNS 레코드 변경
• 일반적으로 1분 이내에 완료
AZ
1
Primary
instance
Replica
instance
Replica
instance
Replica
instance
Shared
Multi-‐AZ
Storage
Automatic
Failover
to
Replica
Instance
AZ
1
Primary
instance
Primary
instance
Shared
Multi-‐AZ
Storage
Create
new
primary
Instance
Aurora Replica가 있는 경우 Aurora Replica가 없는 경우
읽기 복제 없는 경우
• 동일 가용 영역에 새 DB 인스턴스 생성 시도
• 생성 불가 시 다른 가용 영역에 신규 DB
인스턴스 생성 시도
• 일반적으로 15분 이내에 완료
AZ
3AZ
2AZ
3AZ
2
Primary
instance
19. v기존 데이터베이스
• 최종 체크포인트 이후 로그 재생 필요
• MySQL은 싱글-쓰레드 동작 및 다량의
디스크 억세스 필요
Amazon Aurora
• 스토리지 수준에서 읽기 시 온-디맨드
형태로 Redo 레코드 재생
• 병렬, 분산, 비동기
Checkpointed
Data Redo
Log
Crash
at
T0 requires
a
re-‐application
of
the
SQL
in
the
redo
log
since
last
checkpoint
T0 T0
Crash
at
T0 will
result
in
redo
logs
being
applied
to
each
segment
on
demand,
in
parallel,
asynchronously
신속한 크래시 복구
27. vv
1. MySQL on EC2/EBS
• EBS Snapshot 기반
• 또는 백업 서버 구성
2. RDS MySQL
• RDS 스냅샷 (자동/수동)
• Point-in-Time 복구
Availability
Zone
Master
(EC2
+
EBS)
Availability
Zone
Slave
(EC2
+
EBS)
Replication
Availability
Zone
RDS
Master
MySQL
Availability
Zone
RDS
Standby
MySQL
Multi-‐AZ
/w
Syncronoous
Replication
Availability
Zone
RDS
Master
Aurora
Availability
Zone
RDS
Standby
Aurora
3. RDS Aurora
• RDS 스냅샷 (자동/수동)
• Point-in-Time 복구
Multi-‐AZ
/w
Aurora
Replica
MySQL 백업/복구 구성 비교
EBS
snapshot
RDS
snapshots
RDS
snapshots
Backup
(EC2
+
EBS)
32. vv
Amazon RDS의 스토리지 백업 및 복구
자동 백업(Automated Backup)
• RDS는 백업을 자동으로 생성
• 신규 DB 인스턴스에 자동으로 활성화
• 백업 보관 기간(Backup Retention
Period) 동안 데이터 보관 (1~35일)
• 연속 및 증분 백업
• 백업 중 성능 영향 없음
스냅샷 (DB Snapshots)
• 사용자가 생성한 백업
• 원하는 주기로 백업
• 백업 보관 기간 이상 보관
• 어느 시점으로도 복구 가능
33. vv
Amazon RDS의 스토리지 백업 및 복구
복구 (Restore)
• 백업 또는 스냅샷으로부터 신규
Aurora DB 클러스터 생성
• 백업 보관 주기 내 어느 시점으로든
복구
• Latest Restorable Time : 보통 5분 이내
• Earliest Restorable Time : 백업 보관 주기
• Aurora Backup은 연속, 증분 백업으로
복구 시간 향상을 위해 빈번한 스냅샷
생성을 할 필요 없음
50. vv
3. RDS Aurora
• Aurora Replica 생성
• 낮은 복제 지연
• 최대 15개
2. RDS MySQL
• MySQL Replica 생성
• Cross-region Replica 지원
• 최대 5개
1. MySQL on EC2/EBS
• MySQL Replication 기반
MySQL 확장성 구성 비교
Availability
Zone
Master
(EC2
+
EBS)
Availability
Zone
Replica
(EC2
+
EBS)
Replication
Availability
Zone
RDS
Primary
MySQL
Availability
Zone
RDS
REplica
MySQL
Ayncronoous
Replication
Availability
Zone
RDS
Primary
Aurora
Availability
Zone
RDS
Replica
Aurora
Aurora
Replica
51. vv
Amazon Aurora Replica의 읽기 복제
MySQL 읽기 확장
• 복제는 반드시 로그를 재생
• 복제는 마스터에 추가적인 부하
• 복제 지연의 증가
• 페일오버 시 데이터 유실 발생 가능
Page
cache
invalidation
Aurora Master
30%
Read
70%
Write
Aurora
Replica
100%
New
Reads
Shared
Multi-‐AZ
Storage
MySQL Master
30%
Read
70%
Write
MySQL
Replica
30%
New
Reads
70%
Write
Single
threaded
binlog
apply
Data
Volume Data
Volume
Amazon Aurora 읽기 확장
• 로그 재생 없음
• 마스터 부하 최소, 최대 15개 복제
• ~100 ms 복제 지연
• 동일 스토리지를 공유하여 페일오버
시 데이터 유실 없음
52. vv
• 초당 13,800 회 업데이트 발생 시 Aurora Replica는 7.27 밀리 초 지연
• 동일 사양의 MySQL 5.6 은 초당 2,000 회 업데이트 발생 시 ~2초 지연
Read Replica 지연 (console screenshot)
53. vv
Aurora 엔드포인트
• 클러스터 엔드포인트
• 언제나 DB 클러스터의 프라이머리 인스턴스에 접속
• 읽기와 쓰기 모두 수행
• 프라이머리 인스턴스 페일오버 시 새로운 프라이머리 인스턴스 지정
• e.g.) Cluster Endpoint: auroraha.cluster-cnehurulmovt.us-east-
1.rds.amazonaws.com:3306
• 인스턴스 엔드포인트
• DB 클러스터 내 각 인스턴스(프라이머리 또는 읽기 전용)에 접속
• 인스턴스 역할에 따라 읽기 또는 쓰기 수행
• e.g.) Endpoint: auroraha.cnehurulmovt.us-east-1.rds.amazonaws.com
55. MySQL 커뮤니티를 위한 880달러 선물!
http://bit.ly/awskr-feedback
AWS Activate 패키지
100달러 무료 크레딧 + 80 달러 Qwiklab Credit
600달러 온라인 강좌 수강권+ 100달러 1개월 비지니스 서포트
등록하시면 패키지를 받으실 수 있는 URL을 이메일로 보내드립니다!