Amazon MSK
Amazon Managed Streaming for Apache Kafka
W pełni zarządzany Apache Kafka w chmurze AWS. Buduj aplikacje streamingowe w czasie rzeczywistym bez zarządzania klastrem Kafka - z pełną kompatybilnością open-source.
Amazon MSK (Managed Streaming for Apache Kafka) to w pełni zarządzany serwis Apache Kafka, który pozwala budować i uruchamiać aplikacje przetwarzające dane w czasie rzeczywistym. MSK automatyzuje provisioning, konfigurację i utrzymanie klastrów Kafka.
MSK jest w 100% kompatybilny z open-source Apache Kafka, co oznacza, że istniejące aplikacje Kafka działają bez zmian. Serwis oferuje też MSK Serverless (bez zarządzania pojemnością) i MSK Connect (zarządzane konektory do integracji z innymi systemami).
Apache Kafka został pierwotnie stworzony w LinkedIn w 2011 roku do przetwarzania strumieni aktywności użytkowników. Nazwa pochodzi od Franza Kafki - twórcy uważali, że system zoptymalizowany do pisania danych powinien nosić imię pisarza. Amazon MSK przetwarza biliony wiadomości dziennie dla tysięcy klientów!
Jeśli dopiero zaczynasz z Kafka na AWS, zacznij od MSK Serverless - nie musisz planować pojemności brokerów. Gdy potrzebujesz pełnej kontroli nad konfiguracją (np. custom partycje, replikacja), przejdź na MSK Provisioned. Używaj MSK Connect zamiast pisania własnych konsumentów do typowych integracji (S3, RDS).
Amazon MSK (Managed Streaming for Apache Kafka) to w pelni zarzadzany serwis Apache Kafka. Obsluguje provisionowanie brokerow, replikacje, patchowanie i monitorowanie, pozwalajac skupic sie na budowaniu aplikacji streamingowych.
Tworzenie klastra MSK
Wybierasz wersje Apache Kafka, typ instancji brokerow (kafka.m5.large dla typowych workloadow), liczbe brokerow per AZ (min. 1, zalecane 3 AZ) i pojemnosc EBS. MSK automatycznie rozmieszcza brokery w wybranych AZ dla wysokiej dostepnosci. Klaster jest deployowany w Twoim VPC.
Konfiguracja topikow i partycji
Tworzysz topiki (tematy) z konfiguracja: liczba partycji (determinuje paralelizm), replication factor (zazwyczaj 3), retention period (jak dlugo przechowywac dane). Producenci wysylaja wiadomosci do topikow, konsumenci odczytuja. Kazda partycja to uporzdkowany, niezmienny log.
Podlaczenie producentow i konsumentow
Aplikacje lacz sie z MSK przez standardowe klienty Kafka (Java, Python, Go, .NET). MSK udostepnia bootstrap servers endpoint. Autentykacja: IAM Access Control (zalecane), SASL/SCRAM, TLS mutual auth. Szyfrowanie in-transit (TLS) i at-rest (KMS) domyslnie wlaczone.
MSK Connect - managed connectors
MSK Connect uzywa Kafka Connect do integracji z zewnetrznymi systemami bez pisania kodu. Source connectors importuja dane (np. z bazy danych CDC z Debezium), sink connectors eksportuja (np. do S3, OpenSearch, Redshift). Connectors skaluja sie automatycznie i sa w pelni zarzadzane.
Monitorowanie i operacje
MSK automatycznie wysyla metryki do CloudWatch: BytesInPerSec, BytesOutPerSec, UnderReplicatedPartitions, OfflinePartitionsCount. Open Monitoring z Prometheus pozwala na bardziej szczegolowy monitoring. MSK obsluguje automatyczny storage scaling - dodaje dysk gdy zajete miejsce przekroczy prog.
MSK Serverless - bez zarzadzania brokerami
MSK Serverless automatycznie provisionuje i skaluje zasoby Kafka. Nie konfigurujesz instancji ani dyskow. Platisz za cluster-godzine ($0.75/godz), per partycja-godzine ($0.0015/partycja-godz, ok. $1.10/mies za stala partycje) oraz per GB przeslanych danych. Idealny dla zmiennego obciazenia. Ograniczenia: maks. 200 MB/s throughput, IAM-only auth.
Praktyczne wskazowki z wdrazania i operowania Amazon MSK w srodowiskach produkcyjnych.
Wybor miedzy MSK Provisioned a Serverless
MSK Serverless jest prostszy i tanszy dla < 200 MB/s throughput. MSK Provisioned daje pelna kontrole: wiecej typow autentykacji, Schema Registry, wiekszy throughput, tiered storage. Dla produkcji z przewidywalnym obciazeniem Provisioned czesto wychodzi taniej. Serverless jest idealny dla dev/test i nieprzewidywalnych workloadow.
PoczatkujacyPartycje - ile i jak zarzadzac
Liczba partycji determinuje maksymalny paralelizm konsumentow. Regula: partycje >= liczba konsumentow w grupie. Zbyt wiele partycji (>1000 per broker) zwieksza latency i czas recovery. Nie mozna zmniejszyc liczby partycji - planuj z zapasem, ale nie przesadzaj. Uzyj key-based partitioning dla zachowania kolejnosci per entity.
ZaawansowanyIAM Access Control zamiast SASL
IAM Access Control to najprostszy i najbezpieczniejszy sposob autentykacji w MSK. Uzywa standardowych IAM policies i roles - nie musisz zarzadzac credentials w Secrets Manager. Producenci i konsumenci uwierzytelniaja sie IAM role (np. z ECS task role lub EC2 instance profile). Lacz z VPC endpoints dla zero-trust.
PoczatkujacyTiered storage dla dlugiej retencji
MSK Tiered Storage przenosi stare segmenty logow z EBS na S3 automatycznie. Konfiguracja: remote.storage.enable=true i local.retention.ms (np. 24h lokalnie). Pozwala przechowywac dane tygodniami lub miesiacami bez kosztownych dyskow EBS. Odczyt starych danych jest wolniejszy, ale koszt drastycznie nizszy.
ZaawansowanyDead Letter Queue dla blednych wiadomosci
Konfiguruj Dead Letter Topic (DLT) dla wiadomosci, ktorych konsument nie moze przetworzyc. Po N probach (max.retries) wiadomosc trafia na DLT zamiast blokowac partycje. Monitoruj DLT z alertem CloudWatch. Zbuduj osobny konsument do analizy i re-processingu blednych wiadomosci.
PoczatkujacyScreenshoty z AWS Console
Wkrotce pojawia sie tu zrzuty ekranu pokazujace jak korzystac z Amazon MSK bezposrednio w konsoli AWS.
Do czego sluzy Amazon MSK?
Streaming danych w czasie rzeczywistym
Przetwarzaj strumienie zdarzeń z aplikacji, IoT, logów i clickstreamów z milisekundowym opóźnieniem.
Architektura event-driven
Buduj mikroserwisy komunikujące się przez zdarzenia Kafka - z gwarancją kolejności i trwałości wiadomości.
Pipeline danych do analityki
Strumieniuj dane z systemów źródłowych do S3, Redshift lub Elasticsearch za pomocą MSK Connect bez pisania kodu.
Agregacja logów i metryk
Centralizuj logi z setek mikroserwisów przez Kafka topics i przetwarzaj je w czasie rzeczywistym lub zapisuj do S3.
Co musisz wiedziec?
Klaster MSK
Zestaw brokerów Kafka zarządzanych przez AWS. Rozłożony na wiele Availability Zones dla wysokiej dostępności.
Broker
Serwer Kafka w klastrze, który przechowuje dane i obsługuje producentów i konsumentów. Typy: kafka.m5.large, kafka.m5.xlarge itp.
MSK Serverless
Tryb bezserwerowy Kafka - nie musisz zarządzać brokerami ani pojemnością. Płacisz za przepustowość i storage.
MSK Connect
Zarządzane konektory Kafka Connect do integracji z bazami danych, S3, Elasticsearch i innymi systemami bez pisania kodu.
Topic
Kanał, do którego producenci publikują wiadomości, a konsumenci je odczytują. Topic jest podzielony na partycje dla skalowalności.
Schema Registry
Rejestr schematów (Avro, JSON Schema, Protobuf) zapewniający spójność formatu danych między producentami i konsumentami.
Architektura: Event streaming z Amazon MSK
Architektura platformy event streaming z MSK jako centralnym hubem danych laczacym producentow z konsumentami w real-time.
Ile kosztuje Amazon MSK?
MSK Provisioned - instancje brokerów
Płacisz za godzinę działania każdego brokera. Cena zależy od typu instancji.
kafka.m5.large: ~$0.21/godz. za brokera (~$153/mies.)
MSK Provisioned - storage
Opłata za GB przechowywanych danych na brokerach. Auto-scaling storage dostępny.
$0.10/GB/mies. (EBS storage)
MSK Serverless
Płacisz za przepustowość (cluster hours), storage i partycje. Bez kosztów za brokery.
$0.75/godz. za cluster + $0.10/GB storage + $0.0015/partycja-godz.
MSK Connect
Opłata za godzinę działania workerów konektora (MCU - MSK Connect Units).
$0.11/MCU-godz. (worker)
Przyklady AWS CLI
Utwórz klaster MSK
Tworzy klaster Kafka z 3 brokerami w 3 Availability Zones
aws kafka create-cluster \
--cluster-name moj-kafka \
--kafka-version "3.6.0" \
--number-of-broker-nodes 3 \
--broker-node-group-info '{"InstanceType":"kafka.m5.large","ClientSubnets":["subnet-aaa","subnet-bbb","subnet-ccc"],"StorageInfo":{"EbsStorageInfo":{"VolumeSize":100}}}'
Lista klastrów MSK
Wyświetla wszystkie klastry Kafka z ich statusami
aws kafka list-clusters-v2 \
--query "ClusterInfoList[].{Name:ClusterName,State:State,Type:ClusterType}" \
--output table
Pobierz bootstrap brokers
Zwraca adresy brokerów potrzebne do połączenia producentów i konsumentów
aws kafka get-bootstrap-brokers \
--cluster-arn arn:aws:kafka:eu-west-1:123456789012:cluster/moj-kafka/uuid
Utwórz klaster MSK Serverless
Tworzy bezserwerowy klaster Kafka bez zarządzania brokerami
aws kafka create-cluster-v2 \
--cluster-name moj-kafka-serverless \
--serverless '{"ClientAuthentication":{"Sasl":{"Iam":{"Enabled":true}}},"VpcConfigs":[{"SubnetIds":["subnet-aaa","subnet-bbb"],"SecurityGroupIds":["sg-123"]}]}'
Quiz: Amazon MSK
Sprawdz czy dobrze rozumiesz podstawy. Kliknij odpowiedz — feedback pojawi sie od razu.
1. Czym jest Amazon MSK?
2. Co oferuje MSK Serverless?
3. Do czego służy MSK Connect?
4. Ile minimalnie brokerów powinien mieć produkcyjny klaster MSK?
Czesto uzywane razem z Amazon MSK
Chcesz poznac Amazon MSK w praktyce?
Darmowy kurs "AWS od podstaw" pokazuje jak uzywac Amazon MSK krok po kroku. Teoria + praktyka od zera.