Amazon OpenSearch Service - Overview
Amazon OpenSearch Service (formerly Amazon ElasticSearch Service) is a total classic when an architectural question demands full-text search, fuzzy/partial string matching, or log analytics dashboard. ๐
Because standard databases like DynamoDB are optimized for direct primary key / index lookups, offloading search and analytical queries to OpenSearch is an essential design pattern.
Key Takeawaysโ
Let's run through the core features, deployment modes, ingestion pipeline architectures, and DVA-C02 exam tips.
๐ What is Amazon OpenSearch Service?โ
OpenSearch is a fully managed search and analytics engine derived from open-source ElasticSearch.
- Key Advantage Over Databases: Unlike DynamoDB (which requires strict Partition/Sort key matching), OpenSearch can search across any field, supporting partial matches, fuzzy search, and auto-complete.
- Query Interface: Uses OpenSearch Query DSL (Domain Specific Language) out of the box, with SQL support enabled via an optional plugin.
- Visualization: Includes OpenSearch Dashboards (formerly Kibana) for interactive log analytics and data visualization.
๐๏ธ Provisioning Modesโ
- Managed Clusters: You provision dedicated compute instances (data nodes, master nodes) across Availability Zones.
- OpenSearch Serverless: Automatically handles capacity management, scaling, and provisioning without managing underlying instances.
โ๏ธ Real-World Architecture & Ingestion Patternsโ
The DVA-C02 exam frequently tests how to get data into OpenSearch using common serverless pipelines:
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ OPENSEARCH INGESTION ARCHITECTURES โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โผ โผ โผ
โก Pattern A: DynamoDB + Streams ๐ Pattern B: CloudWatch Logs ๐ Pattern C: Kinesis Data Streams
โข User updates DynamoDB Table โข CloudWatch Log Subscription Filter โข Option 1: Firehose (Near Real-time)
โข DynamoDB Stream triggers Lambda โข Routes to Lambda or Kinesis Firehose โข Option 2: Lambda Reader (Real-time)
โข Lambda writes record to OpenSearch โข Writes log payload into OpenSearch โข Direct API write to OpenSearch
๐น Pattern A: DynamoDB Offloading for Full-Text Searchโ
- App writes item to DynamoDB Table.
- DynamoDB Streams captures the insert/update/delete mutation.
- AWS Lambda polls the stream and syncs the payload into OpenSearch in real time.
- App searches OpenSearch for partial text (e.g.,
"straw hat") to fetch item IDs, then performs a high-speedGetItemcall on DynamoDB!

๐น Pattern B: CloudWatch Logs Analyticsโ
- Subscription Filter โโโบ Lambda โโโบ OpenSearch: Real-time log streaming via managed Lambda execution.

- Subscription Filter โโโบ Kinesis Data Firehose โโโบ OpenSearch: Near real-time, high-volume buffered log ingestion without writing custom Lambda code!

๐น Pattern C: Kinesis Data Streamsโ
- Kinesis Data Streams โโโบ Kinesis Data Firehose โโโบ OpenSearch: Near real-time ingestion with built-in buffering and automatic scaling.

- Option 2: Kinesis Data Streams โโโบ Lambda โโโบ OpenSearch: Real-time ingestion with custom transformation logic in Lambda.

Exam Tipsโ
- The DynamoDB Partial Search Trap ๐จ: If a scenario describes a DynamoDB table storing product catalogs or user profiles where users now need to perform fuzzy searching or partial name matching across unindexed fieldsโselect streaming DynamoDB updates via DynamoDB Streams + Lambda into Amazon OpenSearch Service.
- Near Real-time vs. Real-time Ingestion:
- If the pipeline requires zero code / built-in buffering for high throughput: Kinesis Data Firehose โโโบ OpenSearch.
- If the pipeline requires sub-second custom transformations: Kinesis Data Streams / DynamoDB Streams โโโบ Lambda โโโบ OpenSearch.