This page covers two families. Streaming services (Kinesis and MSK) keep an ordered, replayable log of records that many consumers can read at their own pace. Search services (OpenSearch and CloudSearch) index documents so they can be found by full-text queries. For queues and event buses where ordering and replay are not the point, see Messaging.

Choosing a service

Kinesis Data StreamsMSKOpenSearch ServiceCloudSearch
JobStream recordsStream recordsSearch and log analyticsSearch
APIAWS (PutRecord, GetRecords)Standard Apache KafkaOpenSearch, and Elasticsearch OSS up to 7.10HTTP search and document endpoints
Capacity unitShard, or on-demandBroker, or ServerlessData nodes, with UltraWarm and cold tiersSearch instances
Choose it whenYou want an AWS-native stream with little to runYour applications and tools already speak KafkaYou need current search features, logs, or dashboardsOnly if you already use it; closed to new customers

Analysis: within streaming, the Kinesis note itself says to use Data Firehose when you only need reliable delivery to storage or analytics, and Data Streams when you need custom consumers or replay.

Amazon Kinesis

Kinesis is AWS’s streaming platform: Kinesis Data Streams, Amazon Data Firehose, Managed Service for Apache Flink, and Kinesis Video Streams. In Data Streams, a record is a partition key plus a data blob; the key picks the shard, and records are ordered within a shard.

flowchart LR
    accTitle: Records flowing through a Kinesis data stream
    accDescr: Producers write records with PutRecord or PutRecords. The partition key sends each record to one shard, where records stay in order. Consumers read with GetRecords through the Kinesis Client Library, or receive a dedicated feed with enhanced fan-out.
    P[Producers: PutRecord, PutRecords] -- partition key --> S1[Shard 1]
    P -- partition key --> S2[Shard 2]
    S1 --> C[Consumers via KCL: GetRecords]
    S2 --> C
    S1 -. enhanced fan-out .-> F[Dedicated consumer: SubscribeToShard]
LimitValue
Write per shard1 MB/s or 1,000 records/s
Read per shard2 MB/s, or 2 MB/s per consumer with enhanced fan-out
Retention24 hours by default, up to 365 days
  • On-demand mode scales shards for you; provisioned mode uses a shard count you manage.
  • Spread partition keys so no hot key overloads one shard, and watch WriteProvisionedThroughputExceeded.
  • Consume with the Kinesis Client Library (KCL), which checkpoints progress and handles shard changes.1
SymptomCheck
ProvisionedThroughputExceededExceptionMore shards, better key distribution, or on-demand mode
Records lostRetention against consumer checkpoints; a slow consumer’s checkpoints lag
High consumer lagMore shards or consumers, enhanced fan-out, or lighter processing
Firehose delivery failuresDestination permissions and buffering settings

Amazon MSK

Amazon Managed Streaming for Apache Kafka runs the Kafka control plane (creating, updating, and deleting clusters) while applications keep the standard Kafka data-plane APIs, so existing clients and tools such as kcat work unchanged. MSK Connect runs managed connectors into and out of clusters.

ModeYou chooseAWS managesFits
ProvisionedBroker count and type (Standard or Express)ZooKeeper nodes or KRaft controllersPredictable capacity and control
ServerlessCluster-level settingsBroker capacity and scalingVariable traffic
  • Place brokers across at least three Availability Zones (the minimum is one broker per zone) and size them for peak throughput.
  • Authenticate with IAM or SASL/SCRAM with secrets in Secrets Manager, over TLS.2
SymptomCheck
Clients cannot connectBootstrap brokers, security groups, and authentication settings
Under-replicated partitions or NotEnoughReplicasExceptionBroker health, disk, and replication factor
Disk fullStorage or retention; watch KafkaDataLogsDiskUsed

Amazon OpenSearch Service

OpenSearch Service runs OpenSearch clusters, called domains, for log analytics, application monitoring, clickstream analysis, and full-text search. It supports current OpenSearch releases, including 3.x, and legacy Elasticsearch OSS up to 7.10. A domain can hold up to 1,002 data nodes and 25 PB of attached storage, and places data on tiers by age and cost: hot data nodes for active queries, and UltraWarm and cold storage, backed by S3, for older read-only data. OpenSearch Dashboards is built in.

  • In production, run three data nodes plus dedicated master nodes across Availability Zones.
  • Turn on encryption at rest, node-to-node encryption, and HTTPS only.3
SymptomCheck
Cluster status redUnassigned shards: disk space, node count, or replica settings
High JVM memory pressureLarger instances, more nodes, or simpler indexes
Indexing rejectedCapacity and bulk request size
Dashboards unreachableCognito, basic, or SAML auth, and VPC security groups

Amazon CloudSearch

CloudSearch is a managed search service over web pages, documents, forum posts, and product data. It is closed to new customers; existing customers can keep using it. A domain has two endpoints: uploads go to the document endpoint, queries to the search endpoint. Uploaded data is not searchable until an indexing run (index-documents) finishes, so upload and “make searchable” are separate steps. It supports language-aware full-text, boolean, prefix, and range search, boosting, facets, highlighting, and autocomplete.

  • Define fields, facets, and suggesters before uploading large batches, and index once per batch.
  • Get a domain’s endpoints from describe-domains.4
  • Analytics: Athena, Glue, and Redshift, where streamed data is often landed.
  • Messaging: queues and events, when ordering and replay are not the point.
  • Domain index

Footnotes

  1. Amazon Kinesis - Runbook & Reference, original ↩

  2. Amazon MSK - Runbook & Reference, original ↩

  3. Amazon OpenSearch Service - Runbook & Reference, original ↩

  4. Amazon CloudSearch - Runbook & Reference, original ↩