Start a Kinesis data analytics application with cloudformation

There is a way, but unfortunately, its not that straightforward.

The first way would involve create a custom resource in CloudFormation. The resource would be a lambda, which you would write to start the Kinesis App from the CloudFormation.

The second would be through a non-elegant substitute for a custom resource, but much easier to setup. This is done by using smallest instance possible (e.g. t2.nano) with instance shutdown behaviour set to terminate. So your template creates that instances, in UserData you start the Kinesis app, and shutdown the instance (shutdown -h now). This will terminate the instance after the start of the Kinesis due to shutdown behavior.

Other ways would involve setting up notification when your cloudformation successfully deploys, and the notification would trigger a lambda which would start the Kinesis.

Hope this helps.