If you are like me, you spent this past Sunday afternoon looking forward to the landing of the Curiosity rover on Mars. I was able to wrest the remote control away from my family and change to NASA TV in time to watch through the aptly named "seven minutes of terror" as Curiosity performed an intricate series of steps that resulted in a safe, on-target landing.
The AWS team is proud to have helped to bring the video to you and to other like-minded space geeks around the globe. Now that the (red) dust has cleared, we've published a new NASA success story with full information on their AWS setup.
We've been working with NASA for several years, providing support to a number of current and future missions. The data collection and image processing tasks for the earlier Spirit and Opportunity rovers runs on AWS, coordinated by the Amazon Simple Workflow service (read the case study to learn more).
For the Curiosity landing, NASA built a system to serve web content and streaming video to a worldwide audience. They made use of a number of AWS services including EC2, S3, SimpleDB, Route 53, CloudFront, the Relational Database Service, Simple Workflow, CloudFormation, and Elastic Load Balancing.
Now that Curiosity is ready to roll, the mission will use AWS to automate and accelerate the analysis of the images that it sends each day. This accelerated analysis will lead to better decision making and an increase in the amount of exploration that Curiosity can do each day.
Read our new NASA story to learn more.
The Curiosity rover includes a stereoscopic camera. In order to produce a finished image, each pair (left and right) of images must be warped to compensate for perspective, then stereo matched to each other, stitched together, and then tiled into a larger panorama. This complex workflow is difficult to express using a system based on message queues. Instead, the entire process was modeled and implemented using the Amazon Simple Workflow service and the AWS Flow Framework. As described in the case study, the Simple Workflow Service coordinates worker tasks that are spread across EC2 instances and JPL data centers. The worker tasks are able to participate in the workflow without regard to their location.