How to configure a free Oracle Cloud virtual machine for web development (Guide 2025)

As a web developer, having access to a persistent virtual machine in the cloud is often useful for tests and development. While many cloud -based suppliers offer limited free levels (for example AWS, GCP or Azure), Oracle Cloud stands out by providing a real “always free” virtual machine.
In this article, we will examine the implementation of Oracle VM (under their always free level). There are several advantages to use it instead of limited free service of service like AWS.
- It is always free without limits of one year on use (in April 2025). However, Oracle can always change their policies around the free virtual machines they provide, so it's a good idea to check if nothing has changed with free accounts.
- The specifications are very generous. You receive a 4 VCPU virtual machine with 24 GB of RAM and 200 GB of storage. This makes it a convincing choice for a remote development workstation. The only problem? It works on the arm. But since consumer office computers have largely adopted Arm processor architectures in recent years, it is hardly a dealbreaker.
Let's review the recording process and the configuration of instances.
Save the OIC account (and give them your credit card)
Start by heading for the Oracle Cloud website and click on “Register”. In the Information on Account section, enter your name, email and country.
After checking by e-mail, you will enter your password and configure the “Home Region”.
It is important to specify the region which supports the AMPERA ARM instances (there are some who do not). I used Central France (Paris) For proximity (to have a lower latency) and an arm support.
The next step would be to check your identity by providing a payment method – Enter your credit card information. You will not be billed; This is only for identity verification. Make sure the resources you create in your Oracle Cloud account always remain within the “always free” limits.
Configuration of an instance
Once the account configuration is completed, go to the instances of your Oracle Cloud portal and click on “Create an instance”. Choose a placement that supports AMPERE (ARM) processors – Otherwise, free level forms will not appear.
Selection of an operating system and a form of instance
The next step would be to select an operating system on which your virtual machine will run. Ubuntu is a safe bet for development for general use, but Oracle Linux works better with the workloads of the Oracle Ecosystem and server.
Below, choose your instance form. This is where you specify your type of instance, your number of OCPUs and your RAM. The free level allows up to 4 OCPUs and 24 GB of RAM (in April 2025), so be sure to choose a form that is part of these limits.
Optionally, you can provide an initialization script. This is similar to “user data” in AWS EC2 instances (if you know them). Since it is the only instance that will be created for experimentation, you can always initialize and configure the instance manually.
Press “Next” once everything is configured, and the next stage “Security” will be selected. You can freely press the following and access the networking configuration.
Networking and SSH configuration
For more simplicity, use the default virtual network interface card (VNIC). Then configure SSH access by downloading your public key (.pub). This allows a remote connection secure to your virtual machine.
The next step is to configure your storage. Oracle includes 200 GB free. To avoid potential problems later, define a personalized start -up volume size on 200 GB.
Finally, review all the parameters and create the instance.
Newly created body
The instance is created and you can see it in your list in the Cloud portal. Once the instance displays a “operation”, it is ready for use and it is possible to connect. Locate your public IP address and connect via SSH:
ssh @
Expose additional ports
By default, the 80s (HTTP) and 443 (HTTPS) ports are blocked, which prevents public access to web applications. There are 2 things that are needed to make sure that there is connectivity via additional ports (in addition to SSH):
- Update of entry rules into the Virtual Cloud Network Safety List (VCN).
- Authorize the instance
iptables
rules that can be configured by default.
Updating of entry rules
Access Virtual Cloud Networks in your Oracle Cloud portal, select the default VCN used by the newly created instance. Then go to the subnet tab and select the default subnet. Click the Safety tab and access the default security list created for this subnet. There, it is necessary to open the “Safety rules” tab and this is where it is possible to add new entry rules. Let's create one to allow incoming https traffic:
Once it is saved, you can test your connection by running a simple web application or simply by connecting to public services like netcat (nc
) Or telnet
::
nc -zv 443
# or
telnet 443
If he connects, then you are good; Otherwise, let's look iptables
configuration.
Configuration iptables
In the event that the body still blocks traffic (even after opening access to ports via the Oracle VCN Security list), it is necessary to examine the parameters of internal firewall. This is where iptables
come.
On Ubuntu, it is possibly possible to configure the firewall via ufw
(Simple firewall), which works as a simplified interface to manage iptables
rules. Without prior configuration, an instance can be delivered with a set of restrictive rules by default preconfigured.
First, check if iptables
actively filter traffic:
sudo iptables -L
If you don't see ACCEPT
Rules for Port 443, you should add it manually:
# Allow incoming traffic on port 443
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
# Optionally, allow HTTP
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
# Allow established connections (if not already allowed)
sudo iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# Allow loopback interface (optional but recommended)
sudo iptables -A INPUT -i lo -j ACCEPT
Enter the following command to persist the rules:
sudo apt install iptables-persistent
sudo netfilter-persistent save
Alternatively, you can use ufw
With an equivalent set of terminal orders:
sudo ufw allow 443/tcp
sudo ufw allow 80/tcp
sudo ufw enable
What is to use a free virtual machine as a development game area
I have been using this virtual machine for almost a year for the development and execution of testing web applications. I access it from an iPad using Blink (with Neovim) and from an office via a VSCODE SSH extension. To make the whole user experience more fluid, I configured a Mosh server – this offers persistent terminal sessions, even on unstable connections.
The biggest advantage of this configuration is that the same terminal is available from any machine (since there is identification information). The free Oracle virtual machine is a solid playground for deployment tests, ILC experimentation and even light applications accommodation.