170325 스마트앱개발자포럼-세선1-부산창조혁신센터
TRANSCRIPT
Azure 아키텍처둘러보고준비하기(부제: 아파트둘러보기)
Sejun Kim
Microsoft Azure Korea Group
아파트를알아볼때?
Cloud를알아볼때?
어디가좋을까?
아파트? 주택?
주거의선택의기준은?
재정상태
구축연도편의시설
경비실그냥
수압
치안
회사와거리
브랜드
보상/보험가격
집주인의인상
교통편의
크기
부동산의싸가지
인프라선택의기준은?
가격
생산성 서비스안정화
Use Case
그냥편리성
속도
DataCenter 위치
Hipster
SLA
안정성
민첩성플랫폼
지인추천
아파트의좋은점
•경비실이있고, 택배를받아줄수있는곳이있다.
•건물과주위가관리된다.
•거주자가밀집되어있어편의시설이많다.
•쓰레기처리시설등정규화된시설이있다.
•아파트주민만의특권이주어진다. (행사, 할인등)
•주민끼리접근성이좋다.
•생활이보장될수있도록규칙/수칙이있다.
비용
•Cloud를사용하면비용을절감할수있대요 (?)
• IDC, Server의구매가없어도바로사용가능
•사용한만큼과금지불 (종량제)
속도
• IDC 계약, Server 구매, 발주등이없어요
•Software Licence 계약을위한고민이줄어들어요
•가상머신을생성하는시간만걸릴뿐...
VM 하나만줘봐
ㄱㄷ
여기있음ㄱㅅ
확장성
•이미확보해둔 Computing 자원을가져다쓰면됨
•32개의 Global Region을지원
생산성/성능
•관리형서비스사용시인프라의운영을알아서함
•고성능이필요할시마음대로성능을높일수있음
•인프라를구매하는데에노력을최소화할수있음
아!아!
안정성
•Cloud에서기본적인물리/논리적접근을차단해줌
•자체보안장비운용으로 Network 접근제어를지원
•3rd party 제품을추가하여추가보안가능
Azure의보안인증
https://www.microsoft.com/ko-kr/TrustCenter/Compliance/default.aspx
클라우드모델
Networking
Storage
Servers
Virtualization
O/S
Middleware
Runtime
Application
Data
Networking
Storage
Servers
Virtualization
O/S
Middleware
Runtime
Application
Data
Networking
Storage
Servers
Virtualization
O/S
Middleware
Runtime
Application
Data
Networking
Storage
Servers
Virtualization
O/S
Middleware
Runtime
Application
Data
직접
관리해야
할
부분
직접
관리해야
할
부분
직접
관리해야
할
부분
공급자
책임
공급자
책임
공급자
책임
On-premise IaaS PaaS SaaS직접
관리해야
할
부분
클라우드의약점
Networking
Storage
Servers
Virtualization
O/S
Middleware
Runtime
Application
Data
Networking
Storage
Servers
Virtualization
O/S
Middleware
Runtime
Application
Data
Networking
Storage
Servers
Virtualization
O/S
Middleware
Runtime
Application
Data
Networking
Storage
Servers
Virtualization
O/S
Middleware
Runtime
Application
Data
장애
시
처리
가능한
부분
장애
시
처리
가능한
부분
장애
시
처리
가능한
부분
손
놓고
있는
부분
손
놓고
있는
부분
손
놓고
있는
부분
On-premise IaaS PaaS SaaS장애
시
처리
가능한
부분
Cloud사별 SLA 비교Azure AWS GCP
Compute
이중화구성시 99.95%
프리미엄디스크사용시단일99.9%
이중화구성시 99.95% 이중화구성시 99.95%
Storage99.9%
RA-GRS 사용시 99.99%
99.9%
Standard 99%
99.9%
Multi-Regional 99.95%
Managed SQL99.99%
Web and Business 99.9%이중화구성시 99.95% 이중화구성시 99.95%
DNS 99.99% 100% 100%
CDN 99.9% 99.9% 99.95%
Web Managed 99.95% - 99.95%
전용선/VPN
(파트너제외)
Basic 99.9%
Standard, High 99.95%- VPN 99.9%
Cloud사별 SLA 비교Azure AWS GCP
Compute
이중화구성시 99.95%
프리미엄디스크사용시단일99.9%
이중화구성시 99.95% 이중화구성시 99.95%
Storage99.9%
RA-GRS 사용시 99.99%
99.9%
Standard 99%
99.9%
Multi-Regional 99.95%
Managed SQL99.99%
Web and Business 99.9%이중화구성시 99.95% 이중화구성시 99.95%
DNS 99.99% 100% 100%
CDN 99.9% 99.9% 99.95%
Web Managed 99.95% - 99.95%
전용선/VPN
(파트너제외)
Basic 99.9%
Standard, High 99.95%- VPN 99.9%
99.99% = 4분 23초99.95% = 21분 54.9초99.9% = 42분 49.7초99% = 7시간 18분 17.5초
SLA가왜중요해?
SLA가왜중요해?
SLA가왜중요해?
Azure SLAVirtual Machines 99.95%, 99.9% Media Services 99.9% IoT Hub 99.9%
App Service 99.95% Azure Search 99.9% Event Hubs 99.9%
Logic Apps 99.9% Mobile Engagement 99.9% Stream Analytics 99.9%
Azure Function 99.95% API Management 99.95%, 99.9% Notification Hubs 99.9%
Batch 99.9% SQL Database 99.99% BizTalk Services 99.9%
Cloud Services 99.95% Data Warehouse 99.9% Service Bus 99.9%
Application Gateway 99.9% Stretch Database 99.9% Security Center 99.9%
VPN Gateway 99.95%, 99.9% DocumenDB 99.99% Key Vault 99.9%
Azure DNS 99.99% Redis Cache 99.9% Azure AD 99.9%
CDN 99.9% Data Fectory 99.9% Azure AD B2C 99.9%
Traffic Manager 99.99% HDInsight 99.9% AD DS 99.9%
ExpressRoute 99.95% Machine Learning 99.95%, 99.9% MFA 99.9%
Storage 99.99%, 99.9%, 99% Stream Analytics 99.9% VSTS 99.9%
Data Lake Store 99.9% Cognitive Service 99.9% Application Insights 99.9%
StorSimple 99.9% Power BI Embedded 99.9% HockeyApp 99.9%
Backup 99.9% Data Catalog 99.9% Automation 99.9%, None(무료)
Sire Recovery 99.9% Log Analytics 99.9% Scheduler 99.9%
Default SLA = 99.9%, 2017-03-14
https://azure.microsoft.com/ko-kr/support/legal/sla/
SLA 상세페이지
Compute SLA Azure AWS GCP
99.9%~99.95%
(7시간 18분~22분)10% 10% 10%
> 99.9%
(7시간 18분이상)25% 30% -
95%~99%
(36시간 31분~7시간 18
분)
- - 25%
> 95%
(36시간 31분이상)- - 50%
IaaS 리더
CRM 리더
DR 구성리더
PaaS 리더
DB 관리리더
Storage 리더
Virtualization 리더
2016년 8월가트너자료
BCDR (Azure Paired Region)
https://azure.microsoft.com/ko-kr/documentation/articles/best-practices-availability-paired-regions/
Geography 쌍을이루는지역
한국 한국중부 한국남부
북아메리카 미국중북부 미국중남부
북아메리카 미국동부 미국서부
북아메리카 미국동부 2 미국중부
북아메리카 미국서부 2 미국중서부
유럽 북유럽 서유럽
아시아 동남아시아 동아시아
중국 중국동부 중국북부
일본 일본동부 일본서부
브라질 브라질남부(1) 미국중남부
오스트레일리아 오스트레일리아동부 오스트레일리아남동부
미국정부 미국정부아이오와 미국정부버지니아
인도 인도중부 인도남부
캐나다 캐나다중부 캐나다동부
영국 영국 서부 영국 남부
Demo #1
BCDR을알아보자
부부방서재 아이방
옷방
부엌창고
창고1창고2
T
V쇼파 침대
T
V책상
책장
냉장고
화장대
4인식탁
테이블
에어컨
침대
책상
헹거
헹거
Resource Group
•그림을그릴수있는도화지 (aka 변수)
•모든 Azure의 Resource는 Resource Group에속한다.
•Region에관계없이 Life Cycle이같은 Resource를하나의 Group으로관리하는것이용이
Resource Group
한국중부한국중부 한국중부
한국중부한국중부
한국남부한국남부 한국남부
저장소그룹 컴퓨터그룹 IP 그룹
Resource Group
Load Balancer Front End Back End
Virtual Network
부부방서재 아이방
옷방
부엌창고
창고1창고2
•용도에맞게 Network를분리하는작업
•가상네트워크를생성한후그안에 Subnet이라는별도의공간을 CIDR 기준으로생성해야함
•Compute Resource는 Subnet 안에서동작하게됨
CIDR?
•Classless Inter-Domain Routing 의약어
• IP를표현할때사용하는표기법으로 Subnet Mask와비슷한기능을한다.
CIDR Class Hosts Mask
/32 1/256 C 1 255.255.255.255
/31 1/128 C 2 255.255.255.254
/30 1/64 C 4 255.255.255.252
/29 1/32 C 8 255.255.255.248
/28 1/16 C 16 255.255.255.240
/24 1 C 256 255.255.255.000
/16 256 C, 1 B 65536 255.255.000.000
/8 65536 C, 256B, 1 A 16777216 255.000.000.000
Network Security Group
•Network ACL과동일한 Format
•Subnet 또는 vNIC에연결
•기본 Network Tag가존재• VIRTUAL_NETWORK
• AZURE_LOADBALANCER
• INTERNET
•각 Resource는 1개의 SG만연결
•TCP/UDP 패킷만제어가능
Network Security Group
우선순위
원본 IP 원본포트 대상 IP 대상포트 프로토콜 Access
65000 VIRTUAL_NETWORK *VIRTUAL_NETWOR
K* * 허용
65001AZURE_LOADBALANCE
R* * * * 허용
65500 * * * * * 거부
우선순위
원본 IP 원본포트 대상 IP 대상포트 프로토콜 Access
65000 VIRTUAL_NETWORK *VIRTUAL_NETWOR
K* * 허용
65001 * * 인터넷 * * 허용
65500 * * * * * 거부
Inbound Default Policy
Outbound Default Policy
Blob
•Azure에서저장소로활용할수있는공간
•VM Disk 또는 Access Log 등을저장할수있음
•Table을지원하여 Key-Value 값을저장할수있음
•미디어, 이미지, html 등의문서등을저장할수있음
•Queue 저장소도있으며, 메세징처리가능
•File Storage를지원해 SMB 연결을할수있음
•Blob 계정당최대 500TB 까지저장가능
Blob
Korea Central
Async
Korea Central Korea South
Async
Korea Central Korea South
LRS GRS RA-GRS
• 단일 Region내 3개복제본
• Disk와 Node, Rack단위장애요소분리하여보호
• 쓰는즉시복제
• 매우우수한듀얼 RAID
• 두개 Region내 6개복제본
• Region 단위데이터를보호
• 두번째복제는 Async로일어남
• GRS + Read Access
• 별도의 Read Endpoint가존재
Virtual Machine
에어컨
•궁극적 Cloud를사용하는대표적인이유가되는자원
•원본 Disk Image에따라 Compute 환경이변함
•Bare-metal Server(aka 깡통서버) 대비약 99.9%
성능
•정형화된 Compute 옵션제공
•원본이미지가작을수록빨리배포됨
Virtual Machine 크기
https://docs.microsoft.com/ko-kr/azure/virtual-machines/virtual-machines-windows-
sizes?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json
가용성집합?
•Fault Domain(aka FD) 이라는개념의 Farm이있음
•FD는전원, 네트워크, 배선등장애를기준으로분리되어있는리소스공간이라지칭할수있음
•Update Domain(aka UD)은 Windows 또는 Software
등의 Update가발생할시업데이트를할수있는그룹을지칭할수있음
가용성집합?
Temporary storage
•VM이배포된 Host의 Local Disk의일부를 VM에할당
•Windows는 D:\, Linux는 /mnt (일반적으로 /dev/sdb)
•Disk는휘발성으로데이터가유지되지않을수있음
•일반적으로 Log 또는 Dump File등을생성할시사용
•필요한데이터는 Temp Storage에생성하였다가 VM
종료시 blob으로이동하도록설정해야함
https://docs.microsoft.com/ko-kr/azure/storage/storage-about-disks-and-vhds-linux
https://blogs.msdn.microsoft.com/mast/2013/12/06/understanding-the-temporary-drive-on-windows-azure-
virtual-machines/
Load Balancer
•L4 기반 Load Balancer
•VM의 Availability set을설정하지않으면 1:1만가능
•특정 VM에 Port Forwarding 설정을할수있음
•Source IP 선호도모드와해시기반배포모드설정
•유휴제한시간이있으며, 기본적으로 4분
해시기반배포모드
소스 IP 선호도모드
Managed Disk
•기존 Blob에 VM Disk를저장하는방식과달리 Disk만관리가가능
•Snapshot, Capture 등의기능이제공됨
•완전독립형 Disk이기때문에 Blob의종속성이사라짐
•Auto Scale Set 설정시최대 10배의 VM 개수를지정할수있음
•Blob에종속되지않기때문에 Export 및 File관리가별도로필요함
Demo #2
Resource Group ~ Load Balancer
Web App
• IaaS? VM? Disk? 아몰랑~ 웹개발만할래
•Plan에따라다른기능을제공하기에눈여겨봐야함
•Windows Server가기본이며, Web App on Linux가Preview 상태
•Windows Server가기본이어서 Service도 IIS가기본
• Infra와 Platform이완벽히분리되어동작한다!
Logic App
•Scheduler를직접구현하지말자!
•Azure에서제공하는 Plug-in으로코딩없이연동하자!
•이건백문의불여일견이다.
Azure CDN
•우리는지구촌, 거리는백만리, 속도는…
•정적컨텐츠는동네까지배달해주자
•Akamai와 Verizon을쓸수있음
•중국은지구에있지만지구가아님 (.cn의위엄)
Demo #3
Web App과 Logic App
Azure SQL
•PaaS에준하는관리형데이터베이스서비스
•SQL Server를기준으로하고있으며 MySQL은 Soon..
•ClearDB라는업체에서 MySQL을서비스중
•Auto Scale 등이지원되지만, 사용할수있는기능은제한적이며 Azure에서제공하는 Add-in만가능
•VM이아닌 eDTU라는단위로고객에게서비스제공
https://docs.microsoft.com/ko-kr/azure/sql-database/sql-database-features
DTU?
•단일 Azure SQL의보장된리소스의측정단위
•CPU, 메모리및 Data 와트랜잭션 I/O의혼합된측정치
http://dtucalculator.azurewebsites.net/
Demo #4
Azure SQL
깨알비교! Azure vs AWS
https://docs.microsoft.com/ko-kr/azure/architecture/aws-professional/services
카타고리 AWS Azure
Virtual Service Elastic Cloud Compute (EC2) Virtual Machines
Virtual Network Virtual Private Cloud (VPC) Virtual Network
Web Application Elastic Beanstalk Web Apps, Cloud Services
Container Management EC2 Container Service Container Service
Backend process logic Lambda Function, Web Jobs, Logic Apps
Object Storage Simple Storage Service (S3) Blob Storage
Relational Database RDS SQL Database
NoSQL database DynamoDB DocumentDB
Load Balancing Elastic Load Balancing Load Balancer, Application Gateway
Seatch Elasticsearch Service Search
드리고싶은말씀
보안공지
PHP 기반웹서버의보안취약점을노리는행위가늘어나고있습니다. 특정클라우드상의톰캣서버를노리고있지만점차타클라우드 IP 대역으로확산중입니다.PHP 취약점에대한패치및방화벽관리를하시기바랍니다.
장애가난다고!?
•Azure의모든 Resource는비정상동작할수있음
• IaaS / PaaS / SaaS 등서비스를제공하기때문에보안패치또는부득이한재부팅이필요
•언제나 Azure Status를모니터링할필요가있음
•내가사용하는서비스의 SLA는꼭확인이필요
https://azure.microsoft.com/ko-kr/support/legal/sla/
Azure Status History
https://azure.microsoft.com/en-us/status/history/
Cloud... 정말쌀까?
•Life Cycle이 2년안쪽의 Spot성 Service에는저렴
•Cloud가저렴한이유중가장큰요소는인력비
•Virtualization Infrastructure를구성할수있는엔지니어가있다면, Cloud는오히려과대과금시스템
•Azure는모든것을해주는것같지만, 모든제약사항을전부알지못하면언젠가내발목을잡을수있음
우리에게중요한건서비스
•Cloud에서서비스를한다는것은모든 Resource는HA구성이되어야함
• Infra 또는 Application의단일장애에의해전체서비스장애가일어나지않도록구성되어야함
•선조치후분석을위한 Log를자세히남기는것이중요
•Netflix에서사용하는 Chaos Monkey의도움도고려
혼자고민하지마세요.
전문가와상의하세요.
고맙습니다.
한국Azure 사용자그룹fb.com/groups/krazure