You have logs in DynamoDB. You love Kibana’s dashboards. What you don’t love is copying data through brittle scripts just to see something meaningful. That’s the DynamoDB–Kibana tension: one is built for scale, the other for insight, and the bridge between them often looks like duct tape.
DynamoDB is AWS’s serverless NoSQL powerhouse. It stores JSON-like data in a schema-free model and scales without a second thought. Kibana—part of the Elastic Stack—is the visualization layer that turns raw events into graphs, anomalies, and pretty charts that your manager wants in every deck. Together, DynamoDB and Kibana can reveal patterns across billions of items, but only if you can make them talk.
The natural flow is this: DynamoDB changes trigger a stream. That stream feeds into a collector, often Lambda or Kinesis Firehose, which formats events and pushes them into OpenSearch (the AWS flavor compatible with Kibana). Once the data lands, Kibana indexes it and builds visualizations almost instantly. You never query DynamoDB directly from Kibana. Instead, you create a controlled mirror of the data meant for analytics.
Access control remains the tricky part. IAM governs DynamoDB, and Kibana relies on role-based access built into your OpenSearch domain. Syncing those identities sounds tedious until you tie both into one identity provider such as Okta or Azure AD using OIDC. That lets you set policies once and have them apply across the entire flow.
Quick answer: To connect DynamoDB and Kibana, route DynamoDB Streams through Kinesis or Lambda into OpenSearch. Then point Kibana at that index for analysis. This keeps your production tables fast and your analytics live.