블로그

사물인터넷을 위해 네트워크가 제공해야 하는 3가지

로리 맥비티 썸네일
로리 맥비티
2016년 8월 18일 게시

사물인터넷(IoT)은 계속해서 관심의 대상입니다. 소비자 중심의 가젯과 기기가 헤드라인을 장식하는 경향이 있지만, 저에게는 초기 채택자들이 수행하는 데이터 센터 준비 작업의 배후가 더 매력적입니다.

아마도 대규모 IoT 활동을 지원하기 위해 해야 할 일이 많기 때문일 것입니다. 그리고 소비자를 대상으로 하는 '사물'에서는 소규모 IoT 출시라는 것은 사실상 불가능합니다. 만약 여러분이 아직 눈치채지 못했을지도 모르지만, 세상에는 많은 소비자들이 있습니다. 그리고 그들은 반짝이는 것을 좋아합니다.

 

 

사물인터넷

이를 염두에 두고, IoT를 기존 제품(자동차, 가전제품, 장난감)과 통합하는 사람들과 새로운 제품으로 큰 성공을 거두고자 하는 사람들을 지원하기 위해 기술 산업 전반에 걸쳐 지금 당장 더 많은 일이 일어나고 있습니다.

정말. 정부가 사물인터넷(2016년 애플리케이션 제공 현황 ) 구매 산업을 주도하고 있지만, 통신, 기술 및 클라우드 서비스 제공업체도 뒤를 따르고 있습니다. 실제로 모든 산업에서 지난 12개월 동안 구매율이 꽤 좋았습니다. 이는 소비자 분야만 보면 눈에 띄지 않을 정도로 IoT와 관련하여 많은 작업이 진행되고 있음을 나타냅니다. 

일어나는 일의 대부분은 인프라, 즉 백엔드에서 귀여운 테디베어에 내장된 칩을 관리, 측정, 모니터링, 보호하고 상호 작용하는 애플리케이션의 연결성과 즉각적인 응답을 제공하는 네트워크에서 발생합니다.

모든 앱이나 클라이언트(원격 서비스가 실제로 그런 것이기 때문입니다, 클라이언트)와 마찬가지로 일관되고 예측 가능하며 안정적으로 작동하는 데 필요한 기본 서비스 세트가 있습니다. 즉, 보안, 배달, 가시성을 제공하는 서비스가 필요합니다.

대체 텍스트

보안

보안은 새로운 기술에서 가장 마지막으로 관심을 두는 부분이기 때문에 보안부터 시작하겠습니다. IoT와 같은 신생 기술에서도 요즘 가장 많은 관심을 받는 부분이 보안 침해이기 때문입니다.

백엔드 앱과 통신할 수 있어야 합니다. 데이터 저장, 업데이트나 패치 검색, 구성 변경 등 모든 작업은 백엔드 앱과 안전하게 통신해야 합니다. 즉, SSL이나 TLS를 통한 안전한 터널 지원을 의미합니다. 즉, 일반 텍스트가 아닌 안전한 HTTP를 사용하고, 더 나아가 사물에 키를 하드코딩하지 않는다는 의미입니다. 이건 진심이에요. 그러지 마세요.  

보안은 또한 신원 검증을 의미합니다. 네, 이게 자동차인 줄은 알아요. 하지만 *누구의* 자동차인가요? 이웃이 내 라디오를 헤비메탈 방송이 아닌 다른 방송으로 틀어야 한다고 생각할 가능성을 줄이기 위해서는 사물을 빠르고 정확하게 식별하고 이를 허가된 사용자 및 소유자와 연결할 수 있는 서비스가 필요합니다. 공포!

마지막으로 보안은 프로토콜 분석을 의미합니다. 특히 IoT 세계 전반에 걸쳐 표준화를 위해 새로운 프로토콜이 고려되고 있다는 점을 감안할 때 이는 중요합니다. 프로토콜의 불안정성은 심각한 위험이 될 수 있으며(Heartbleed를 기억하실 수도 있습니다) 시기적절하게 해결하기 어려울 수 있습니다. 프로토콜의 잠재적인 남용을 감지하는 능력을 통해 사전에 위험을 해결할 수 있습니다.

배달

거래 데이터든 아니든 모든 데이터는 사물과 백엔드 앱에 전달되어야 합니다. 그렇게 하는 것은 단순히 JSON으로 인코딩된 비트를 REST API 어딘가에 집어넣는 문제가 아닙니다. 사물인터넷의 새로운 언어를 사용하는 것들이 많습니다. MQTT, CoAP 및 AQMP. 하지만 각각의 백엔드 앱은? 그들 REST를 사용하는 이유는 웹과 모바일 앱에서도 동일한 기능과 정보에 액세스할 수 있기 때문입니다. 결국 전달 경로 어딘가에 게이트웨이, 번역기, 프로토콜 상호 운용성을 제공하는 중개자가 존재한다는 것을 의미합니다.

드로이드

이를 통해 차량에 있는 장치가 REST를 사용하는 백엔드 앱에서 이해할 수 있는 MQTT 를 통해 데이터나 메시지를 전송할 수 있습니다. 중개자는 사용자의 사물과 앱 간의 원활한 대화를 제공하기 위해 (안전하게) 가로채고 번역합니다. 중개자를 C3PO라고 생각하면 되고, 자동차(또는 다른 물건)는 R2D2라고 생각하면 됩니다. 이는 기본 프로토콜 지원은 물론, 다른 프로토콜에 대한 지원을 신속하게 개발할 수 있는 스크립팅 플랫폼을 제공하는 소프트웨어 정의 접근 방식을 의미합니다. 데이터 경로 스크립팅 은 네트워크 프로그래밍의 세 가지 핵심 구성 요소 중 하나이지만, 가장 언급이 적습니다. 사물 인터넷(IoT)과 다양한 프로토콜과 언어를 지원하는 측면에서, 흔히 드러나지 않는 이러한 역량이 제공하는 유연성은 매우 귀중할 것입니다.

저는 앞서 규모를 고려 사항으로 언급했고, 이 요구 사항이 지원되는 곳은 바로 배송입니다. 예를 들어, 백만 가지에 대한 지원을 확장하려면 분해 기반 앱 아키텍처를 사용할 가능성이 큽니다. 완전한 마이크로서비스는 아니더라도 적어도 기능 도메인을 분리하여 더 효율적이고(비용 효율적인) 방법론으로 다양한 기능의 확장을 가능하게 할 가능성이 높습니다.

여기서 메시지 기반 부하 분산과 같은 것이 등장합니다. Diameter 및 SIP와 같은 프로토콜 과 관련하여 서비스 제공자 분야에서 언급된 이 개념을 기억하실 수도 있을 겁니다. 여기서는 규모의 효과성과 비용 효율성이 필수적입니다.

메시지 기반 부하 분산은 MQTT와 같은 프로토콜이 메시지 기반이기 때문에 중요합니다. 이들은 기업 내부에서 흔히 볼 수 있는 메시지 기반 미들웨어와 비슷한 pub-sub(게시-구독) 모델입니다. 어쨌든, 그것은 메시지에 기반을 두고 있으며, 그 메시지는 분석되어 적절한 서비스나 장치로 전송되어야 합니다. 이를 실행하고 확장하려면 부하 분산 서비스가 메시지를 구문 분석하고 보낼 위치를 결정한 다음, 이를 처리할 적절한 리소스를 선택해야 합니다.

기본 로드 밸런서는 애플리케이션 구문 분석 기능이 제한되어 있기 때문에 생각만큼 쉽지 않습니다.  하지만 IoT 기기가 선호하는 프로토콜의 확장을 지원하는 것이 필수입니다.

시계

마지막으로, 인프라는 가시성을 지원해야 합니다. 즉, 무슨 일이 일어나고 있는지 볼 수 있는 능력을 의미합니다. 보안 담당자가 조치를 취하고 나쁜 행위자를 식별할 수 있는 것은 보안 거래(SSL 검사)에 대한 가시성을 확보하기 위해서입니다. 사용 패턴에 대한 가시성을 통해 적절한 서비스를 자동으로 확장할 수 있습니다.

가시성은 강력한 운영 분석을 제공하는 "빅 데이터"에 관한 것이 아니라 보고 및 로깅도 포함합니다. 이러한 복잡한 아키텍처에서는 문제 해결이 정말 까다로울 것이고, 도구와 사람 모두가 문제를 추적하려면 로깅이 중요할 것입니다. 

IoT를 확장하고 지원하는 것은 단순히 가젯에 국한되지 않습니다. 이를 지원하는 데 필요한 네트워크, 인프라 및 운영 프레임워크에서 해야 할 일이 많습니다. 좋은 소식은 멋진 가젯을 지원하는 (매우 중요한) 백엔드 아키텍처를 작업하는 사람 중 한 명이라면 테스트를 위해 하나(또는 세 개)가 필요하다고 항상 주장할 수 있다는 것입니다.