The Amazon Kinesis Data Visualization Sample Application demonstrates how to interact with Amazon Kinesis to generate meaningful statistics from a stream of data and visualize those results in real time.
The Amazon Kinesis Data Visualization Sample Application contains three components:
The application will create one Amazon Kinesis stream with two shards and two Amazon DynamoDB tables in your AWS account.
Important: These resources will incur charges on your AWS bill. It is your responsibility to delete these resources. A utility for deleting them is provided as part of this application. See Deleting Sample Application Resources for more information.
This application also includes a CloudFormation template to demonstrate how to launch an Amazon Kinesis Client application on EC2.
You can build the sample application using Maven:
mvn clean package
The application and all its dependencies are packaged into target/amazon-kinesis-data-visualization-sample-1.0.0-assembly.zip
. The CloudFormation template relies on this archive and its structure to start the application on the EC2 host.
You can execute all the sample application components directly from the command line using Maven.
HttpReferrerStreamWriter.java sends randomly generated records to the Amazon Kinesis stream. You can start it locally by executing:
MAVEN_OPTS="-Daws.accessKeyId=YOURACCESSKEY -Daws.secretKey=YOURSECRETKEY" mvn compile -Pstream-writer exec:java
HttpReferrerCounterApplication.java starts a Kinesis Client application that counts the number of HTTP requests to a resource over a sliding window. The application then persists the counts to DynamoDB for retrieval by the web application. You can start it locally by executing:
MAVEN_OPTS="-Daws.accessKeyId=YOURACCESSKEY -Daws.secretKey=YOURSECRETKEY" mvn compile -Pcounter exec:java
WebServer.java starts a web server on port 8080 to view the results of the Counting Kinesis Client Application in real time. You can start it locally by executing:
MAVEN_OPTS="-Daws.accessKeyId=YOURACCESSKEY -Daws.secretKey=YOURSECRETKEY" mvn compile -Pwebserver exec:java
After you have started all the components, navigate to http://localhost:8080 to view the running application. Note that you must execute both the Stream Writer and the Counting Kinesis Client Application to see any data on the chart.
A sample CloudFormation template is included to demonstrate how to launch the application on EC2. The template provisions an EC2 t1.micro instance and starts all three applications on it. See EC2 Instance Types for more information on instance types.
The CloudFormation stack creates an IAM Role to allow the application to authenticate your account without the need for you to provide explicit credentials. See Using IAM Roles for EC2 Instances with the SDK for Java for more information.
The template can be found at src/main/static-content/cloudformation/kinesis-data-vis-sample-app.template
.
Visit the AWS CloudFormation page for more information on what CloudFormation is and how you can leverage it to create and manage AWS resources.
The sample application creates one Amazon Kinesis Stream and two Amazon DynamoDB tables, which will bill to your account. You can delete these resources by executing the following command:
MAVEN_OPTS="-Daws.accessKeyId=YOURACCESSKEY -Daws.secretKey=YOURSECRETKEY" mvn compile -Pdelete-resources exec:java