Canary, headquartered in New York City, is a fast-growing startup that makes the Canary in-home security system. The wireless device—about the size of a tall coffee mug—contains an HD video camera and multiple sensors that measure temperature, humidity, air quality, motion, and sound. When it senses something out of the ordinary, such as movement, the Canary system sends a notification along with video directly to its owner’s smartphone via a mobile app. The device is available at major retailers in the United States and United Kingdom, plus in more than a hundred other countries.
When Canary launched a crowdfunding campaign on Indiegogo in 2013, it didn’t know what to expect. Just one month later, the company had presold more than 10,000 systems in 78 countries, becoming one of the most successfully funded projects in Indiegogo history. But getting those products into the hands of new customers proved to be a major challenge. “Before we ever launched a crowdfunding campaign, we knew that for our system to work as envisioned, we’d need a cloud solution,” says Chris Rill, cofounder and chief technology officer of Canary.
Given that its system helps protect people, infrastructure security is one of the company’s primary concerns. “Data security is absolutely critical to us,” says Rill. “We needed to build a platform with a company that cares as much about security as we do.”
Flexibility and cost savings were also highly important to Canary. “As a startup, we need to be agile enough to roll out new features for our users without having to worry about back-end services that we’d need to build or manage ourselves,” Rill says.
After exploring several cloud technology companies, Canary selected Amazon Web Services (AWS). “There’s no other company that provides the breadth of services at the global scale AWS does,” says Rill. “And there’s a level of trust and credibility that comes with the AWS name, as far as cloud computing is concerned. When we say we run on AWS, it gives people confidence.”
Canary scaled its platform on the AWS Cloud, using a three-tier web architecture featuring Elastic Load Balancing on the front end and Amazon Simple Storage Service (Amazon S3) buckets to store what grew to be terabytes of data. The company uses Elastic Load Balancing to load balance the connections between devices and the services in the cloud, which run on hundreds of Amazon Elastic Compute Cloud (Amazon EC2) instances.
When the company realized it needed to prepare to scale to meet rapid growth, it added Amazon Relational Database Service (Amazon RDS). “We were looking at ways AWS could expedite production-ready systems, and that’s one reason we chose Amazon RDS,” says Monte Brown, lead web engineer at Canary. However, Canary soon moved its data store to the Amazon DynamoDB NoSQL database service. “We realized that we could only store about two billion video events captured by the device,” says Rill. “We hit that number well ahead of the pace we thought and had to move quickly to mitigate the problem. We discovered how DynamoDB could help us meet our needs, and now we’re inserting more than 150 million videos every day.”
To ensure security and customer privacy, Canary uses Amazon Virtual Private Cloud (Amazon VPC) for multifactor access control and private networks and AWS Identity and Access Management (IAM) to create and manage AWS users and groups. In addition, Canary is using AWS CloudFormation templates for more flexibility in deploying new servers.
With the AWS cloud, Canary can easily meet customer demand for its services. “People have checked into our app from 185 countries, and they’re using our devices in 140 countries, so there’s an incredible amount of demand for our services,” says Rill. “We can scale to meet that demand by running on the AWS cloud. When the marketplace demands that we commit to a new region, AWS will provide us with the same reliable services anywhere in the world. So as we grow, we can be as close to our customers as we need to be.”
Relying on AWS to manage its back end, Canary was able to quickly put its devices into production. “If we had to create services like Amazon S3 or DynamoDB ourselves, it would have taken a lot longer to get to market and continue servicing the system on a daily basis,” says Rill, noting that AWS can meet the demands of the fast-growing Internet of Things market. “That’s the magic AWS provides. We don’t have to worry about managing our data stores. With AWS, we can leverage a significant number of the services needed to operate a consumer products company, and we have more time to focus on what matters to us as a business.”
Canary also has support for the focus on strong security it demands. “AWS has security capabilities that not a lot of other cloud companies can provide,” says Rill. “Having machines behind VPCs allowed us to design our infrastructure with multiple layers of security. From locking down our environments and services, to logging configuration and monitoring, to advanced and easy-to-use subnetting and access controls, AWS Identity and Access Management provided the resources we needed to define our policies and defend our network from potential threats.”
Being nimble is essential for a growing company like Canary, and it is using AWS to act quickly. “Being a smaller organization means we can make decisions faster, and AWS helps us execute by providing the tools,” says Rill. “For our move to DynamoDB, for instance, we went from a napkin sketch to production in four weeks. We couldn’t have done that so quickly and effectively if we hadn’t been able to rely on the assistance we got from AWS.”
Canary can also deploy new features faster. “With AWS, we can roll features into production and optimize them once we see how they perform,” says Rill. “For example, users wanted the ability to export video, so we prioritized that feature and quickly incorporated it into the product.” The company also needed to add watermarks to each video, a complex and code-heavy process. In both cases, Canary was able to over-provision Amazon EC2 instances and then adjust the cluster based on actual feedback and usage. “At other times, we’ve released new features and used Amazon EC2 to over-provision and quickly respond based on demand,” says Brown.
Canary is saving a lot of stress and time by not managing its own database clusters. “Setting up your own MySQL clusters is time-consuming and very complicated,” says Rill. “Using AWS made it easy.”
The company looks forward to adding more AWS services as it grows. “Initially, I was hesitant about leveraging some of the more sophisticated services from AWS because of the perceived cost of ownership,” says Rill. “But financial cost is only one factor for consideration, and as an organization, our time to innovate and ability to execute is so much faster with AWS. If I could go back and do it again, I actually would have utilized more AWS services, and sooner. Using Amazon has been a great decision for our company.”
Read about running Internet of Things solutions on AWS.