[2022 AWS re:Invent] Samsung SmartThings powers home automation with Amazon MemoryDB

세션 유형

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를 적용한 이유
키워드
  1. SmartThings
  2. Hub Connectivity Platform
  3. 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
  1. SmartThings IoT 현황 및 시스템 구성을 확인
  2. Amazon MemoryDB for Redis 서비스의 특징 및 높은 성능을 통해 SmartThings 서비스 목표인 낮은 지연, 높은 신뢰, 확장성, 쉬운 유지관리를 모두 달성한 레퍼런스 확인
  3. SmartThings IoT의 시스템 발전 방향과 향후 미래 계획인 안전한 스트리밍서비스와 압축된 서비스를 위한 목표 확인

Leave a Comment