Running Android in the Cloud with Amazon EC2 A1 instances

Simon Fels

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 here

Ubuntu cloud

Ubuntu offers all the training, software infrastructure, tools, services and support you need for your public and private clouds.

Newsletter signup

Select topics you’re interested in

In submitting this form, I confirm that I have read and agree to Canonical’s Privacy Notice and Privacy Policy.

Related posts

MAAS 2.5 : Growing the ecosystem and support for KVM micro-clouds

Our latest release makes for a very exciting point in the MAAS evolution. As datacenter (DC) infrastructure grows at unparalleled scale fueled by new applications and services such as connected autonomous cars, augmented/virtual reality…

Ubuntu Core Smart Speaker

With the holidays coming up, many of us can expect to spend time with our friends and families, often listening to seasonal music, or indeed escaping the seasonal music! Whether you’re joining in or getting away from the crowd, this…

Design and Web team summary – 19 December 2018

Welcome to the latest work and updates from the design and web team. Base squad This week, the bulk of our work was on improving our internal system for employee reviews, but we found time to squeeze in a few other things: We also…