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

How to harness big data for maximum business value

Are you getting maximum value from your big data? Despite most businesses understanding the power and competitive advantage they could gain from harnessing their big data more effectively and leveraging it more efficiently, it’s not an…

Minimum viable Kubernetes

The appeal of Kubernetes is universal. Application development, operations and infrastructure teams recognise diverse reasons for its immediate utility and growing potential — a testament of Kubernetes’ empathetic design. Web apps,…

Collaborative robots – Cobots and the changing nature of work

  This is a guest blog by Jamie Branch, Corrosion Engineer at Apellix. Collaborative robots, or cobots, work side by side with humans to enhance human worker’s ability to perform their job safer, with less monotony and repetitive…