Czym jest AWS SNS? SNS vs konkurenci
Published: 2024-03-12 16:01:26

Przed zagłębieniem się w porównanie PubNub i Amazon Simple Notification Service (SNS) do publikowania/subskrybowania wiadomości, warto zrozumieć, czym jest każda z tych usług i co oferują. Na tym blogu zamierzamy nie tylko zbadać różnice między tymi dwiema technologiami, ale także włączyć do porównania inne potężne narzędzia Amazon Web Services, takie jak Kinesis i AWS Simple Queue Service (SQS).

W dziedzinie dostarczania danych i wiadomości, zarówno PubNub, jak i Amazon SNS, a także szerszy pakiet Amazon Web Services, są dobrze znanymi nazwami, które wykorzystują model publikowania / subskrypcji lub obsługują podobną funkcję, jak Kinesis. Choć usługi te dzielą tę podstawową funkcję, oferują różne funkcje i zaspokajają różne potrzeby biznesowe. Nie zastępują się wzajemnie, ale zapewniają rozwiązania dla różnych wymagań aplikacji. Pod koniec tego postu przekonasz się, że te technologie, w tym wykorzystanie tematu SNS i AWS SQS, służą bardzo różnym przypadkom użycia i aplikacjom.

Czym jest PubNub?
-----------------

[PubNub](https://www.pubnub.com/) to platforma komunikacji w czasie rzeczywistym, która oferuje programistom interfejsy API do tworzenia aplikacji internetowych, mobilnych i IoT w czasie rzeczywistym. Została zaprojektowana w celu zapewnienia przesyłania wiadomości i aktualizacji o niskim opóźnieniu oraz obsługuje wiele funkcji, w tym między innymi powiadomienia push, obecność, czat i synchronizację danych.

Jest używany przez ponad [2000 organizacji](https://www.pubnub.com/customers/) na całym świecie, w tym firmy, startupy i deweloperów do szybkiego i łatwego tworzenia aplikacji w czasie rzeczywistym. Niezależnie od tego, czy chodzi o transport, opiekę zdrowotną, media społecznościowe czy handel elektroniczny, PubNub umożliwia komunikację w czasie rzeczywistym w różnych branżach.

Czym jest AWS SNS?
------------------

AWS Simple Notification Service (SNS) to usługa przesyłania wiadomości oferowana przez Amazon Web Services, która umożliwia programistom wysyłanie powiadomień push, SMS-ów i e-maili do użytkowników końcowych i innych aplikacji. W połączeniu z innymi narzędziami AWS, takimi jak Kinesis i SQS, oferuje elastyczne opcje obsługi strumieni danych i kolejek wiadomości.

### Do czego służy SNS?

AWS SNS ma wiele zastosowań, z których niektóre są popularne:

-   Mobile Push Notifications: AWS SNS zapewnia ujednolicony sposób wysyłania powiadomień push do systemów Android Firebase cloud messaging i iOS APNS push messaging. Upraszcza to proces do jednego punktu końcowego. Podobną funkcjonalność oferuje [PubNub's Push Notifications](https://www.pubnub.com/products/pubnub-platform/#pushnotifications).
    
-   Powiadomienia e-mail lub SMS: Ta funkcja umożliwia wysyłanie wiadomości e-mail lub SMS do subskrybentów, takich jak klienci lub administratorzy, w przypadku wystąpienia zdarzeń. Na przykład sprzedawcy detaliczni mogą powiadamiać klientów za pośrednictwem wiadomości SMS lub e-mail, gdy ich zamówienia zostaną potwierdzone.
    
-   Komunikacja między aplikacjami: AWS SNS może ułatwiać komunikację wiadomości między aplikacjami w systemie rozproszonym w schemacie 1:1 lub 1:wiele, podobnie jak Kinesis i AWS SQS. Jest to podobne do [systemu przesyłania wiadomości Pub/Sub PubNub](https://www.pubnub.com/products/pubnub-platform/#pubsub)
    

### Opóźnienie SNS

Trudno jest określić ilościowo opóźnienie AWS SNS, ponieważ może ono zależeć od wielu czynników, takich jak region, rozmiar wiadomości i liczba subskrybentów. SNS jest reklamowany jako usługa o niskim opóźnieniu, która dostarcza wiadomości tak szybko, jak to możliwe.

### Ceny i koszty SNS

Aktualne dane dotyczące cen SNS można znaleźć na [stronie cenowej AWS SNS](https://aws.amazon.com/sns/pricing/). Cena będzie się różnić w zależności od typu wysyłanej wiadomości i dostępny jest bezpłatny poziom.

Publikowanie na urządzeniach użytkowników końcowych: PubNub vs Amazon SNS
-------------------------------------------------------------------------

PubNub został specjalnie zaprojektowany do dostarczania danych z niskimi opóźnieniami (poniżej 0,25 sekundy SLA) do urządzeń użytkowników końcowych, w tym smartfonów, tabletów, przeglądarek i laptopów. Urządzenia te mogą znajdować się za zaporami ogniowymi, środowiskami NAT, władzami wież komórkowych i innymi trudno dostępnymi środowiskami sieciowymi; dodatkowo PubNub zapewnia buforowanie wiadomości w celu retransmisji utraconych sygnałów w niewiarygodnych środowiskach sieciowych. PubNub osiąga to poprzez utrzymywanie **zawsze otwartego połączenia gniazda** z każdym urządzeniem i używanie tego otwartego połączenia gniazda do "wypychania" danych przy niskich opóźnieniach. PubNub zapewnia ponad [50 bibliotek SDK](https://www.pubnub.com/docs/) dla klientów, aby ułatwić "podłączenie" do PubNub za pomocą prostego **wywołania PubNub Subscribe API**. Z drugiej strony, głównym zastosowaniem Amazon SNS jest publikowanie / subskrybowanie z serwera na serwer lub powiadomienia użytkowników końcowych za pośrednictwem poczty e-mail i wiadomości tekstowych. Aby uzyskać lepsze wyobrażenie o tym, jak Amazon SNS jest zaimplementowany, sprawdź [typowe przypadki użycia Amazon SN](https://www.quora.com/What-are-good-uses-of-Amazons-Simple-Notification-Service) S tutaj. Amazon SNS nie jest również zoptymalizowany pod kątem powiadomień w czasie rzeczywistym w aplikacji. Amazon SNS jest bardziej analogiczny do TIBCO lub Tuxedo, które są systemami publikowania/subskrybowania serwer-serwer. Amazon SNS nie ma możliwości dotarcia do urządzeń klienckich, z wyjątkiem powiadomień e-mail lub SMS. W rezultacie, w przypadku aplikacji, które opierają się na danych o niskim opóźnieniu (takich jak gry wieloosobowe, aplikacje do czatowania, aplikacje do współpracy itp.) Amazon SNS nie jest właściwym rozwiązaniem dla tego środowiska.

wywołań zwrotnych. Uruchamianie serwera HTTP na urządzeniach mobilnych, przeglądarkach i komputerach stacjonarnych w celu otrzymywania tych powiadomień jest niepraktyczne, zarówno ze względu na zapory sieciowe, jak i ze względów bezpieczeństwa urządzeń.

Opóźnienie Amazon SNS vs. PubNub
--------------------------------

Opóźnienie Amazon SNS nie daje żadnych gwarancji, a zdecydowana większość opóźnień jest mierzona powyżej 1 sekundy, a często o wiele sekund wolniej. Ponownie, jest to nieco nieistotne; Amazon SNS jest przeznaczony do powiadomień serwer-serwer (lub e-mail/SMS), gdzie opóźnienie wielu sekund jest często akceptowalne i oczekiwane. Ponieważ PubNub dostarcza dane za pośrednictwem istniejącego, ustalonego otwartego gniazda sieciowego, opóźnienia wynoszą poniżej 0,25 sekundy od publikacji do subskrypcji w 95% percentylu subskrybowanych urządzeń. Większość ludzi postrzega coś jako "w czasie rzeczywistym", jeśli zdarzenie jest postrzegane w ciągu 0,6 - 0,7 sekundy.

### Kanały/tematy i multipleksowanie PubNub i SNS

Amazon SNS pozwala na [utworzenie do 100 "](https://aws.amazon.com/sns/?whats-new-cards.sort-by=item.additionalFields.postDateTime&whats-new-cards.sort-order=desc) tematów" na koncie. Temat jest odpowiednikiem kanału PubNub. Z kolei PubNub obsługuje [nieograniczoną liczbę](https://www.pubnub.com/docs/chat/overview) kanałów PubNub. Dzięki temu każde urządzenie użytkownika końcowego może mieć swój własny kanał dla łączności jeden-do-jednego.

### Multipleksowanie SNS

Co więcej, obsługa **multipleksowania** przez PubNub pozwala urządzeniu klienckiemu łączyć się z wieloma kanałami PubNub jednocześnie, nadal korzystając z jednego gniazda sieciowego. Pozwala to klientowi na jednoczesne subskrybowanie, na przykład, "prywatnego" kanału specjalnie sparowanego z pojedynczym urządzeniem lub zestawem urządzeń należących do tej samej osoby oraz "publicznego" kanału, który może również subskrybować grupa lub cała populacja. Innym przypadkiem użycia Multiplexing byłaby [aplikacja do strumieniowego przesyłania cen akcji](https://www.pubnub.com/solutions/data-streaming/): Załóżmy, że chcesz przesyłać strumieniowo zmiany cen akcji dla 1000 różnych akcji. Każda akcja miałaby swój własny kanał PubNub. Urządzenie użytkownika końcowego używałoby PubNub Multiplexing do subskrybowania tylko kanałów PubNub powiązanych z akcjami, które chce śledzić.

Ponieważ Amazon SNS nie obsługuje multipleksowania, tego typu przypadek użycia nie jest możliwy.

Niezawodność i redundancja SNS a PubNub
---------------------------------------

PubNub jest globalnie dystrybuowany w 14 centrach danych i stale rośnie. Wszystkie dane publikowane w globalnej chmurze PubNub są automatycznie replikowane na całym świecie, zapewniając zarówno niskie opóźnienia na całym świecie, jak i niezrównaną niezawodność, nawet w przypadku awarii całego centrum danych. PubNub oferuje do 99,999% czasu sprawności SLA dla swojej sieci Data Stream Network.

Funkcje PubNub vs AWS SNS
-------------------------

Poza prostym publikowaniem/subskrybowaniem, PubNub oferuje zbiór [usług blokowych w czasie rzeczywistym](https://www.pubnub.com/products/pubnub-platform/) dla dowolnego rodzaju aplikacji czasu rzeczywistego. Usługi te nie są oferowane przez Amazon SNS lub inne usługi Amazon:

-   [Synchronizacja danych](https://www.pubnub.com/products/pubnub-platform/) - automatycznie synchronizuje dane aplikacji w czasie rzeczywistym między urządzeniami oraz przechowuje i udostępnia obiekty w całym cyklu życia aplikacji.
    
-   [Obecność](https://www.pubnub.com/products/presence/) - zapewnia aktualizacje w czasie rzeczywistym dla użytkowników, którzy są online, oraz alerty, gdy są off-line. Aktualizacje te są dostarczane za pośrednictwem multipleksowanego "siostrzanego kanału" PubNub, który przesyła aktualizacje obecności za każdym razem, gdy zmienia się liczba użytkowników w aplikacji. Dodatkowy interfejs API o nazwie "Here\_Now()" zapewnia również aktualną liczbę użytkowników w aplikacji.
    
-   [Przechowywanie i odtwarzanie](https://www.pubnub.com/products/pubnub-platform/) - PubNub automatycznie przechowuje wszystkie dane opublikowane na każdym kanale i zapewnia dwa mechanizmy pobierania tych danych: (a) proste żądanie REST w celu pobrania wszystkich danych naraz oraz (b) mechanizm odtwarzania do "odtwarzania" tych danych podobny do DVR dla nagrań telewizyjnych.
    
-   [Analityka w czasie rzeczywistym](https://www.pubnub.com/products/pubnub-platform/) - PubNub zapewnia różne wizualizacje i statystyki użytkowania w celu wyświetlania aktywności użytkowników, geografii i użytkowania. Przykładowy zrzut ekranu znajduje się poniżej
    
-   [Offline Mobile Push](https://www.pubnub.com/products/pubnub-platform/) - PubNub zapewnia również mechanizm awaryjny dla wiadomości na urządzenia mobilne, gdy aplikacja mobilna nie jest uruchomiona (lub jest w tle). PubNub może powrócić do mobilnego "powiadomienia push", zapewniając, że mobilny użytkownik końcowy zostanie powiadomiony nawet wtedy, gdy telefon jest w kieszeni. Gdy tylko aplikacja zostanie uruchomiona, ponownie zacznie korzystać z sieci strumienia danych.
    

![](https://www.pubnub.com/cdn/3prze68gbwl1/asset-17suaysk1qa1k9r/c3f67d414fae694db584c813ac0787f9/Screen-Shot-2014-08-13-at-9.16.55-AM.png)

-   [Szyfrowanie AES](https://www.pubnub.com/products/security-overview/) - PubNub zapewnia gotową obsługę szyfrowania AES 256, zapewniając, że dane pozostają zaszyfrowane podczas przesyłania przez sieć PubNub. Podczas gdy Amazon SNS zapewnia HTTPS, oznacza to, że dane są _niezaszyfrowane_ podczas routingu przez sieć Amazon. To natychmiast unieważnia użycie Amazon SNS dla HIPAA, SAS70 i innych aplikacji związanych z bezpieczeństwem.
    
-   [Multipleksowanie](https://www.pubnub.com/products/pubnub-platform/) - PubNub usprawnia komunikację wielokanałową za pomocą mechanizmu, który umożliwia przesyłanie strumieniowe wszystkich tematów danych za pośrednictwem pojedynczego połączenia
    

połączenie Socket. Dzięki PubNub Multiplexing oszczędności są najbardziej widoczne w przypadku zasobów urządzeń mobilnych, takich jak telefony na baterii i wolniejsza łączność sieciowa. Dane są kompresowane i łączone za pomocą konfigurowalnego okienkowania, aby zapewnić dłuższą żywotność baterii i lepsze wrażenia użytkownika końcowego w stale zmieniających się warunkach sieciowych.

Kiedy wybrać PubNub, SNS lub AWS Kinesis?
-----------------------------------------

Amazon SNS oferuje wiele interesujących zastosowań, głównie koncentrujących się na powiadomieniach serwer-serwer i alertach e-mail/SMS dla użytkowników końcowych, znanych jako tematy SNS. Początkowo został opracowany jako sposób na orkiestrację danych między różnymi innymi usługami chmurowymi Amazon AWS, a tym samym wykorzystywany głównie do operacji zaplecza serwera i przepływu danych. Z drugiej strony, AWS Kinesis jest często wybierany do strumieniowego przesyłania danych i analiz w czasie rzeczywistym.

Z kolei PubNub koncentruje się na umożliwieniu programistom tworzenia aplikacji działających w czasie rzeczywistym, które mogą obsługiwać dużą liczbę użytkowników jednocześnie. Ta różnica wyróżnia PubNub, czyniąc go szczególnie odpowiednim dla aplikacji, które wymagają solidnej, wydajnej funkcjonalności w czasie rzeczywistym i płynnego systemu dostarczania wiadomości.

Jak PubNub może ci pomóc?
-------------------------

Nasza platforma pomaga programistom tworzyć, dostarczać i zarządzać interaktywnością w czasie rzeczywistym dla aplikacji internetowych, aplikacji mobilnych i urządzeń IoT.

Podstawą naszej platformy jest największa w branży i najbardziej skalowalna sieć przesyłania wiadomości w czasie rzeczywistym. Dzięki ponad [19 punktom obecności na całym świecie](https://www.pubnub.com/platform/global-infrastructure/) obsługującym 1 miliard aktywnych użytkowników miesięcznie i niezawodności na poziomie 99,999%, nigdy nie będziesz musiał martwić się o przestoje, limity współbieżności lub jakiekolwiek opóźnienia spowodowane skokami ruchu.

Poznaj PubNub
-------------

Zapoznaj się z [Live](https://www.pubnub.com/tour/introduction/) Tour, aby zrozumieć podstawowe koncepcje każdej aplikacji opartej na PubNub w mniej niż 5 minut.

Rozpocznij konfigurację
-----------------------

Zarejestruj [konto Pub](https://admin.pubnub.com/signup/) Nub, aby uzyskać natychmiastowy dostęp do kluczy PubNub za darmo.

Rozpocznij
----------

[Dokumentacja](https://www.pubnub.com/docs) i [zestawy SDK](https://www.pubnub.com/docs) PubNub pozwolą Ci rozpocząć pracę niezależnie od zastosowania. Nasza kompleksowa i aktualna dokumentacja zawiera jasne instrukcje i pomocne przykłady, aby zapewnić płynne rozpoczęcie procesu rozwoju.

#### Spis treści

[Co](#h-0) to jest PubNub?[Co to jest AWS SN](#h-1)S?Do czego[służy SNS?](#h-2)[Opóźnienie](#h-3)[SNSCeny i koszty SNSPublikowanie](#h-4)[na urządzeniach użytkowników końcowych: PubNub vs Amazon SNSAmazon](#h-5)[SNS latency vs. PubNubKanały/tematy](#h-6)[i multipleksowanie PubNub i SNSSNS](#h-7)[MultiplexingNiezawodność i redundancja SNS vs PubNubPubNub](#h-9)[vs AWS SNS featuresKiedy](#h-10) wybrać[PubNub, SNS czy AWS Kinesis](#h-11)?[Jak PubNub może Ci pomóc?](#h-12)[Poznaj PubNubPoznaj](#h-13)[konfiguracjęPoznaj](#h-14)[początek](#h-15)

Jak PubNub może ci pomóc?
=========================

Ten artykuł został pierwotnie opublikowany na [PubNub.com](https://www.pubnub.com/blog/amazon-sns-pubnub-differences-pubsub/)

Nasza platforma pomaga programistom tworzyć, dostarczać i zarządzać interaktywnością w czasie rzeczywistym dla aplikacji internetowych, aplikacji mobilnych i urządzeń IoT.

Fundamentem naszej platformy jest największa w branży i najbardziej skalowalna sieć przesyłania wiadomości w czasie rzeczywistym. Dzięki ponad 15 punktom obecności na całym świecie obsługującym 800 milionów aktywnych użytkowników miesięcznie i niezawodności na poziomie 99,999%, nigdy nie będziesz musiał martwić się o przestoje, limity współbieżności lub jakiekolwiek opóźnienia spowodowane skokami ruchu.

Poznaj PubNub
-------------

Sprawdź [Live Tour](https://www.pubnub.com/tour/introduction/), aby zrozumieć podstawowe koncepcje każdej aplikacji opartej na PubNub w mniej niż 5 minut.

Rozpocznij konfigurację
-----------------------

Załóż [konto](https://admin.pubnub.com/signup/) PubNub, aby uzyskać natychmiastowy i bezpłatny dostęp do kluczy PubNub.

Rozpocznij
----------

[Dokumenty](https://www.pubnub.com/docs) PubNub pozwolą Ci rozpocząć pracę, niezależnie od przypadku użycia lub [zestawu SDK](https://www.pubnub.com/docs).