giriiş
Güvenlik kameraları ve akıllı ev cihazları için uygun maliyetli, bulut bağlantılı bir video platformu tasarlamak ve geliştirmek, geliştiricilerin yapılandırılmamış medya verilerini uygun ölçekte alma, depolama ve işleme kabiliyetine haiz bir akış hizmeti tasarlamasını ve entegre etmesini gerektirir.
Bu şekilde bir platformun arkasındaki altyapının, ani, öngörülemeyen talep artışlarını destekleme esnekliği ile beraber büyük hacimli öncesinden belirlenmiş veri yükünü işlemesi gerekir. Arabelleğe alma ve gecikmeden kopan bağlantılara ve veri depolama problemlerine kadar, akıllı ev cihazlarından video akışı zorluklarla dolu olabilir. Bundan dolayı, bir akıllı kamera çözümünün temel hedeflerinden biri, milyonlarca aleti, trilyonlarca mesajı ve petabaytlarca veriyi destekleyecek esneklik ve ölçeklenebilirlik olmalıdır.
Sunucusuz data işlem, sunucu hazırlama ihtiyacını ortadan kaldırır ve otomatik ölçeklendirmeye, yalnızca gerçek kullanım için ücret alarak maliyet optimizasyonuna olanak tanır ve yerleşik hata toleransı ve yüksek kullanılabilirlik sağlar. Sunucusuz mimariler çevikliği destek sunar, operasyonel karmaşıklığı azaltır ve işletmeler için pazara sürüm süresini hızlandırır.
Hususlar
Ölçeklenebilir, güvenilir ve verimli video akışı hizmeti sağlayabilen bir akıllı kamera çözümü sunmak için, yüksek bant genişliği ve düşük gecikmeli ağ performansı sağlamaktan görevli sunucuları, depolamayı ve ağ donanımını yönetmeyle ilgili maliyetleri göz önünde bulundurmanız gerekir. Donanımın tedarik edilmesi, kurulması ve bakımı, personelinizin farklılaştırılmış uygulamalar yapmaya ve daha iyi bir kullanıcı deneyimi sunmaya odaklanmasını azaltabilir.
Amazon Kinesis Video Streams, sunucuları tedarik etmeden depolama, çözümleme ve oynatma için güvenli bir halde medya akışı yapmanızı elde eden, tam olarak yönetilen bir AWS hizmetidir. Uygulamalar ve cihazlar içinde güvenli bir halde medya akışı sağlamak için sinyal sunucuları yada medya aktarma sunucuları şeklinde WebRTC (Web Gerçek Zamanlı İletişim) ile ilgili herhangi bir bulut altyapısı oluşturmanız, çalıştırmanız yada ölçeklendirmeniz gerekmez. Bu, bağlı ürünler için AWS IoT ile birleştirmek için ideal bir hizmet haline getirir.
HTTP Canlı Akış (HLS) ve HTTP Üstünden Dinamik Uyarlanabilir Akış (DASH), bir sunucudan öncesinden kaydedilmiş, isteğe bağlı ve canlı video içinde ne olduğu sunmak için kullanılan iki akış protokolüdür. WebRTC, direkt web tarayıcıları yada mobil uygulamalar içinde gerçek zamanlı ve düşük gecikmeli eşler arası iletişimi elde eden açık kaynaklı bir proje ve teknolojiler setidir. Amazon Kinesis Video Streams ile canlı video akışı sağlamak için iki seçenek arasından seçim yapabilirsiniz: HLS ve DASH ile akışlardan videoları oynatma; yada WebRTC ile düşük gecikmeli iki yönlü medya akışı.
HLS ve DASH’den akış seçeneği, Kinesis Video Streams hizmetinden internete veri aktarım ücretlerine yol açacaktır. Kinesis Video Streams hizmeti, alınan veriler ve tüketilen veriler için sizden GB başına ücret alır. İnternetten AWS’ye veri için ek bir ücret yoktur. 1 Aralık 2021 tarihinden itibaren internete aktarılan veriler her ayın ilk 100GB’ı için parasızdır. Bundan sonraki veri aktarımları için GB başına ek ücret uygulanır.
Bir video akışının sıkıştırma yada dinamik bit hızları ve çerçeve hızı ayarlamaları kullanılarak veri hızlarının düşürülmesiyle daha çok maliyet iyileştirmesi elde edilebilir. 7×24 akış senaryosunda, bit hızını kabul edilebilir bir minimuma indirmenizi tavsiye ederim. Ürününüzde kullanılan bit hızı, genel KVS hizmet maliyetine katkıda bulunan mühim bir faktördür.
Amazon Kinesis Video Streams, H.264 (Gelişmiş Video Kodlama yada AVC) ve H.265 (Yüksek Verimli Video Kodlama yada HVEC) şeklinde değişik video codec bileşenlerini destek sunar. Bu blog gönderisinde farklılıklar ve bunların değiş tokuşları hakkında daha çok data edinebilirsiniz. Ürününüz için bir codec bileşeni seçerken genel video ve ses standardını, etkili bit hızını, ortaya çıkan veri hacmini ve donanımınızın kabiliyetlerini göz önünde bulundurun.
Veri çıkışı maliyetleri, HLS ve DASH’den canlı akış yaparken platformunuzun kamera ve kullanıcı sayısına gore ölçeklenir. Kinesis Video Akışlarını WebRTC ve eşler arası bağlantılarla kullanırken veri çıkışı önlenebilir.
Kinesis Video Streams with WebRTC, eşler içinde bağlantı bilgilerini değiş tokuş etmek için bir sinyal kanalı kullanır. Sonrasında eşler, AWS bulutundan veri gönderip almak yerine canlı akış için direkt birbirlerine bağlanır. Belirli bir ayda etken olan sinyalizasyon kanalı ve gönderilen ve alınan sinyalizasyon mesajlarının sayısı için ücretlendirme yapılır. Aktarma sunucusu olmadan eşler arası direkt video içinde ne olduğu akışı için ücret alınmaz. Kısıtlayıcı ağ koşulları sebebiyle direkt bağlantıların mümkün olmadığı durumlarda, Kinesis Video Streams tarafınca sağlanan bir aktarma sunucusu (TURN) kullanılacaktır. Bu sunucu, bağlantıyı sağlamak için medya trafiğini eşler içinde aktarır. TURN sunucusu üstünden aktarılan medya trafiği, ilk 100 GB’tan sonrasında veri aktarımına GB başına ek bir ücretle akış dakikaları üstünden ücretlendirilir.
Mimariye Genel Bakış
Biçim 1. {Güvenlik kamerası} platformu mimari diyagramı.
Amazon Kinesis Video Streams’in tam olarak yönetilen özelliği yardımıyla, uygulamalar ve cihazlar içinde güvenli bir halde medya akışı sağlamak için sinyal sunucuları yada medya aktarma sunucuları şeklinde WebRTC ile ilgili herhangi bir bulut altyapısı oluşturmanız, çalıştırmanız yada ölçeklendirmeniz gerekmez. Kinesis Video Streams with WebRTC SDK’yı kamera ve istemci ile kullanırsınız.
Şimdiye kadar, bir akıllı kameradan eşler arası bağlantıya haiz bir istemciye iyi mi video akışı yapabileceğinizi tartıştım ve maliyetlerle ilgili düşünceleri paylaştım. Bu mimarinin öteki bir parçası, akıllı cihazın muntazam çalışmasını sağlamak için provizyon, yapılandırma, güvenlik ve bakım şeklinde akıllı kameranın kendisinin yönetilmesi ve denetim edilmesidir.
AWS IoT Core’u kullanarak aygıt ile AWS içinde güvenli bir bağlantı kurarak onları yöneterek akıllı kameralarınızı AWS’ye dahil edebilirsiniz. Hizmet, bir aygıt ağ geçidi ve bir ileti aracısı ihtiva eder. Kameradan AWS IoT Core’a kontakt, hafifçe bir yayınla-abone ol ağ protokolü olan MQTT’ye dayalıdır.
Akıllı ev cihazları ile AWS Cloud arasındaki yönetim bağlantısını güvenli hale getirmenin tavsiye edilen yolu, X.509 sertifikalarının kullanılmasıdır. Sertifikalar, kameraların AWS’deki hizmetlere erişmesi için yetki vermenize olanak tanır. AWS IoT Core, her aygıt için uygun ölçekte ayrı bir sertifika oluşturabilir ve kaydedebilir. Bu mimaride, talep yöntemine gore filo provizyonu kullanılır.
Kameraya, sağlama sonrasında otomatikman benzersiz bir aygıt sertifikasıyla değiştirilecek olan bir önyükleme sertifikası kaydedilir. Sağlama işlemi esnasında bir AWS Lambda işlevi, hizmetlere erişen kameraları doğrulamak için üretilen tüm nezaret kameralarının seri numarası şeklinde detayları içeren bir veritabanı tablosunu okur.
Bu mimaride, kimlikleri doğrulamak, kullanıcı ve aygıt verilerini depolamak için sunucusuz anahtar/kıymet veritabanı hizmeti Amazon DynamoDB kullanılır. DynamoDB, AWS IoT hizmetleriyle sorunsuz bir halde bütünleşerek her ölçekte tutarlı, tek haneli milisaniye gecikme süresi sunarak IoT verilerinin gerçek zamanlı işlenmesini ve çözümleme edilmesini sağlar.
İstemci tarafında kontakt için, arka uç hizmetlerinize erişimi denetlemek suretiyle sunucusuz kimlik doğrulama ve yetkilendirme modelini uygulayabilirsiniz. Amazon Cognito, kullanıcı adı, e-posta adresleri ve telefon numaraları şeklinde kullanıcının profil özelliklerini depolayan bir kullanıcı dizini sağlar. İstemci, kullanıcıları doğrulamak ve arka uç hizmetlerine ve gözetleme kameralarına erişim yetkisi vermek için Cognito’dan erişim belirteçleri alır.
Amazon API Gateway, Amazon Cognito ile entegre olan bir REST API sağlayarak erişim belirteçlerinin doğrulanmasını gerçekleştirir. Bu, kimliği doğrulanmış kullanıcılara Amazon API Gateway ile istemciden arka uç hizmetlerine proxy istekleri yapma yetkisi verir.
Bu mimaride istekleri alan ve iade eden arka uç hizmetleri, talep üstüne kod çalıştırmanıza olanak tanıyan AWS Lambda ile oluşturulmuştur. Cihazları doğrulamak ve kullanıcı hesaplarını kameralarla bağlamak için üretici veritabanından okumak için bir Lambda işlevi kullanabilirsiniz. Lambda, Kinesis Video Streams’te kameranın sinyalleşme kanalına erişmek için talep üstüne AWS Identity and Access Management (IAM) ile oturum kimlik detayları isteyecektir. Oluşturulan kimlik bilgileriyle, istemcileri birbirinden ayırabilirsiniz.
izlenecek yol
Hesabınızda Amazon Kinesis Video Streams Sunucusuz Nezaret Platformunu dağıtırken maliyetlere maruz kalırsınız. Örneği incelemeyi bitirdiğinizde, aşağıdaki adımları izleyin. Temizlemek altyapıyı silmek ve ücretlendirmeyi durdurmak için bölüm.
Platform örneğinin yapı taşlarını detaylı bir şekilde idrak etmek için depodaki BENİOKU dosyasına bakın.
Kod örneğini dağıtmak için AWS Cloud9’u kullanabilirsiniz. Cloud9, geliştiricilerin bir web tarayıcısı kullanarak kod yazması, hata ayıklaması ve üstünde ortaklaşa iş yapması için bulut tabanlı bir platform sağlayarak kodu her yerden rahat ve erişilebilir hale getirir. Kod örneği, mahalli kurulum ve yapılandırma ihtiyacını azaltan Cloud9 kullanılarak kontrol edilmiştir.
1. Adım: Cloud9 ortamı oluşturun
- AWS Management Console’da Cloud9’u açın
- Tıklamak Ortam oluştur
- ortamınıza ad verin {güvenlik kamerası} ide
- Tıklamak Yaratmak ve ortam oluşturulana kadar bekleyin
- Seçmek {güvenlik kamerası} ide Ve Cloud9’da aç
- Cloud9’da bir terminal açın
- Amazon Kinesis Video Streams Sunucusuz Nezaret Platformu deposunu klonlayın:
git clone https://github.com/aws-samples/amazon-kinesis-video-streams-serverless-surveillance-platform.git
2. Adım: {Güvenlik kamerası} platformunu dağıtın
- Cloud9 ID’yi tarayıcınızın adres çubuğundan kopyalayın, örn.
<REGION>.console.aws.amazon.com/cloud9/ide/59f5e14c6cdb4fbb95f61f107b5ad86d
- Altyapıyı kök dizinden Cloud9 Kimliği ile aşağıdaki şekilde kurun:
cd infrastructure sh ./install-infrastructure.sh 59f5e14c6cdb4fbb95f61f107b5ad86d
- Kamera modelini kök dizinden aşağıdaki şeklinde dağıtın:
cd camera sh ./install-mock.sh
- Kameranın konuşlandırılması 10 dakika kadar sürer
- Web istemcisini kök dizinden şu şekilde dağıtın:
cd web-client yarn install --silent yarn start
- Açık
https://59f5e14c6cdb4fbb95f61f107b5ad86d.vfs.cloud9.<REGION>.amazonaws.com
- (Alternatif olarak)
- Tıklamak Ön seyretme Cloud9’daki üst çubukta
- Seçme Çalışan Uygulamayı Önizleyin
- Seçme Yeni Pencereye Aç önizleme penceresinde
3. Adım: Giriş yapın ve düzmece kamerayı hesabınıza bağlayın
- Kopyala Kullanıcı adı Ve Gizyazı ve seç Giriş yapmak
- Kimlik bilgilerini girin ve yeni bir gizyazı seçin
- Cognito Barındırılan Kullanıcı Arabiriminde bir yazılım MFA’sı kurun
- sağlanan girin Seri numarası Ve Gizli saklı ve seç Göndermek
- Kamera düzmece provizyon durumu bir kez doğruseçme BCM2835-00000000b211cf11 masada.
- Durum güncellemesi istemek için yada bir hata oluşursa sayfayı yenileyin
- Aşağıdaki şeklinde kamera sahtesinden kontrol akışını görmüş olacaksınız.
Biçim 2. Kamera modelinden web istemcisi örnek akışı
Temizlemek
Altyapıyı, kamera modelini ve Cloud9 ortamını kaldırın
- Altyapıyı Cloud9 ID içindeki kök dizinden aşağıdaki şeklinde kaldırın:
cd infrastructure sh ./uninstall-infrastructure.sh
- Kamera taklidini Cloud9 ID içindeki kök dizinden aşağıdaki şeklinde kaldırın:
cd camera sh ./uninstall-mock.sh
- AWS Management Console’da Cloud9’a gidin
- Seçmek {güvenlik kamerası} ide
- Tıklamak Silmek
Çözüm
Yukarıda ele alınan mimari, bulut bağlantılı bir gözetleme kamerasının iyi mi oluşturulacağına dair bir yaklaşım gösterdi. Göz önünde bulundurulması ihtiyaç duyulan hususlar göz önünde bulundurularak bir fiyatlandırma modeli belirleyebilir ve AWS IoT ile uygun maliyetli, bulut bağlantılı bir video nezaret platformu oluşturabilirsiniz. Tüketicilerinize son teknoloji işlevsellik ve kullanım senaryoları sağlamak için sonraki adımları izleyin ve aşağıdaki kaynakları okuyun:
Yazar hakkında
Source: aws.amazon.com