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

Canonical announces support for Ubuntu on Windows Subsystem for Linux 2

May 6, 2019: Canonical today announces full support for Ubuntu on the Windows Subsystem for Linux (WSL) 2. “Extending enterprise support for Ubuntu from Azure to Windows workstations and servers creates a seamless operating environment for…

Industrial & Embedded Linux: Looking Ahead

I recently returned from an extended visit to Germany, where my colleagues and I kept busy attending conferences, visiting customers and partners. We travelled around the country, talking to many, many people at dozens of companies about…

MicroK8s in the Wild

Canonical released MicroK8s in December 2018, and as its popularity has grown, some interesting projects using this micro Kubernetes distribution have surfaced. To begin with a little background, Kubernetes is an open source container…