세션 유형
Break out
세션명
Samsung SmartThings powers home automation with Amazon MemoryDB
강연자
- Matt Jackson, DevOps, Drift.com
- Umesh Kalaspurkar, Sr. Solutions Architect, AWS
세션요약자
김상연(Sangyun Kim)
핵심내용 요약
- SmartThings란?
- Home IoT platform의 핵심요소
- SmartThings에 Amazon MemoryDB for Redis를 적용한 이유
키워드
- SmartThings
- Hub Connectivity Platform
- Amazon MemoryDB (for Redis)
상세내용
SmartThings란?
About SmartThings
- 2012년 프로젝트 설립, 2014년 삼성에 인수되며 IoT 사업 전략의 필수적인 부분
- 200개이상의 마이크로서비스, 수천개의 장치를 지원, 가정용 IoT 장치 작업의 핵심
- 하루에 수십억개 이상의 이벤트를 처리
SmartThings 시스템
- User experience 기반의 App
- 핵심 요소 > 클라우드 인프라 사용
- SmartThings edge: 집에 있는 물리적 기기(사물)로 구성
- SmartThings Hub: Hub-connected로 전구, 물 센서 및 모션 센서 같은 장치와 상호 작용하기 위한 게이트웨이
Hub Connectivity Platform
- Devcon 이라 불리는 수천개의 Hub 연결에 대해 Custom된 바이너리 프로토콜을 사용하여 통신
- SmartThings Hub 내에서 명령은 IoT Native 언어로 변환
Hub Connectivity Platform 1.0 문제
- 샤드 아키텍처 : 여러지역에 배포되지만 데이터 복제가 안되며, 단일 지역의 사용자들이 더 많아 질수록 샤드가 복잡해지며 새로운 샤드를 추가하지 못함
- 인프라 노후화 : 메시지 계층인 RabbitMQ의 트래픽 관리가 복잡해지며 클러스터가 커질수록 확장하기가 점점 더 어려워지며, 유지관리가 어려워짐
Home IoT의 미래를 이끌어갈 필수 요구사항
- 빠른 성능 : 10ms 미만의 각 홉 트래픽
- 신뢰성 : 빠르게 실패, 여러 실패 시나리오의 허용
- 확장성 : 억단위의 Hub 지원
- 쉬운 유지보수 : 인프라 관리 시간 감소
- Hub Connectivity Platform 2.0 방향성
- – 셀 아키텍처 채용 : 각 셀에 연결할 수 있는 허브의 수를 제한, 지속적으로 성장하는 항목 대신 고정된 반경을 제어할 수 있도록 더 작은 단위의 셀 아키텍처
- – 셀을 증가하면 허브 연결수도 증가, 허브가 이동하면 셀 아키텍처도 함께 이동 가능 > 가용성 확보
- – RabbitMQ가 아키텍처 확장 한계에 도달하여 Redis로 교체 진행
Amazon MemoryDB for Redis를 선택한 이유
- Multiple use, 신속성, 대규모 확장성, 유연한 Clients
- 내구성, RMS(Managed DB), 쉬운 관리, Amazon Partnership 사용가능
MemoryDB for Redis란?
- 높은 내구성을 지닌 In-memory DB
- 높은 성능 : 마이크로 초단위의 읽기속도로 초당 1억6천만개의 요청을 처리가능
- 높은 가용성 : 로그의 적절한 분배와 교류가 가능하며 Multi AZ로 데이터 교환이 원할
Amazone MemoryDB for Redis 작동 방식 및 특장점
- 높은 성능 및 내구성 (마이크로 초 단위의 읽기성능 및 Multi-AZ 가용성)
- 자유로운 확장기능(수직 수평 확장 모두 가능, On 상태의 확장, 높은 성능의 Replcas
- 기능 > 대용량의 저장소와 저장소 Tier 선택, HIPAA, PCI-DSS, 자동 failover 기능
- Multi-AZ를 이용한 높은 내구성(Primary / Replica 서버간 트랜잭션 로그 처리)
HCP 2.0 Ingress / Egress 시스템 아키텍처
- Ingress : Devcon으로 전송된 명령은 Photon이란 불리는 MemoryDB Cluster로 전송, Prism 서비스는 Photon에 있는 서비스를 부분적으로 단일 신호를 해독하여 고유의 Redis 스트림에 게시, 마이크로서비스인 Wavelength에서 사용자가 필요로 하는 서비스로 데이터 게시
- Egress : 사용자 요청 전달 > Pitboss에서 권한 및 장치 확인 > Dispatcher에 명령 전달 = Dispathcer는 장치가 어디에있는지 확인하여 명령 전달 > 허브에서 셀로 명령 전송 > Higgs라는 MemoryDB 클러스터에 도착하면 Swichboard 서비스에서 Devcon 내에 가장 많은 가용용량을 가지고 있는곳을 확인 > 디스패처에서 어떠한 인스턴스에 연결되었는지 Swichboard와 연계하여 알수 있음 > 허브에 지속적인 TCP 연결 > 기본 IoT 프로토콜을 통해 사용자의 명령을 기기(사물)로 전달 완료(제어)
Amazon MemoryDB를 통한 HCP 2.0 목표 달성
- 낮은 지연, 높은 신뢰, 확장성, 쉬운 유지관리 목표치를 모두 달성
향후 미래 방향성
- 확장가능한 방향과 더 압축된 비용최적화
- 소비자들의 더 나은 스트리밍 : 보이지않는 Idle time 포함, 더 깔끔한 스트림 서비스, Redis 시스템 변경
Bespin’s Comment
- SmartThings IoT 현황 및 시스템 구성을 확인
- Amazon MemoryDB for Redis 서비스의 특징 및 높은 성능을 통해 SmartThings 서비스 목표인 낮은 지연, 높은 신뢰, 확장성, 쉬운 유지관리를 모두 달성한 레퍼런스 확인
- SmartThings IoT의 시스템 발전 방향과 향후 미래 계획인 안전한 스트리밍서비스와 압축된 서비스를 위한 목표 확인