Yönetilen MQTT Bulutu

IoT Mesajlaşmasında MQTT Veri Yerelleştirme ve Bölge Seçimi

MQTT mesajlarınız aslında nerede yaşıyor? Bu rehber IoT mesajlaşmasında veri yerelleştirmeyi, sorulması gereken mevzuat sorularını ve bölge seçimi ile BYOC'nin bunları nasıl karşıladığını açıklıyor.

IoT mesajlarının broker etrafında seçilen bölgesel sınırın içinde kaldığı bir dünya haritasını gösteren MQTT veri yerelleştirme illüstrasyonu
Bunu kendi MQTT broker’ınızda çalıştırınFree planla özel, yönetilen bir MQTT broker alın ve hazır kod örnekleriyle başlayın.
Ücretsiz deneyin Kod örnekleri Kart gerekmez

MQTT veri yerelleştirme (data residency), IoT mesajlarınızın cihazdan uygulamaya giderken nerede işlendiğini ve saklandığını bilmek ve kontrol etmekle ilgilidir. Bu yazı, bir MQTT sisteminin hangi parçalarının veriye dokunduğunu, genellikle hangi mevzuat ve sözleşme sorularının geçerli olduğunu ve bölge seçimi ile kendi bulutunuzu getirin (BYOC) dağıtımlarının bunları karşılamanıza nasıl yardımcı olduğunu açıklıyor. Bu, hukuki tavsiye değil pratik bir mühendislik rehberidir; kararlar için hukuk veya uyumluluk ekibinizi sürece dahil edin.

Veri Yerelleştirme MQTT İçin Ne Anlama Gelir?

Veri yerelleştirme, belirli verilerin bir ülke veya Avrupa Ekonomik Alanı gibi belirli bir coğrafya içinde saklanması ya da işlenmesi gerekliliğidir. İlgili terimler çoğu zaman gevşek biçimde kullanılır:

  • Veri yerelleştirme (data residency): verinin fiziksel olarak nerede bulunduğu.
  • Veri egemenliği (data sovereignty): veriye hangi yargı bölgesinin yasalarının uygulandığı.
  • Veri lokalizasyonu (data localization): verinin bir ülkede kalması gerektiğine dair yasal zorunluluk.

Bir MQTT broker her mesajın veri yolunda yer alır. Veritabanınız doğru ülkede olsa bile, başka bir bölgedeki broker bu mesajları yine alır, işler ve muhtemelen saklar. Bir MQTT broker'ın verilerinizle ne yaptığını anlamak başlangıç noktasıdır.

Bir MQTT Sisteminde Veri Nerede Yaşar?

Yalnızca veritabanınızı değil, bir mesajın bulunabileceği her yeri haritalayın:

Konum Ne tutar Yerelleştirme sorusu
Cihaz Gönderilmeden önceki okumalar, tamponlanmış mesajlar Cihazlar nerede kurulu?
Ağ yolu Aktarım hâlindeki mesajlar Trafik broker'a kadar uçtan uca TLS ile şifreleniyor mu?
Broker belleği Yönlendirilmekte olan mesajlar Broker hangi bölgede çalışıyor?
Retained message'lar Topic başına son değer Nerede ve ne kadar süre saklanıyor?
Kalıcı oturumlar Çevrimdışı client'lar için kuyruğa alınmış mesajlar Nerede saklanıyor ve süreleri ne zaman doluyor?
Broker logları Client ID'ler, IP adresleri, bazen topic'ler Loglar kişisel veri içeriyor mu ve nerede tutuluyor?
Aboneler ve arka uçlar Aşağı akıştaki her şey Servisleriniz ve veritabanlarınız nerede çalışıyor?

İki kalem kolayca gözden kaçar. Birincisi, retained message'lar ve kuyruğa alınmış oturum mesajları broker üzerinde durağan veridir. İkincisi, broker logları bazı düzenlemeler kapsamında kişisel veri sayılabilecek IP adresleri ve client tanımlayıcıları içerebilir.

Mevzuat ve Sözleşme Kaynaklı Etkenler

GDPR ve Kişisel Veriler

AB Genel Veri Koruma Tüzüğü (GDPR) kapsamında kişisel veriler, AEA dışına yalnızca uygun güvencelerle aktarılabilir. Tüm IoT verileri kişisel değildir, ancak çoğu olabilir: bir araç takip cihazından konum, bir evdeki doluluk, bir haneyle ilişkilendirilmiş enerji kullanımı veya giyilebilir bir cihazdan sağlık ölçümleri. Bir cihaz bir kişiyle ilişkilendirilebiliyorsa, telemetrisi kişisel veri olabilir.

Sektör ve Müşteri Gereksinimleri

Gizlilik yasalarının ötesinde, yerelleştirme gereksinimleri çoğu zaman şunlardan kaynaklanır:

  • Ülke içinde barındırma gerektiren kamu sektörü sözleşmeleri.
  • Ulusal güvenlik kurallarına tabi kritik altyapı ve kamu hizmetleri.
  • Kendi politikalarına sahip sağlık ve finans müşterileri.
  • Her alt işleyicinin nerede çalıştığını soran kurumsal satın alma anketleri.

Çoğu zaman en katı gereksinim bir yasa değil, bir müşteri sözleşmesindeki bir maddedir. Barındırma modelini seçmeden önce bu gereksinimleri toplayın.

Tasarımınızda Yerelleştirme Riskini Azaltmak

Mühendislik tercihleri, broker nerede çalışırsa çalışsın sorunu küçültebilir:

  1. Payload'lardaki kişisel veriyi en aza indirin. İsim veya adres değil, cihaz ID'leri gönderin. Kimlikleri doğru bölgedeki arka ucunuzda çözümleyin.
  2. Kişisel verileri topic adlarının dışında tutun. Topic'ler loglarda, gezginlerde ve hata ayıklama araçlarında görünür.
  3. Her bağlantıda TLS kullanın. 8883 ve 8084 portları aktarım hâlindeki veriyi şifreler.
  4. Broker'daki durağan veriyi sınırlayın. MQTT 5 mesaj süresi dolumunu ve makul bir oturum süresi dolumunu kullanın, kişisel veri içeren mesajları retain etmekten kaçının.
  5. Edge'de işleyin. Buluta yayınlamadan önce bir ağ geçidinde toplulaştırın veya anonimleştirin.
  6. Veri akışını belgeleyin. Her bileşeni ve bölgesini listeleyen bir şema, satın alma sorularının çoğunu yanıtlar.

İşte MQTT 5 mesaj süresi dolumuyla takma adlı (pseudonymous) telemetri yayınlayan bir Python örneği (paho-mqtt 2.x); böylece on dakika içinde hiçbir abone almazsa broker mesajı atar.

import json
import ssl
import time
import paho.mqtt.client as mqtt
from paho.mqtt.packettypes import PacketTypes
from paho.mqtt.properties import Properties

client = mqtt.Client(mqtt.CallbackAPIVersion.VERSION2, client_id="YOUR_CLIENT_ID",
                     protocol=mqtt.MQTTv5)
client.username_pw_set("YOUR_USERNAME", "YOUR_PASSWORD")
client.tls_set(cert_reqs=ssl.CERT_REQUIRED)
client.connect("YOUR_BROKER_HOST", 8883, keepalive=60)
client.loop_start()

props = Properties(PacketTypes.PUBLISH)
props.MessageExpiryInterval = 600   # saniye

payload = {"device": "dev-4f9a", "kwh": 1.84, "ts": int(time.time())}  # isim veya adres yok
info = client.publish("site-07/meter/dev-4f9a/telemetry", json.dumps(payload),
                      qos=1, properties=props)
info.wait_for_publish()
client.loop_stop()
client.disconnect()

Bölge Seçimindeki Ödünleşimler

Broker'ın bölgesini seçmek; yerelleştirme, gecikme ve kolaylık arasında bir dengedir:

  • Yerelleştirme: bölge, yasal ve sözleşmesel gereksinimlerinizi karşılamalıdır.
  • Gecikme: broker'dan uzak cihazlar ve tüketiciler daha uzun gidiş dönüş süreleri yaşar; bölgeye göre MQTT broker gecikmesi yazısına bakın.
  • Ortak konumlandırma: broker'ı arka ucunuzun yakınına yerleştirmek bölgeler arası veri aktarımını azaltır.
  • Çok bölgeli filolar: birden fazla yargı bölgesinde satış yapıyorsanız, her cihazın kendi ana broker'ına yapılandırıldığı bölge başına bir broker'a ihtiyacınız olabilir.

Son nokta mimari açısından önemlidir. Bölgelere bölünmüş bir cihaz filosu genellikle bölge başına ayrı broker'lar ve ayrı arka uçlar anlamına gelir; küresel görünüme yalnızca toplulaştırılmış, kişisel olmayan veriler akar.

Saklama ve Silme

Yerelleştirme soruları genellikle saklama sorularıyla birlikte gelir. Her veri türünün her aşamada ne kadar süre yaşayabileceğine karar verin: cihaz tamponunda, broker'da retained veya kuyruktaki mesaj olarak, loglarda ve veritabanlarınızda. Silmeyi cihaz başına ve müşteri başına mümkün kılın; çünkü bir müşterinin ilişiğini kesmek veya bir silme talebini yerine getirmek, verinin kopyalandığı her yerden kaldırılması demektir. MQTT'de bir retained message'ı temizlemek basittir: aynı topic'e boş bir retained payload yayınlayın.

BYOC Veri Yerelleştirmeyi Nasıl Karşılar?

"Verimiz nerede?" sorusunun en güçlü yanıtı "kendi bulut hesabımızda, seçtiğimiz bir bölgede" olur. Bu, kendi bulutunuzu getirin modelidir. ConnectMQ BYOC ile broker sizin bulut hesabınızda çalışır ve ConnectMQ tarafından yönetilir; böylece bölgeye, ağ sınırlarına ve loglama politikasına siz karar verirken kendi sunucunuzda barındırmanın operasyonel yükünden de kaçınırsınız. Ayrıntılar BYOC MQTT broker yazımızda.

Diğer ConnectMQ planları farklı ihtiyaçlara hizmet eder. Paylaşımlı kümedeki Serverless broker'lar geliştirme, pilot projeler ve yerelleştirme kısıtı olmayan veriler için idealdir. Dedicated planı size izole bir küme sunar. Her ikisi için de altyapının nerede çalıştığını ConnectMQ'ya sorun ve yanıtı veri akışı belgelerinize ekleyin. Her şeyi kendisi çalıştırmak zorunda olan kuruluşlar Self Managed Enterprise'ı değerlendirebilir.

Plan ne olursa olsun client tarafı değişmez: 8883 portunda TLS üzerinden MQTT 3.1.1 veya 5.0 ya da 8084 portunda /mqtt yoluyla Secure WebSocket. Bir filoyu bir barındırma modelinden diğerine taşımak, host'u ve kimlik bilgilerini güncellemekten ibarettir.

Canlıya Çıkmadan Önce Yerelleştirme Kontrol Listesi

  1. Cihazların, kullanıcıların ve müşterilerin bulunduğu yargı bölgelerini listeleyin.
  2. Payload alanlarını sınıflandırın: kişisel, takma adlı veya kişisel olmayan.
  3. Broker'ın, her abonenin ve her veritabanının bölgesini kaydedin.
  4. Mesaj süresi dolumunu, oturum süresi dolumunu ve retained message politikasını yapılandırın.
  5. TLS'in tüm client'lar için zorunlu olduğunu doğrulayın.
  6. BYOC'ye veya bölge başına broker'lara ihtiyaç olup olmadığına karar verin.
  7. Test verilerini herkese açık broker'lardan uzak tutun; ücretsiz herkese açık MQTT broker alanı herkes tarafından okunabilir ve yalnızca hassas olmayan denemeler için uygundur.

ConnectMQ ile Başlayın

Kişisel olmayan test verileri kullanarak, kredi kartı gerekmeden app.connectmq.com adresindeki ücretsiz Serverless planında geliştirmeye başlayın. Yerelleştirme gereksinimleri netleştiğinde Dedicated veya BYOC dağıtımları için ConnectMQ ile görüşün. Barındırma modellerine tam bir genel bakış için bulut MQTT broker rehberini ve barındırılan MQTT broker karşılaştırmasını okuyun.

Sık Sorulan Sorular

MQTT veri yerelleştirme yalnızca saklanan veriler için mi önemlidir?

Hayır. Pek çok politikada işleme de sayılır ve bir broker her mesajı işler. Retained message'lar, kuyruktaki oturumlar ve loglar da broker üzerinde durağan veridir.

IoT telemetrisi GDPR kapsamında kişisel veri midir?

Konum veya hane enerji kullanımı gibi tanımlanabilir bir kişiyle ilişkiliyse olabilir. Payload'larınızı sınıflandırması için veri koruma sorumlunuza danışın.

BYOC veri yerelleştirmeye nasıl yardımcı olur?

Broker, sağlayıcı tarafından işletilirken sizin kendi bulut hesabınızda, seçtiğiniz bölgede ve sizin politikalarınız altında çalışır.

Birkaç ülkedeki cihazlar için tek bir broker kullanabilir miyim?

Teknik olarak evet; ancak her ülkenin yerelleştirme kuralları varsa, cihazların kendi ana broker'larına atandığı bölge başına bir broker'a ihtiyacınız olabilir.

İlgili yazılar

BYOC MQTT Broker: Kendi Bulutunuzu Getirin Modeli Açıklandı

BYOC MQTT broker sizin bulut hesabınızda çalışır ama bir sağlayıcı tarafından işletilir. Modelin nasıl işlediğini, sorumluluk paylaşımını ve hesabınızı buna nasıl hazırlayacağınızı öğrenin.

7 dk okuma

Google Cloud IoT Core Alternatifi: Kapanış Sonrası Seçenekler ve Geçiş

Google, Cloud IoT Core'u Ağustos 2023'te kullanımdan kaldırdı. Bu rehber gerçekçi alternatifleri karşılaştırıyor, IoT Core kavramlarını standart MQTT'ye eşliyor ve verileriniz Google Cloud'a akmaya devam ederken cihazlarınızı yönetilen bir broker'a nasıl taşıyacağınızı gösteriyor.

7 dk okuma

Saniyede MQTT Mesaj Sayısı: Verim Nasıl Tahmin Edilir ve Ölçülür

MQTT verim planlaması birkaç formüle ve tek bir dürüst ölçüme dayanır. Saniyedeki gelen ve giden mesaj sayısını nasıl tahmin edeceğinizi, tepe değerleri nasıl hesaba katacağınızı ve sonucu bir broker planına nasıl eşleyeceğinizi öğrenin.

6 dk okuma

Tüm yazılar →

Özel MQTT broker’ınız birkaç tık uzağınızda

Hesabınızı oluşturun, broker kimlik bilgilerinizi alın ve ilk cihazınızı bağlayın — kurulacak, yamalanacak ya da ölçeklendirilecek sunucu yok.