Oracle's cloud is giving everyone who signs up a free quad core VM using Ampere's Altra CPU (an arm64 CPU) with 24GB of RAM.
That's cool, and very useful for running a #homelab (desperate times call for desperate measures I guess, and I doubt Oracle's cloud initiative will ever be anything other than an also ran). Anyway, despite my many misgivings about Oracle as a corporation, and Larry Ellison as a person, I'm not going to say no to a powerful free server. Especially as it involves me not giving any money to Oracle.
One problem though, they don't offer Debian. They offer Oracle Linux of course, and a bunch of other RHEL knock-offs, and Ubuntu LTS, but no Debian.
I tried their Ubuntu version, but it had snap and a bunch of other Canonical things I'm not very keen on. It is also very much a Oracle'd version of Ubuntu. It runs their own custom kernel, they have modified the system image in various places for example by changing the default firewall and DNS rules. Not to my liking.
Thankfully, there is an easy-ish way of running Debian on these servers. Here are the steps.
Download the “generic arm64” cloud version of the most recent release of Debain in qcow2 format from https://cloud.debian.org/images/cloud/ For example at the time of writing, the most recent release is #bookworm and the most recent image is https://cloud.debian.org/images/cloud/bookworm/20231013-1532/debian-12-generic-arm64-20231013-1532.qcow2
Go to Oracle Cloud and go to Buckets and create a new bucket (this is Oracle's version of S3/blob storage).
Once your bucket is created, upload the debian qcow2 file to this bucket (You get 20GiBs of bucket storage for free, the image is only a few hundered MiBs).
Once your file is uploaded, create a “Pre-Authenticated Request” with the Access type of “Permit object reads”. This might not be necessary for some, but for me the bucket didn't show up in a later stage when creating the instance, so I had to use this method. It will generate a URL to access this object. Store this URL somewhere, you'll need it.
Now go back to the OCI Dashboard and go to Compute Overview.
Click on Custom Images
Click on Import image
Put it in a compartment and give the image a name
Select Debian as the Operating System
Select “Import from an Object Storage URL” and use the previously generated URL.
Select QCOW2 as the image type.
Select Paravirtualized mode and click on “Import image”.
Now click on the name of the image, and in the following page click on “Edit details”.
Deselect all other shapes (they are all amd64/x86 CPUs) and only select VM.Standard.A1.Flex (this is the Ampere Altra one which is free).
Click on Save changes
Now click on “edit image capabilities”
For Firmware, deselect BIOS and only select UEFI_64
For Launch mode, only select “CUSTOM” and deselect everything else.
For “AMD secure encrypted virtualization” select Disabled (I have not tried this with enabled).
For Secure Boot select Enabled.
For NIC attachment select all and Prefer “PARAVIRTUALIZED”.
For Boot volume, select all and prefer “PARAVIRTUALIZED”.
For local data volume, select all and prefer “PARAVIRTUALIZED”.
For remote data volume, select all and prefer “PARAVIRTUALIZED”.
For Consistent volume naming, choose Disabled.
For Multipath volume attachment, choose Disabled.
For in-transit encryption, choose “Enabled”.
For Paravirtualization version, select both 1 and 2 and prefer 2.
Save your changes.
Now you can create on “create instance” to create an instance using this image as its boot volume.
In the following page, give your machine a name and place it in the same compartment as the boot volume.
For Shielded instance, select Disabled.
Your image will be automatically chosen. For Shape, VM.Standard.A1.Flex. You get 4 cores and 24 GB of RAM for free. You can either have a 4 core machine with 24GB of RAM, two dual-core machines with 12GB of RAM, or 4 single-core machines each with 6GB of RAM. Up to you.
The rest of the settings, I used the defaults. You get 200GB of boot volume for free. Again, you can either attach it as a single volume to one machine, or divide it across multiple boot volumes.
Don't forget to upload your SSH public keys here.
Once the machine is up, you can ssh into it with debian@IP-ADDRESS-OF-Machine. The debian user has sudo privileges.
One last thing. I've seen mentions elsewhere that if you roll out your own custom image on Oracle's Cloud, it will not have the same performance as the images they offer. This is not true. I ran Linux Bench on 3 machines, all with exactly the same config (quad core Altra with 24GB of RAM). One machine ran AlmaLinux, the other Ubuntu LTS and the third one my own custom Debian bookworm image. All performed roughly the same, with the Debian version actually scoring a few percentage points faster. I ran the tests 3 times and the results were similar.
I'm sure Oracle's images would be better if you care about how it integrates into the rest of the OCI ecosystem, but if you don't care about OCI and just want to run your own server in the cloud, there is absolutely no performance penalty to using your own custom image.
Comments
Nothing yet. Say the first thing.
Sign in to join the conversation.