SlideShare a Scribd company logo
1 of 20
1
AWS Architecture
Pattern - 가용성을 고려한 웹 서비스 인프라 설계
2019-10-24, HUE
2
Topic 1.
퍼블릭 클라우드는 아웃소싱 서비스가 아니다.
≠ 아웃소싱 (Outsourcing)
→ 이용 약관에 명시된 SLA 외에는 책임지지 않음
→ 제공하는 다양한 서비스를 이용하여 장애에 대응가능
Infrastructure 설계 핵심 사항 (가용성 편)
1. 데이터 센터 다중화
: 복수의 가용 영역(AZ)에 걸쳐 인프라를 구성하는 것을 원칙으로 한다.
2. 장애 모니터링 및 자동 복구
: 클라우드 워치 서비스를 이용하여 장애를 탐지하고, 자동으로 복구한다.
3. 리전의 다중화
: DNS 서비스인 Route 53의 DNS 장애 복구 기능을 사용하여 장애 발생 시 Backup-site로 전환한다.
5
Topic 2.
장애 발생을 전제로한 설계
AWS Cloud
VPC
User
Seoul Region (Main-Site)
Cloud
Watch
AWS Cloud
ELB
Availability
Zone (A)
Availability
Zone (B)
EC2 EC2
S3
AWS Cloud
VPC
Availability
Zone (A)
Availability
Zone (B)
ELB
Tokyo Region (Backup-Site)
EC2 EC2
S3
RDS
Master Stanby Read
Replicas
Availability-Oriented Architecture
Route 53
RDS RDS
AWS Cloud다중 AZ에 AP 서버를 배
치, ELB로 로드밸런싱
클라우드 워치로 모니터
링, 장애 발생 시 자동 복
구 실시
마스터 장애 발생 시 스
탠바이로 교체
백업사이트로 데이터 동
기화
메인사이트 장애 발생 시
마스터로 승격
7
Topic 3.
AZ, 다중화가 기본이다.
Availability Zone(AZ), 다중화가 기본이다.
▶ 가장 기본적이며, 저렴하고 효과가 큰 가용성 보장 방법?
: 복수의 가용 영역(AZ)에 걸쳐 인프라를 구성하는 것
Region
Availability
Zone (A)
Availability
Zone (B)
. . .
각 AZ 내에는 별도의
백본망과 전원이 존재
하나의 리전에는 최소 2
개의 AZ가 존재함.각 AZ는 서로에게 영향을 미치지 않음 !
9
Topic 4.
SLA로 추산한 가용성 ??.?%
SLA로 추산한 가용성 ??.?%
서비스 SLA 장애로 인정되는 경우 필요조건
EC2 99.95% 동일 리전 내에서, 사용자가 인스턴스를 실행하는 복수의 AZ에 대해 외부에서 접속이 안되는 경우
복수의 AZ에 리소스를 배치
EBS 99.95% 동일 리전 내에 사용자가 인스턴스를 실행하는 복수의 AZ에서 읽기/쓰기가 불가능한 경우
RDS 99.95% 멀티-AZ 인스턴스 실행을 요구하는 모든 접속이 1분간 실행되지 않는 경우
Route 53 100% DNS 쿼리 응답에 실패한 경우
=> AWS에서 추산한 가용성 99.90% !!
11
Topic 5.
EC2 인스턴스 자동 복구 방법
EC2 인스턴스 자동 복구 방법
Cloud Watch
-> 모니터링 서비스가 주력이지만, 자동 복구도 가능 !
Auto Recovery 기능을 이용 (일일 최대 3번까지)
* 자동 복구가 실패하는 경우도 있음.
주요 모니터링 지표 내용
EC2
StatusCheckFailed_System
StatusCheckFailed_Instance
CPUUtilization
호스트 하드웨어 레벨의 상태 체크 결과(0: 정상, 1: 이상)
인스턴스 레벨의 상태 체크 결과(0: 정상, 1 : 이상)
CPU 사용률(단위 : %)
ELB
HealthyHostCount
BackendConnectionErrors
HTTPCode_ELB_5XX
Latency
ELB에 연결된 정상적인 EC2 인스턴스 수
ELB로부터 EC2 인스턴스로의 커넥션 에러 수
HTTP(S) 요청에 대해 HTTP 500번대 에러가 발생한 횟수
ELB에 요청 도착 후 ELB로부터 응답이 반환되기까지의 평균 시간 (단위 : 초)
RDS
FreeStorageSpace
DatabaseConnections
CPUUtilization
이용 가능한 스토리지 용량(단위 : 바이트)
사용 중인 데이터베이스 접속 수
CPU 사용률(단위 : %)
Auto-Scaling의 트리거로도 사용가능 !
(EX.. EC2의 다운 / CPU 사용률 상승 / Request 증가)
13
Topic 6.
발생 빈도가 적은 대규모 장애에 대응하기
발생 빈도가 적은 대규모 장애에 대응하기
Region
Availability
Zone (A)
Availability
Zone (B)
. . .
희박하겠지만... 지진 등 대규모 재해 혹은 AWS 내부 인력의 실수 등
으로 인한 리전의 사용 불가능도 고려 대상 !
1) 장애 발생 시 자동으로 리전 전환하기
(다운타임이 짧지만, 고비용)
2) 백업 데이터로부터 복구용 서버를 만들기
(다운타임이 길지만, 저비용)
15
Topic 7.
백업 사이트로 자동 전환하기
백업 사이트로 자동 전환하기
Route 53
- AWS Route 53 서비스의 DNS 장애 조치(Failover)를 이용
- 기본(메인) 사이트의 ELB Health Check 진행, 인스턴스와 애플리케이션이 모두 다운되었
을 경우 백업 사이트로 연결 재설정
- 기본 사이트와 백업 사이트 간에 동일한 데이터가 있다는 것을 전제
백업 사이트로 자동 전환하기 (데이터 동기화 방법)
- AWS EBS에는 실시간 복제 기능이 없음.
1) 정기적으로 스냅샷을 찍어 백업 사이트로 복사 (Ex. Copy-snapshot 명령어를 CLI에서 반
복 실행하게 설정)
Amazon Elastic Block
Store 2) EC2에서 실행되는 데이터 동기화 도구(Ex. Linux의 DRBD 등)을 이용하여 실시간 동기화
Amazon RDS
- Cross-Region Read Replicas (읽기 전용 복제본) 기능을 이용
1) 읽기 전용 복제본의 마스터 승격은 RDS의 API로 제공됨.
- Route 53 Failover 기능과 연동되지 않는 문제 발생 !
( 자동으로 시스템 다운을 감지하고, 마스터 승격을 위한 API 실행될 수 있도록 구성 필요 )
1) 클라우드 워치를 통해 감시하고, 경보를 통해 Lambda를 호출 후 명령을 실행
2) 자빅스(Zabbix)와 같은 도구와 연계하여 장애 탐지를 트리거로 하여 명령을 실행
백업 사이트로 자동 전환하기 (데이터 동기화 방법)
Amazon S3
- Cross-Region Replication 기능을 이용
종합적으로, DNS 장애 조치에 몇 분 정도 소요됨.
그러나 온프레미스 환경과의 다운 타임을 비교하였을 때 훨씬 빠르게 복구 가능
19
Topic 8.
데이터 백업으로 다중화 비용 아끼기
AWS Cloud
VPC
Seoul Region (Main-Site)
AWS Cloud
ELB
Availability
Zone (A)
Availability
Zone (B)
EC2 EC2
AWS Cloud
VPC
Availability
Zone (A)
Availability
Zone (B)
ELB
Tokyo Region (Backup-Site)
EC2 EC2
RDS
Master Stanby Master
Availability-Oriented Architecture (저렴하게, HA 보장하기)
RDS RDS
AWS Cloud
최신 EC2 인스턴스로
AMI 작성
SnapShot
AMI
EBS와 RDS 스냅샷을 정
기적으로 작성
SnapShot
스냅샷을 백업 사이트에
복사
AMI를 백업 사이트에 복
사
평소에는 정지 상태로
두고, 사이트 전환 시에
AMI와 스냅샷으로 실행
S3는 크로스 리전 복제
기능을 그대로 이용

More Related Content

What's hot

My sql 장애복구
My sql 장애복구My sql 장애복구
My sql 장애복구
kidoki
 
SQL Azure 실무 도입하기
SQL Azure 실무 도입하기SQL Azure 실무 도입하기
SQL Azure 실무 도입하기
정현 남
 

What's hot (20)

20170609 tech day_4th-nginx(lb)-이재훈
20170609 tech day_4th-nginx(lb)-이재훈20170609 tech day_4th-nginx(lb)-이재훈
20170609 tech day_4th-nginx(lb)-이재훈
 
AWS로 불꺼온 나날들
AWS로 불꺼온 나날들AWS로 불꺼온 나날들
AWS로 불꺼온 나날들
 
Docker를 활용한 손쉬운 ECS 활용기 - 김민태 (AUSG) :: AWS Community Day Online 2021
Docker를 활용한 손쉬운 ECS 활용기 - 김민태 (AUSG) :: AWS Community Day Online 2021Docker를 활용한 손쉬운 ECS 활용기 - 김민태 (AUSG) :: AWS Community Day Online 2021
Docker를 활용한 손쉬운 ECS 활용기 - 김민태 (AUSG) :: AWS Community Day Online 2021
 
[Gaming on AWS] AWS와 함께 한 쿠키런 서버 Re-architecting 사례 - 데브시스터즈
[Gaming on AWS] AWS와 함께 한 쿠키런 서버 Re-architecting 사례 - 데브시스터즈[Gaming on AWS] AWS와 함께 한 쿠키런 서버 Re-architecting 사례 - 데브시스터즈
[Gaming on AWS] AWS와 함께 한 쿠키런 서버 Re-architecting 사례 - 데브시스터즈
 
Front-end Development with Ruby on Rails
Front-end Development with Ruby on RailsFront-end Development with Ruby on Rails
Front-end Development with Ruby on Rails
 
My sql 장애복구
My sql 장애복구My sql 장애복구
My sql 장애복구
 
03.Ansible 소개
03.Ansible 소개03.Ansible 소개
03.Ansible 소개
 
Dynamodb 삽질기
Dynamodb 삽질기Dynamodb 삽질기
Dynamodb 삽질기
 
Aws로 ci하기 안기욱
Aws로 ci하기 안기욱Aws로 ci하기 안기욱
Aws로 ci하기 안기욱
 
글로벌 웹사이트 구축을 꿈꾸는 당신에게: Azure WebSites and WebJobs
글로벌 웹사이트 구축을 꿈꾸는 당신에게: Azure WebSites and WebJobs글로벌 웹사이트 구축을 꿈꾸는 당신에게: Azure WebSites and WebJobs
글로벌 웹사이트 구축을 꿈꾸는 당신에게: Azure WebSites and WebJobs
 
두근두근 ASP.NET 5!
두근두근 ASP.NET 5!두근두근 ASP.NET 5!
두근두근 ASP.NET 5!
 
200.마이크로서비스에 적합한 오픈소스 WAS는 무엇?
200.마이크로서비스에 적합한 오픈소스 WAS는 무엇?200.마이크로서비스에 적합한 오픈소스 WAS는 무엇?
200.마이크로서비스에 적합한 오픈소스 WAS는 무엇?
 
Firebase for Web (웹개발을 위한 파이어베이스) 1 Hosting
Firebase for Web (웹개발을 위한 파이어베이스) 1 HostingFirebase for Web (웹개발을 위한 파이어베이스) 1 Hosting
Firebase for Web (웹개발을 위한 파이어베이스) 1 Hosting
 
[AWS Community Day 2021] AWS와 함께하는 무중단 배포 파이프라인 개선기
[AWS Community Day 2021] AWS와 함께하는 무중단 배포 파이프라인 개선기[AWS Community Day 2021] AWS와 함께하는 무중단 배포 파이프라인 개선기
[AWS Community Day 2021] AWS와 함께하는 무중단 배포 파이프라인 개선기
 
Mcollective orchestration tool 소개
Mcollective orchestration tool 소개Mcollective orchestration tool 소개
Mcollective orchestration tool 소개
 
Blox — Docker 클러스터링에 ECS만으로는 부족하셨다고요?
Blox — Docker 클러스터링에 ECS만으로는 부족하셨다고요?Blox — Docker 클러스터링에 ECS만으로는 부족하셨다고요?
Blox — Docker 클러스터링에 ECS만으로는 부족하셨다고요?
 
Hystrix소개
Hystrix소개Hystrix소개
Hystrix소개
 
Ansible과 CloudFormation을 이용한 배포 자동화
Ansible과 CloudFormation을 이용한 배포 자동화Ansible과 CloudFormation을 이용한 배포 자동화
Ansible과 CloudFormation을 이용한 배포 자동화
 
SQL Azure 실무 도입하기
SQL Azure 실무 도입하기SQL Azure 실무 도입하기
SQL Azure 실무 도입하기
 
임태현, IIS with ASP.NET
임태현, IIS with ASP.NET임태현, IIS with ASP.NET
임태현, IIS with ASP.NET
 

Similar to 가용성을 고려한 웹 서비스 인프라 설계

찾아가는 AWS 세미나(구로,가산,판교) - AWS 클라우드로 서비스 무한대로 확장하기 (박철수 솔루션즈 아키텍트)
찾아가는 AWS 세미나(구로,가산,판교) -  AWS 클라우드로 서비스 무한대로 확장하기 (박철수 솔루션즈 아키텍트)찾아가는 AWS 세미나(구로,가산,판교) -  AWS 클라우드로 서비스 무한대로 확장하기 (박철수 솔루션즈 아키텍트)
찾아가는 AWS 세미나(구로,가산,판교) - AWS 클라우드로 서비스 무한대로 확장하기 (박철수 솔루션즈 아키텍트)
Amazon Web Services Korea
 
천만 사용자를 위한 AWS 클라우드 아키텍쳐 진화하기- AWS Summit Seoul 2017
천만 사용자를 위한 AWS 클라우드 아키텍쳐 진화하기- AWS Summit Seoul 2017천만 사용자를 위한 AWS 클라우드 아키텍쳐 진화하기- AWS Summit Seoul 2017
천만 사용자를 위한 AWS 클라우드 아키텍쳐 진화하기- AWS Summit Seoul 2017
Amazon Web Services Korea
 
H3 2011 클라우드 컴퓨팅 AWS 글로벌 서비스 구축을 위한 선택_데이터지능팀_이호철
H3 2011 클라우드 컴퓨팅 AWS 글로벌 서비스 구축을 위한 선택_데이터지능팀_이호철H3 2011 클라우드 컴퓨팅 AWS 글로벌 서비스 구축을 위한 선택_데이터지능팀_이호철
H3 2011 클라우드 컴퓨팅 AWS 글로벌 서비스 구축을 위한 선택_데이터지능팀_이호철
KTH, 케이티하이텔
 
H3 2011 클라우드 컴퓨팅 AWS 글로벌 서비스 구축을 위한 선택
H3 2011 클라우드 컴퓨팅 AWS 글로벌 서비스 구축을 위한 선택H3 2011 클라우드 컴퓨팅 AWS 글로벌 서비스 구축을 위한 선택
H3 2011 클라우드 컴퓨팅 AWS 글로벌 서비스 구축을 위한 선택
KTH
 
20150125 AWS BlackBelt - Amazon RDS (Korean)
20150125 AWS BlackBelt - Amazon RDS (Korean)20150125 AWS BlackBelt - Amazon RDS (Korean)
20150125 AWS BlackBelt - Amazon RDS (Korean)
Amazon Web Services Korea
 
10월 웨비나 - AWS 상에서 Microsoft SQL Server 운영의 모범 사례 살펴보기 (최정욱 솔루션즈 아키텍트)
10월 웨비나 - AWS 상에서 Microsoft SQL Server 운영의 모범 사례 살펴보기 (최정욱 솔루션즈 아키텍트)10월 웨비나 - AWS 상에서 Microsoft SQL Server 운영의 모범 사례 살펴보기 (최정욱 솔루션즈 아키텍트)
10월 웨비나 - AWS 상에서 Microsoft SQL Server 운영의 모범 사례 살펴보기 (최정욱 솔루션즈 아키텍트)
Amazon Web Services Korea
 
IT 인프라의 새로운 대안 Amazon Web Service
IT 인프라의 새로운 대안 Amazon Web ServiceIT 인프라의 새로운 대안 Amazon Web Service
IT 인프라의 새로운 대안 Amazon Web Service
Gun-su Jang
 
AWS DMS를 통한 오라클 DB 마이그레이션 방법 - AWS Summit Seoul 2017
AWS DMS를 통한 오라클 DB 마이그레이션 방법 - AWS Summit Seoul 2017AWS DMS를 통한 오라클 DB 마이그레이션 방법 - AWS Summit Seoul 2017
AWS DMS를 통한 오라클 DB 마이그레이션 방법 - AWS Summit Seoul 2017
Amazon Web Services Korea
 

Similar to 가용성을 고려한 웹 서비스 인프라 설계 (20)

Building Large Scale Distributed System on AWS - Korean
Building Large Scale Distributed System on AWS - KoreanBuilding Large Scale Distributed System on AWS - Korean
Building Large Scale Distributed System on AWS - Korean
 
AWS로 사용자 천만 명 서비스 만들기 (윤석찬)- 클라우드 태권 2015
AWS로 사용자 천만 명 서비스 만들기 (윤석찬)- 클라우드 태권 2015 AWS로 사용자 천만 명 서비스 만들기 (윤석찬)- 클라우드 태권 2015
AWS로 사용자 천만 명 서비스 만들기 (윤석찬)- 클라우드 태권 2015
 
천만사용자를 위한 AWS 클라우드 아키텍처 진화하기 – 문종민, AWS솔루션즈 아키텍트:: AWS Summit Online Korea 2020
천만사용자를 위한 AWS 클라우드 아키텍처 진화하기 – 문종민, AWS솔루션즈 아키텍트::  AWS Summit Online Korea 2020천만사용자를 위한 AWS 클라우드 아키텍처 진화하기 – 문종민, AWS솔루션즈 아키텍트::  AWS Summit Online Korea 2020
천만사용자를 위한 AWS 클라우드 아키텍처 진화하기 – 문종민, AWS솔루션즈 아키텍트:: AWS Summit Online Korea 2020
 
[2017 Windows on AWS] AWS 를 활용한 SQL Server 최적 활용 방안
[2017 Windows on AWS] AWS 를 활용한 SQL Server 최적 활용 방안[2017 Windows on AWS] AWS 를 활용한 SQL Server 최적 활용 방안
[2017 Windows on AWS] AWS 를 활용한 SQL Server 최적 활용 방안
 
찾아가는 AWS 세미나(구로,가산,판교) - AWS 클라우드로 서비스 무한대로 확장하기 (박철수 솔루션즈 아키텍트)
찾아가는 AWS 세미나(구로,가산,판교) -  AWS 클라우드로 서비스 무한대로 확장하기 (박철수 솔루션즈 아키텍트)찾아가는 AWS 세미나(구로,가산,판교) -  AWS 클라우드로 서비스 무한대로 확장하기 (박철수 솔루션즈 아키텍트)
찾아가는 AWS 세미나(구로,가산,판교) - AWS 클라우드로 서비스 무한대로 확장하기 (박철수 솔루션즈 아키텍트)
 
천만 사용자를 위한 AWS 클라우드 아키텍쳐 진화하기- AWS Summit Seoul 2017
천만 사용자를 위한 AWS 클라우드 아키텍쳐 진화하기- AWS Summit Seoul 2017천만 사용자를 위한 AWS 클라우드 아키텍쳐 진화하기- AWS Summit Seoul 2017
천만 사용자를 위한 AWS 클라우드 아키텍쳐 진화하기- AWS Summit Seoul 2017
 
H3 2011 클라우드 컴퓨팅 AWS 글로벌 서비스 구축을 위한 선택_데이터지능팀_이호철
H3 2011 클라우드 컴퓨팅 AWS 글로벌 서비스 구축을 위한 선택_데이터지능팀_이호철H3 2011 클라우드 컴퓨팅 AWS 글로벌 서비스 구축을 위한 선택_데이터지능팀_이호철
H3 2011 클라우드 컴퓨팅 AWS 글로벌 서비스 구축을 위한 선택_데이터지능팀_이호철
 
H3 2011 클라우드 컴퓨팅 AWS 글로벌 서비스 구축을 위한 선택
H3 2011 클라우드 컴퓨팅 AWS 글로벌 서비스 구축을 위한 선택H3 2011 클라우드 컴퓨팅 AWS 글로벌 서비스 구축을 위한 선택
H3 2011 클라우드 컴퓨팅 AWS 글로벌 서비스 구축을 위한 선택
 
클라우드 컴퓨팅 AWS(Amazon Web Services) - 글로벌 서비스 구축을 위한
클라우드 컴퓨팅 AWS(Amazon Web Services) - 글로벌 서비스 구축을 위한클라우드 컴퓨팅 AWS(Amazon Web Services) - 글로벌 서비스 구축을 위한
클라우드 컴퓨팅 AWS(Amazon Web Services) - 글로벌 서비스 구축을 위한
 
넥슨 글로벌 플랫폼 구축 이야기 : DB Migration case study (임현수 플랫폼인프라실 Technical Manager, 넥...
넥슨 글로벌 플랫폼 구축 이야기 : DB Migration case study (임현수 플랫폼인프라실 Technical Manager, 넥...넥슨 글로벌 플랫폼 구축 이야기 : DB Migration case study (임현수 플랫폼인프라실 Technical Manager, 넥...
넥슨 글로벌 플랫폼 구축 이야기 : DB Migration case study (임현수 플랫폼인프라실 Technical Manager, 넥...
 
AWS 클라우드로 천만명 웹 서비스 확장하기 - 윤석찬 백승현 - AWS Summit 2016
AWS 클라우드로 천만명 웹 서비스 확장하기 - 윤석찬 백승현 - AWS Summit 2016AWS 클라우드로 천만명 웹 서비스 확장하기 - 윤석찬 백승현 - AWS Summit 2016
AWS 클라우드로 천만명 웹 서비스 확장하기 - 윤석찬 백승현 - AWS Summit 2016
 
20150125 AWS BlackBelt - Amazon RDS (Korean)
20150125 AWS BlackBelt - Amazon RDS (Korean)20150125 AWS BlackBelt - Amazon RDS (Korean)
20150125 AWS BlackBelt - Amazon RDS (Korean)
 
10월 웨비나 - AWS 상에서 Microsoft SQL Server 운영의 모범 사례 살펴보기 (최정욱 솔루션즈 아키텍트)
10월 웨비나 - AWS 상에서 Microsoft SQL Server 운영의 모범 사례 살펴보기 (최정욱 솔루션즈 아키텍트)10월 웨비나 - AWS 상에서 Microsoft SQL Server 운영의 모범 사례 살펴보기 (최정욱 솔루션즈 아키텍트)
10월 웨비나 - AWS 상에서 Microsoft SQL Server 운영의 모범 사례 살펴보기 (최정욱 솔루션즈 아키텍트)
 
AWS를 활용한 글로벌 아키텍처 운용 전략 - 김상필 솔루션즈 아키텍트:: AWS Cloud Track 2 Advanced
AWS를 활용한 글로벌 아키텍처 운용 전략 - 김상필 솔루션즈 아키텍트:: AWS Cloud Track 2 AdvancedAWS를 활용한 글로벌 아키텍처 운용 전략 - 김상필 솔루션즈 아키텍트:: AWS Cloud Track 2 Advanced
AWS를 활용한 글로벌 아키텍처 운용 전략 - 김상필 솔루션즈 아키텍트:: AWS Cloud Track 2 Advanced
 
AWS Summit Seoul 2015 - AWS 이용사례 - SM 엔터테인먼트 및 셰이커미디어 사례를 중심으로
AWS Summit Seoul 2015 - AWS 이용사례 - SM 엔터테인먼트 및 셰이커미디어 사례를 중심으로AWS Summit Seoul 2015 - AWS 이용사례 - SM 엔터테인먼트 및 셰이커미디어 사례를 중심으로
AWS Summit Seoul 2015 - AWS 이용사례 - SM 엔터테인먼트 및 셰이커미디어 사례를 중심으로
 
IT 인프라의 새로운 대안 Amazon Web Service
IT 인프라의 새로운 대안 Amazon Web ServiceIT 인프라의 새로운 대안 Amazon Web Service
IT 인프라의 새로운 대안 Amazon Web Service
 
Amazon web service simple diagram overview
Amazon web service simple diagram overviewAmazon web service simple diagram overview
Amazon web service simple diagram overview
 
Amazon RDS 서비스 활용하기 - 신규 기능 중심으로 (윤석찬) :: AWS 월간 웨비나
Amazon RDS 서비스 활용하기 - 신규 기능 중심으로 (윤석찬) :: AWS 월간 웨비나 Amazon RDS 서비스 활용하기 - 신규 기능 중심으로 (윤석찬) :: AWS 월간 웨비나
Amazon RDS 서비스 활용하기 - 신규 기능 중심으로 (윤석찬) :: AWS 월간 웨비나
 
AWS DMS를 통한 오라클 DB 마이그레이션 방법 - AWS Summit Seoul 2017
AWS DMS를 통한 오라클 DB 마이그레이션 방법 - AWS Summit Seoul 2017AWS DMS를 통한 오라클 DB 마이그레이션 방법 - AWS Summit Seoul 2017
AWS DMS를 통한 오라클 DB 마이그레이션 방법 - AWS Summit Seoul 2017
 
Cloud Design Pattern
Cloud Design PatternCloud Design Pattern
Cloud Design Pattern
 

More from Herren

More from Herren (14)

클린코드와 테스트코드
클린코드와 테스트코드클린코드와 테스트코드
클린코드와 테스트코드
 
누구도 알려주지 않는 크롤링의 함정
누구도 알려주지 않는 크롤링의 함정누구도 알려주지 않는 크롤링의 함정
누구도 알려주지 않는 크롤링의 함정
 
앤젤핵 해커톤 우승한 썰
앤젤핵 해커톤 우승한 썰앤젤핵 해커톤 우승한 썰
앤젤핵 해커톤 우승한 썰
 
무쓸모톤 간 썰
무쓸모톤 간 썰무쓸모톤 간 썰
무쓸모톤 간 썰
 
클린코드와 TDD
클린코드와 TDD클린코드와 TDD
클린코드와 TDD
 
Python class
Python classPython class
Python class
 
Android 9.0 변경점
Android 9.0 변경점Android 9.0 변경점
Android 9.0 변경점
 
Development story
Development storyDevelopment story
Development story
 
Swift_history
Swift_historySwift_history
Swift_history
 
해킹 기법과 기본상식 by issac
해킹 기법과 기본상식 by issac해킹 기법과 기본상식 by issac
해킹 기법과 기본상식 by issac
 
Javascript 생태계
Javascript 생태계Javascript 생태계
Javascript 생태계
 
IOS
IOSIOS
IOS
 
UI UX by luna
UI UX by lunaUI UX by luna
UI UX by luna
 
API 개념
API 개념API 개념
API 개념
 

가용성을 고려한 웹 서비스 인프라 설계

  • 1. 1 AWS Architecture Pattern - 가용성을 고려한 웹 서비스 인프라 설계 2019-10-24, HUE
  • 2. 2 Topic 1. 퍼블릭 클라우드는 아웃소싱 서비스가 아니다.
  • 3. ≠ 아웃소싱 (Outsourcing) → 이용 약관에 명시된 SLA 외에는 책임지지 않음 → 제공하는 다양한 서비스를 이용하여 장애에 대응가능
  • 4. Infrastructure 설계 핵심 사항 (가용성 편) 1. 데이터 센터 다중화 : 복수의 가용 영역(AZ)에 걸쳐 인프라를 구성하는 것을 원칙으로 한다. 2. 장애 모니터링 및 자동 복구 : 클라우드 워치 서비스를 이용하여 장애를 탐지하고, 자동으로 복구한다. 3. 리전의 다중화 : DNS 서비스인 Route 53의 DNS 장애 복구 기능을 사용하여 장애 발생 시 Backup-site로 전환한다.
  • 5. 5 Topic 2. 장애 발생을 전제로한 설계
  • 6. AWS Cloud VPC User Seoul Region (Main-Site) Cloud Watch AWS Cloud ELB Availability Zone (A) Availability Zone (B) EC2 EC2 S3 AWS Cloud VPC Availability Zone (A) Availability Zone (B) ELB Tokyo Region (Backup-Site) EC2 EC2 S3 RDS Master Stanby Read Replicas Availability-Oriented Architecture Route 53 RDS RDS AWS Cloud다중 AZ에 AP 서버를 배 치, ELB로 로드밸런싱 클라우드 워치로 모니터 링, 장애 발생 시 자동 복 구 실시 마스터 장애 발생 시 스 탠바이로 교체 백업사이트로 데이터 동 기화 메인사이트 장애 발생 시 마스터로 승격
  • 8. Availability Zone(AZ), 다중화가 기본이다. ▶ 가장 기본적이며, 저렴하고 효과가 큰 가용성 보장 방법? : 복수의 가용 영역(AZ)에 걸쳐 인프라를 구성하는 것 Region Availability Zone (A) Availability Zone (B) . . . 각 AZ 내에는 별도의 백본망과 전원이 존재 하나의 리전에는 최소 2 개의 AZ가 존재함.각 AZ는 서로에게 영향을 미치지 않음 !
  • 9. 9 Topic 4. SLA로 추산한 가용성 ??.?%
  • 10. SLA로 추산한 가용성 ??.?% 서비스 SLA 장애로 인정되는 경우 필요조건 EC2 99.95% 동일 리전 내에서, 사용자가 인스턴스를 실행하는 복수의 AZ에 대해 외부에서 접속이 안되는 경우 복수의 AZ에 리소스를 배치 EBS 99.95% 동일 리전 내에 사용자가 인스턴스를 실행하는 복수의 AZ에서 읽기/쓰기가 불가능한 경우 RDS 99.95% 멀티-AZ 인스턴스 실행을 요구하는 모든 접속이 1분간 실행되지 않는 경우 Route 53 100% DNS 쿼리 응답에 실패한 경우 => AWS에서 추산한 가용성 99.90% !!
  • 11. 11 Topic 5. EC2 인스턴스 자동 복구 방법
  • 12. EC2 인스턴스 자동 복구 방법 Cloud Watch -> 모니터링 서비스가 주력이지만, 자동 복구도 가능 ! Auto Recovery 기능을 이용 (일일 최대 3번까지) * 자동 복구가 실패하는 경우도 있음. 주요 모니터링 지표 내용 EC2 StatusCheckFailed_System StatusCheckFailed_Instance CPUUtilization 호스트 하드웨어 레벨의 상태 체크 결과(0: 정상, 1: 이상) 인스턴스 레벨의 상태 체크 결과(0: 정상, 1 : 이상) CPU 사용률(단위 : %) ELB HealthyHostCount BackendConnectionErrors HTTPCode_ELB_5XX Latency ELB에 연결된 정상적인 EC2 인스턴스 수 ELB로부터 EC2 인스턴스로의 커넥션 에러 수 HTTP(S) 요청에 대해 HTTP 500번대 에러가 발생한 횟수 ELB에 요청 도착 후 ELB로부터 응답이 반환되기까지의 평균 시간 (단위 : 초) RDS FreeStorageSpace DatabaseConnections CPUUtilization 이용 가능한 스토리지 용량(단위 : 바이트) 사용 중인 데이터베이스 접속 수 CPU 사용률(단위 : %) Auto-Scaling의 트리거로도 사용가능 ! (EX.. EC2의 다운 / CPU 사용률 상승 / Request 증가)
  • 13. 13 Topic 6. 발생 빈도가 적은 대규모 장애에 대응하기
  • 14. 발생 빈도가 적은 대규모 장애에 대응하기 Region Availability Zone (A) Availability Zone (B) . . . 희박하겠지만... 지진 등 대규모 재해 혹은 AWS 내부 인력의 실수 등 으로 인한 리전의 사용 불가능도 고려 대상 ! 1) 장애 발생 시 자동으로 리전 전환하기 (다운타임이 짧지만, 고비용) 2) 백업 데이터로부터 복구용 서버를 만들기 (다운타임이 길지만, 저비용)
  • 15. 15 Topic 7. 백업 사이트로 자동 전환하기
  • 16. 백업 사이트로 자동 전환하기 Route 53 - AWS Route 53 서비스의 DNS 장애 조치(Failover)를 이용 - 기본(메인) 사이트의 ELB Health Check 진행, 인스턴스와 애플리케이션이 모두 다운되었 을 경우 백업 사이트로 연결 재설정 - 기본 사이트와 백업 사이트 간에 동일한 데이터가 있다는 것을 전제
  • 17. 백업 사이트로 자동 전환하기 (데이터 동기화 방법) - AWS EBS에는 실시간 복제 기능이 없음. 1) 정기적으로 스냅샷을 찍어 백업 사이트로 복사 (Ex. Copy-snapshot 명령어를 CLI에서 반 복 실행하게 설정) Amazon Elastic Block Store 2) EC2에서 실행되는 데이터 동기화 도구(Ex. Linux의 DRBD 등)을 이용하여 실시간 동기화 Amazon RDS - Cross-Region Read Replicas (읽기 전용 복제본) 기능을 이용 1) 읽기 전용 복제본의 마스터 승격은 RDS의 API로 제공됨. - Route 53 Failover 기능과 연동되지 않는 문제 발생 ! ( 자동으로 시스템 다운을 감지하고, 마스터 승격을 위한 API 실행될 수 있도록 구성 필요 ) 1) 클라우드 워치를 통해 감시하고, 경보를 통해 Lambda를 호출 후 명령을 실행 2) 자빅스(Zabbix)와 같은 도구와 연계하여 장애 탐지를 트리거로 하여 명령을 실행
  • 18. 백업 사이트로 자동 전환하기 (데이터 동기화 방법) Amazon S3 - Cross-Region Replication 기능을 이용 종합적으로, DNS 장애 조치에 몇 분 정도 소요됨. 그러나 온프레미스 환경과의 다운 타임을 비교하였을 때 훨씬 빠르게 복구 가능
  • 19. 19 Topic 8. 데이터 백업으로 다중화 비용 아끼기
  • 20. AWS Cloud VPC Seoul Region (Main-Site) AWS Cloud ELB Availability Zone (A) Availability Zone (B) EC2 EC2 AWS Cloud VPC Availability Zone (A) Availability Zone (B) ELB Tokyo Region (Backup-Site) EC2 EC2 RDS Master Stanby Master Availability-Oriented Architecture (저렴하게, HA 보장하기) RDS RDS AWS Cloud 최신 EC2 인스턴스로 AMI 작성 SnapShot AMI EBS와 RDS 스냅샷을 정 기적으로 작성 SnapShot 스냅샷을 백업 사이트에 복사 AMI를 백업 사이트에 복 사 평소에는 정지 상태로 두고, 사이트 전환 시에 AMI와 스냅샷으로 실행 S3는 크로스 리전 복제 기능을 그대로 이용