Nesnelerin İnterneti (IoT) cihazları, bulutta eğilimleri belirlemek ve kararları yönlendirmek için kullanılabilecek veriler üretir.
Ölçeklenebilir bir alım tekniği tasarlamak karmaşık bir iştir ve ilk adım, cihazdan beklenen davranışı anlamaktır: cihaz nasıl ve ne kadar veri gönderiyor, veriler hangi modeli takip ediyor ve veri akışı hangi yönde, hangi bilgi geçiş ve bunun amacı nedir. Bunlar, alım sürecini tanımlamak için gerekli sorulardan bazılarıdır. Bu blog gönderisi, AWS IoT Core ve/veya Amazon Kinesis ile geniş ölçekte veri almaya yönelik kullanım senaryosuna özel en iyi uygulamaları araştırıyor.
IoT verilerini AWS’ye almak için AWS’deki iki ana hizmet ailesini ele alacağız:
AWS IoT, milyarlarca IoT cihazı ve bulut arasında bağlantı, yönetim ve güvenli iletişim sağlayan bir tam olarak yönetilen hizmetler paketi sunar. Kuruluşların IoT uygulamaları oluşturmasına, dağıtmasına ve ölçeklendirmesine yardımcı olan bir dizi yetenek sunar. AWS IoT Core, milyarlarca cihaz için bağlantıyı destekler ve trilyonlarca mesajı işler. AWS IoT Core’u kullanarak mesajları güvenli bir şekilde AWS uç noktalarına ve diğer cihazlara yönlendirebilir ve IoT çözümünüz için bir yönetim ve kontrol katmanı oluşturabilirsiniz.
Amazon Kinesis, akış verilerini her ölçekte uygun maliyetli bir şekilde işler ve analiz eder. Amazon Kinesis ile makine öğrenimi (ML), analitik ve diğer uygulamalar için video, ses, uygulama günlükleri, web sitesi tıklama akışları ve IoT telemetri verileri gibi gerçek zamanlı verileri alabilirsiniz. Amazon Kinesis Data Streams, ölçeklenebilir ve uygun fiyatlı bir veri akışı hizmetidir. Çeşitli kaynaklardan gerçek zamanlı olarak veri toplayarak panolar, anormallik tespiti ve dinamik fiyatlandırma gibi uygulamalar için anında analitik sağlar.
IoT cihazlarını çalıştırırken, en iyi veri alma yığınını seçmek için ortam, etkinlik ve performans gösterdikleri durumdan haberdar olmanız gerekir. Bu blog, en uygun alım stratejisini tanımlamanız için size farklı yönler ve ödünler konusunda rehberlik edecek.
ortamınız nedir?
Ortam, kullanılan cihazların tipini, bunlarda sağlanan yazılım yığınını, operasyonel hedefi ve cihazlardan beklenen bağlantıyı ifade eder.
Kaç cihaz çalıştırıyorsunuz? Bu cihazlar nerede çalışıyor? İşlevleri nedir? Cihazlarda hangi operasyonel kontrole ihtiyacımız var?
Dikkate alınması gereken ilk faktör, işlettiğiniz filonun hacmi ve cihazların konumu ve amacıdır. Kontrolsüz ortamlarda uzak cihazlarla çalışmak, cihaz yaşam döngüsünün yerleşik kontrolünü ve mevcut duruma ilişkin uzaktan görünürlüğü gerektirir. AWS IoT Core, sahada çalışan çok sayıda uzak ve kısıtlı cihazı yönetmek ve bakımını yapmak için cihazlarla şifreli bilgi alışverişini desteklediği ve cihazların mevcut durumlarını ve bilgilerini aldığı ve bunlar üzerinde uzaktan eylemler gerçekleştirdiği için kullanabilirsiniz. Kontrol edilen cihazlardan, kendilerine bir yönetim bağlantı yolu olan çok amaçlı veya uç cihazlara atıfta bulunuyoruz. Sık sık veya büyük miktarlarda veri göndermesi gereken ancak bilgi alması gerekmeyen kontrollü cihazlar, Amazon Kinesis aracılığıyla veri almanın avantajlarından yararlanır. Veri alma istemcilerinizi ayrı bir bileşen olarak oluşturmak için Amazon Kinesis Producer Library’yi kullanabilir veya verileri toplayıp Amazon Kinesis Data Streams’e göndermek için Kinesis Agent’ı kullanabilirsiniz.
Çalıştığınız yazılım yığını nedir?
Cihaz seçiminiz ve geliştirme araçları, programlama dilindeki deneyiminiz veya tercihiniz ile birlikte, veri alma katmanınızı oluşturmak için kullanılacak yazılımı tanımlar. Mikrodenetleyiciler (MCU) gibi sınırlı kaynaklara sahip cihazlar, FreeRTOS gibi amaca yönelik oluşturulmuş işletim sistemlerinden ve veri gönderecek uygulamalar oluşturmak için AWS IoT Core tarafından desteklenen MQTT gibi hafif mesajlaşma protokollerinden yararlanır.
Veri alma istemcilerini mevcut uygulamalarınıza veya ekosistemlerinize entegre etmeye yönelik çok çeşitli işletim sistemi ve araç seçeneğinin bulunduğu çok amaçlı cihazlar (MPU) için, veri alma üretici ve tüketici bileşenlerinizi oluşturmak üzere Amazon Kinesis Yapımcı Kitaplığı ve Kinesis İstemci Kitaplığı’nı kullanabilirsiniz. .
Hangi etkinliği gerçekleştirmeyi planlıyorsunuz?
Verilerin, hacmin ve akışın kaynağını anlamak, en iyi alım yaklaşımını belirleyecektir.
Alınacak verinin hacmi ve hızı nedir? Veriler hangi akışı takip ediyor?
Yüksek verimli veri üreten (512 KB/sn’den büyük) cihazlarınız olduğu durumlarda, bağlantı başına aktarım hızına dikkat etmeniz gerekir. Kinesis Data Streams, tek yönlü verilerin gerçek zamanlı olarak toplanmasına ve işlenmesine yardımcı olabilir ve temeldeki sunucusuz mimarisi sayesinde ölçeklenebilir.
128 KB’ye kadar veri yükü boyutlarına sahip mesajlaşma, veri göndermek ve almak için AWS IoT Core tarafından desteklenen hafif bir yayınlama/abone olma mesajlaşma protokolü olan MQTT’yi kullanabilir. Tek yönlü iletişim ve çift yönlü/komuta ve kontrol yaklaşımlarından cihazları uzaktan yönetmeye kadar çok çeşitli iletişim yaklaşımlarını destekler. 1 MB’a kadar olan yük boyutları, verileri AWS’ye almak için Kinesis Data Streams’i kullanabilir ve gerekli okuma ve yazma verimini gerektiği şekilde parçalar ekleyerek veya kaldırarak ölçeklendirebilir; bir parça, bir akışta benzersiz şekilde tanımlanmış bir veri kayıtları dizisidir ve bir akış, bir veya daha fazla parçadan oluşur.
Hangi alım protokolü gereklidir?
İletişim protokolünün seçimi, verilerin akışından ve yapısından etkilenir. Çift yönlü veriler için, özellikle aralıklı veri bağlantılarıyla veya çevrimdışı modlarla çalıştığınızda AWS IoT Core, HTTPS’ye kıyasla protokol ek yükünü azalttığından bu gereksinimi karşılamak için MQTT’ye destek sağlar. Veri yoğun IoT uygulamalarında, AWS IoT Core’da MQTT üzerinden WebSockets’i dikkate alabiliriz; bu, verileri paylaşmak için bir TCP oturumunu yeniden kullanarak ek yükü daha da azaltır. Tek yönlü iletişim için hem AWS IoT Core hem de Kinesis Data Streams, HTTPS’yi destekleyerek uygulama hedefine göre seçim yapar.
Alınan verilerin ana amacı nedir?
IoT cihazları tarafından oluşturulan veriler iki ana amaca hizmet eder: ölçümler ve işleme. Metrikler, davranışını analiz etmek amacıyla cihaz veya ilgili bir bileşen tarafından oluşturulan istatistiksel verileri ifade eder. İşleme, cihazdan veya bağlı bir uygulamadan alınan, dönüştürülen ve buluta yüklenen oluşturulan verileri ifade eder. Bir cihaz filosunun, eylemleri yönlendirmek için cihazlar arasında ölçüm alışverişi yapması gerekebilir. Bu gibi durumlarda iletişim kanalları kurmak için AWS IoT çekirdeğinde MQTT desteğini kullanabiliriz. Cihaz davranışlarını analiz etmek ve analitiği çıkarmak için kullanılan veriler, zamana dayalı verileri dönüştürmek, toplamak ve sorgulamak için AWS IoT Core ve AWS IoT Analytics’i kullanabilir. İşlenmesi ve diğer veri çözümlerine bağlanması gereken ve veri ambarı veya veri gölleri gibi üretici varlıkla bağlantısı kesilen veriler, verileri işlenmek üzere sürdürmek ve bağlamak için Kinesis Data Streams’i kullanabilir.
senin durumun nedir?
Bir cihaz filosunu yönetmek, kaynaklara ve verilere erişimi kontrol etmek için bir güvenlik duruşu tanımlamanızı gerektirir.
Erişim ve görünürlük derecesi cihazlar üzerinde zorunlu kılınabilir, ancak dağıtımlarının ve operasyonlarının nasıl olacağını tanımlamanız gerekir.
Gerekli güvenlik duruşu nedir? Cihazların AWS ile nasıl iletişim kurması gerekir?
Cihazın fiziksel kontrolünü garanti edemediğiniz düşmanca veya kontrolsüz ortamlarda, benzersiz cihaz sertifikaları ve rollerine dayalı bir kimlik doğrulama ve yetkilendirme stratejisi tanımlayabiliriz. AWS IoT Core, her cihazın kimliğini doğrulamak ve benzersiz şekilde yetkilendirmek için X.509 sertifikalarını destekler. AWS IoT Core, yönetilen bir sertifika yetkilisine (CA) sahiptir ve ayrıca kendi CA’nızı içe aktarma seçeneği sunar.
Tüm cihazların aynı etkinliği gerçekleştirdiği ve temel alınan platforma doğrudan erişiminizin olduğu kontrollü ortamlarda, AWS kimlik bilgilerine dayalı bir kimlik doğrulama ve yetkilendirme stratejisi uygulayabiliriz. Kinesis Data Streams, AWS kimlik bilgileriyle çalışır ve geçici erişim kimlik bilgilerini kullanarak ve uzun vadeli kimlik bilgilerini ifşa etmeyerek güvenlik kontrolünü artırabiliriz.
Cihazların hangi düzeyde erişime ihtiyacı var?
Cihazların, bulut veya diğer cihazlar tarafından oluşturulan bir veri alt kümesiyle etkileşime girmesi gerekebilir. AWS IoT Core’u kullanmak, belirli MQTT konularına erişimi kısıtlamak için ayrıntılı kontrol sağlar ve karar verme süreçleri için cihazların kimliğini sağlar. Amazon Kinesis, verileri oluşturan varlığın ilgili olmadığı ve yalnızca uygun ölçekte veri göndermesi gereken tek yönlü veri akışı durumları için birden çok üreticinin veri yazabileceği tek bir akış sağlar.
Böyle bir durumda, herhangi bir üretici, herhangi bir tüketici tarafından okunmak üzere aynı veri akışına yazabilir.
Birlikte çalışma
Her iki yaklaşıma da sahip olmanın gerekli olduğu kullanım durumları vardır – yüksek frekanslı verileri alma ve cihazların ayrıntılı görünürlüğüne ve kontrolüne sahip olma.
Kullanım örneği 1: Birden fazla cihazdan toplanan verileri işleme ve görselleştirme
Bir alana dağılmış binlerce cihazınız olduğunu hayal edin. Her cihaz operasyonel metriklerini raporlar ve az miktarda veri üretir. Operasyonel durumun genel bir görünümünü elde etmek, anormallik tespitini yürütmek, kestirimci bakım gerçekleştirmek veya geçmiş verileri analiz etmek için, gerçek zamanlı veya toplu içgörüler elde etmek üzere tüm cihazları kontrol etmeniz ve tüm verileri toplamanız gerekir. AWS IoT Core, cihazların iletişimini, yönetimini, yetkilendirmesini ve kimlik doğrulamasını sağlarken Kinesis Data Streams, yüksek frekanslı verilerin alınmasını sağlar.
Amazon Kinesis ile entegre olan ve büyük bant genişliklerindeki verileri gerçek zamanlı olarak toplamanıza, işlemenize ve analiz etmenize olanak tanıyan AWS IoT Core’a veri yayınlayarak başlarsınız.
Amazon Kinesis Data Analytics for Apache Flink ile akış verilerini işlemek ve analiz etmek için Java, Scala veya SQL kullanabilirsiniz. Hizmet, zaman serisi analitiği gerçekleştirmek, gerçek zamanlı panoları beslemek ve gerçek zamanlı ölçümler oluşturmak için IoT verilerinize karşı kod yazmanıza ve çalıştırmanıza olanak tanır.
Raporlama için, toplu ve planlanmış panolar için Amazon QuickSight’ı kullanabilirsiniz. Kullanım senaryosu daha gerçek zamanlı bir pano özelliği gerektiriyorsa Amazon OpenSearch’ü OpenSearch Dashboards ile kullanabilirsiniz.
Kullanım örneği 2: IoT cihazlarından yüksek verimli verileri kontrol etme ve akışa alma
Hem AWS IoT hem de Amazon Kinesis hizmetlerini birleştirmek için başka bir kullanım örneği, cihazların ayrıntılı kontrolü ile yüksek aktarım hızı gereksinimleri içindir.
Türbinler veya LIDAR verileri gibi bulutta işlenmesi gereken büyük miktarda veri oluşturan cihazları kontrol etmek için cihazların ve Amazon Kinesis Video Akışlarının iletişimini, yönetimini, yetkilendirmesini ve kimlik doğrulamasını sağlamak için AWS IoT Core’u kullanabilirsiniz. bu yüksek verimli verileri alın.
Aşağıdaki şemada, AWS IoT Core, sabit kodlu AWS erişim anahtarı çiftleri yerine X.509 sertifikalarını kullanan cihazları güvenli bir şekilde sağlamak için kullanılır ve video verilerini buluta göndermek için Amazon Kinesis Video Streams kullanılır.
Çözüm
IoT cihazlarından geniş ölçekte veri almak için kullanım durumunuza, yük boyutunuza, nihai hedefinize ve cihaz kısıtlamalarınıza göre hangi teknolojilerin kullanılacağına karar vermelisiniz. Aşağıdaki karar matrisi, verileri uygun ölçekte almak için doğru AWS hizmetini konumlandırma konusunda rehberlik sunar. Özel kullanım durumunuza bağlı olarak, bir hizmet kombinasyonunu tercih edebilirsiniz.
AWS IoT | Amazon Kinesis | |
Cihazın komuta ve kontrolü | En uygun | |
kısıtlı cihaz | En uygun | |
Yüksek verimli veri | En uygun | |
çift yönlü iletişim | En uygun | |
Ayrıntılı erişim | En uygun |
Bir IoT dağıtımının ortak yönlerini inceledik ve her duruma uygulanacak nitelikli sorular ve en iyi uygulamalar önerdik. Daha fazla bilgi edinmek için Amazon Kinesis Data Streams ve Amazon IoT Core belgelerini ziyaret edin.
Source: aws.amazon.com