R Shiny is installed on SBW_EC2_ShinyDWH and runs alongside PostgreSQL:
3838sbw_dashboard appclickstream_dw via localhost:5432Typical stack:
shiny, shinydashboardDBI, RPostgresdplyr, ggplot2, etc.The Shiny app is deployed under:
/srv/shiny-server/sbw_dashboard/app.R or ui.R + server.RThe dashboard can be structured into multiple tabs, for example:
Overview
Product Analytics
event_name = 'product_view')Funnel Analysis
page_view → product_view → add_to_cart → checkoutTime-based Trends
All of these visuals are powered by simple queries to clickstream_dw.public.clickstream_events and any aggregate tables you decide to build.
Because SBW_EC2_ShinyDWH has no public IP and no open SSH port, access happens via AWS Systems Manager Session Manager.
Open Session Manager in the AWS console.
Start a session to instance SBW_EC2_ShinyDWH.
Set up port forwarding:
localPort = 3838portNumber = 3838On your local machine, open:
http://localhost:3838/sbw_dashboardYou can now browse the dashboard as if it were running locally, while it actually lives inside a private subnet.
A typical validation sequence:
Generate behavior:
https://main.d2q6im0b1720uc.amplifyapp.com/Check S3:
clickstream-s3-ingest/events/YYYY/MM/DD/event-<uuid>.json files are presentRun or wait for ETL:
SBW_Lamda_ETL manually or wait for SBW_ETL_HOURLY_RULEQuery DW:
SELECT * FROM public.clickstream_events ORDER BY event_timestamp DESC LIMIT 50;Refresh the Shiny dashboard: