Running Android in the Cloud with Amazon EC2 A1 instances

by Simon Fels on 29 November 2018

Amazon Web Services (AWS) announced the availability of their new Amazon EC2 A1 instances powered by custom AWS Graviton processors based on the Arm architecture, which brings Arm to the public cloud as a first class citizen. Arm based processors provide a number of benefits in terms of density and power-consumption which ultimately result in lower ‘per processor cycle’ costs for cloud compute. They also unlock the possibility for optimized execution of workloads which target this architecture directly.

When Amazon approached us to discuss ways in which we could help demonstrate the capabilities of their new instance type, we saw a unique opportunity to bring together our strengths in running workloads both in containerized cloud instances  and on devices.

By combining our tools for application modeling and high-density Linux container management we were able to quickly spin up a large number of machines on Amazon EC2 A1 instances running native Android applications. This could have a number of interesting applications in mobile application testing and distribution.

Specifically, at  AWS re:Invent, we demonstrated a fully automated solution deployed by Juju to run Android within LXD containers in the cloud and stream out the display of a  gaming app from an Amazon EC2 A1 instance to a mobile phone over the internet. We ran 10 containers each providing an individual Android system on the same EC2 instance. As Ubuntu natively supports a wide range of server architectures including x86-64, Arm, POWER and S390X we used the very same technology our users are familiar with.

Running Android inside LXD containers allows running Android-based applications at high density and at an unparalleled  scale. A range of Canonical products help deliver an easy, automated setup and clean operations experience. Juju provides all the necessary functionality to get the software stack deployed on AWS with a single command. The machine container hypervisor LXD brings all necessary features to isolate the individual Android systems from each other, manage and distribute containers in a cluster of multiple machines. Snaps provide the underlying packaging format for all the software being deployed via Juju. They provide a secure and easy way to deliver software and keep it up to date.

Streaming a display output is just one of many exciting use cases this technology can support. Ranging from secure application access to fully fledged CI/CD testing pipelines for new application builds running on variety of Android releases, we believe this unique technology will provide value to wide range of customers.

If you’re interested in discussing this amazing new technology do not hesitate to contact us.

Related posts

Canonical and OpenAirInterface to collaborate on open source telecom network infrastructure

Canonical is excited to announce that we are collaborating with OpenAirInterface (OAI) to drive the development and promotion of open source software for open radio access networks (Open RAN). Canonical will bring automation in software lifecycle management to OAI’s RAN stack, alongside additional infrastructure capabilities. This will be […]