Tuesday, September 17, 2019

Best and Cheapest Oracle APEX hosting: Free Oracle Cloud

I really have to write about the Oracle Cloud Free Tier as it's the third time in my career I've been blown away by Oracle.

The first time was when I first saw and worked with the Oracle Database, the second time when I saw HTMLDB (now APEX) and today, again, with the announcement of the Free Autonomous Oracle Cloud.

The Free Oracle Tier is a hardcore smackdown on any other cloud offering which includes a virtual machine, database, and development environment!

The Free Oracle Cloud was announced by Andy Mendelsohn at Oracle Open World 2019.
You get a free Oracle Autonomous Database, 2 Virtual Machines (Compute), Storage and other services:

There's nothing like this Oracle offering on the market. The best database in the world, running on amazing hardware and all of this for free. This is not just for APEX Developers, this is for anybody who wants a datastore or virtual machine in the cloud without wanting to manage things themselves.

Jon, from JMJ Cloud, wrote RIP Exadata Express, where do I run my RAD stack now?, the answer today for me is in the Free Oracle Autonomous Oracle Cloud. For many of my customers, I also used the Exadata Express service before, as it was ideal to start developing new Oracle APEX apps. The Free Oracle Autonomous Database Cloud is a better version of what Exadata Express has ever been. I would always start my development in this new free Oracle Cloud offering as it allows you to scale up while you grow.

I really believe everybody should sign-up for this service. As with every new service, the beginning might have some hiccups, but to me, it's worth starting with this service straight away.

I signed up for the Free Oracle Cloud in multiple regions, and love it so far.
So I thought to write a series of blog posts on how you can get started:

1. Sign-up for Free Oracle Cloud
2. Setup Autonomous Transaction Cloud (ATP)
3. Connecting with SQL Developer (Desktop) to ATP
4. Connecting with SQL Developer Web to ATP
5. Setup APEX in ATP and create the first APEX app
6. Create a VM Instance (Compute Cloud)
7. Setup a Webserver on the Compute Instance (VM)
8. Setup APEX Office Print (AOP) to export to PDF, Excel, Word, Powerpoint, HTML and Text
9. Setup Object Storage and use for File Share and Backups
10. Running SQLcl and Datapump from the Compute Instance (VM) to ATP
11. Sending Emails with APEX_MAIL on ATP
12. Create a 2nd Compute Instance and a Load Balancer
13. Final things to take away
14. Message: Your Oracle Cloud Free Trial has expired (but FREE keeps running)
15. Error: The request could not be mapped to any database
16. Renewing Let's Encrypt certificate
17. Configure domain to redirect to APEX app
18. Monitoring your website and APEX app
19. Oracle APEX upgrades (19.1 to 19.2)


  1. What are the limitations for business use?
    For what it will be necessary to pay money, in the long run?

  2. There are no limitations for business use.
    If the hardware limitations are ok for you, it will always be free.

    In case your business outgrows the 20GB data and 1 OCPU, you can always go to a paid version or see at that time what alternatives you have. I don't see a reason why you would not go with this Free Oracle Cloud Free. You can always export everything out of it if needed.

    Hope that helps,

  3. For small scale businesses, will Oracle allows business domain name usage?

  4. I will show in 7. Setup a Webserver on the Virtual Machine how to use your own domain name.

  5. Why region is important? Can I setup plain nginx server here and use it to serve, for example, downloads of my program - free to any users worldwide?

  6. Hi Zed,

    The closer your region to your customers, to lower the latency is.
    But overall it doesn't really matter which region you take, as long as that region has the free Oracle Cloud service.


  7. Looking forward to this part as Setup APEX Office Print (AOP) On-premises on the VM

  8. You mention signing up in multiple regions, does that mean you can have multiple free tier accounts?

  9. I'm looking forward to the next posts. Thanks Dimi for this great input!

  10. Hi Delphi,

    With one email you can only get one Free Oracle Cloud in your "Home Zone".
    I didn't setup multiple free accounts with the same account, I have a work account, a private account and some customer accounts.

    Hope that explains,

  11. i have installed oracle apex 19.1 in oracle 11g database but got Unauthorized page show, pleas guide how can i resolve this.....

  12. Hi Dimitri, very interesting stuff, the Oracle Free Tier... Actually, I'm currently working with Maxapex as a hosting service for one of my APEX customers, and I have another customer in need of around 2GB database, so I started looking into using a dedicated XE hosting plan from MAXAPEX which costs around 120$/month.
    Now this Oracle Free Tier looks a valid competitor compared to MAXAPEX.
    Couple of questions :
    1) is Autonomous transaction database better than XE 18c ?
    2) with ORacle free tier, how often backups are done ? Do we need to take care of this, or is this included as a service?
    3) with Oracle free tier, can we setup FTP or SFTP client to be able to put files on the cloud, and then read the files via UTL_FILE (so we would need to create DBA_DIRECTORIES)

  13. Hi Jo,

    Hereby my answers:
    1/ you can't really compare... ATP is fully managed, XE not. The DB is largely the same (both EE features), but in ATP you have the latest version with automatic tuning etc. and a real experience of the cloud although not all features are there (e.g. automated backups). XE you can manage completely yourself...

    2/ you need to do backups yourself

    3/ you need to use dbms_cloud package and object storage; see my blog, it's coming in the next post (depending when you read it it's probably there)


  14. Hi Dimitri, hi Bifin,

    Just want to share my short experience.
    Created Autonomous Database on 29-Sep-2019. All fine.
    Then activated APEX and here the problems start. I get daily ORDS error and need to refresh the page some times before I get the Sign In screen.
    Today 03-Oct-2019 I got again ORDS error, but this time refresh did not help. I the Cloud Console was a warning "stopped due to inactivity". Although I accessed it daily and there are only 5 days passed from creation (not 7) the DB was stopped.

    So "What are the limitations for business use?" – No SLS, no uptime, no whatever, just free. Which is fine. Fine for business use? Probably, but the requirements of that business have to be quite low.

    Initially I intended also to use it for a very small prod apps with not so big business requirements. Today I gave up.


  15. Hi Dimitri

    I also trying to run an application with the free autonomous database.
    No I try to send emails using apex_mail package.
    I was not able to configure the email settings in the internal workspace.
    I configured them using APEX_INSTANCE_ADMIN.SET_PARAMETER
    I set the SMTP_HOST_PORT to 465
    Now I get an error ORA-24247: network access denied by access control list (ACL)
    I tried to set the ACL but I didn't was not able to find how todo.
    Do you have an idea?


  16. In case your business outgrows the 20GB data and 1 OCPU,
    Can somebody explain how i can estimate the size of my on-premise DB to figure out the satisfaction of that condition?

  17. Hello Dimitri!
    I have 2 questions.
    1) regarding methods:
    Do you know in which way(s) we can connect and transfer data to and from our internal company oracle database to the Oracle Cloud?
    Maybe REST - any other ways?

    2) regarding BLOB-columns:
    Which methods are there available to transfer blob content?
    Is there a way to use json-format to transfer the blob content?

    Any hint would be appreciated.
    Thank you in advance,

  18. Hi Joerg,

    You can use datapump to load your on-premises data to the Oracle Cloud.
    I plan to do a blog post in the future which shows this.
    Adrian also did a blog post on this: https://fuzziebrain.com/content/id/1920/

    Hope that helps,

  19. Hi Dimitri !!
    Thanks for this awesome blog!

    I have a question, every day ATP create a backup, this backup is save in my 20GB space?

  20. I believe it is. But as you lose a lot of space this way, I believe Oracle was looking into this so you have 20GB real space.
    I would chat with Oracle to verify how far they are in your data center.


  21. Hello Dimitri!
    Thank you for answering!
    May I ask back, because there was an misunderstanding regarding my "data transfer" question (10/26/2019 6:45 PM)
    It was not about initial loading or backup.
    Rather I want to transfers records (including BLOB-column!) during the life-time of the app.
    For example i want to check periodically (may be each hour or so) if there are new records and then data should be transfered.
    Is there a way to acomplish this? Blob with JSON over REST? Or any other way? May be controlled through a script running from our within our company...

    Best regards,

  22. Hi Joerg,

    I would use REST.
    For the Blobs you can create a specific REST web service that transfers Media.
    I also base64 encode my Blobs so they are part of one JSON call, which includes other data too.

    Alternatively, you could use an SQLcl script and schedule that with a Cron-job or have a database job that puts files on the file system which gets FTPed, but all those solutions would require more work than doing REST.

    Hope that helps,

  23. I'm using web service from ords to update database table once for 5 minutes.
    There is no chance of "no activity for a period of 7 consecutive days".
    In last 7 days database was unavailable twice for over 5 hours.
    Firstly there was no signs in cloud management that database is in 'disabled' state then mysteriously everything was up.
    Second time spotted that it not responding and console said it is 'disabled' but database was used continuously in previous days.

    You can rely on that kind of service, chat support is only sales and don't know anything, when you ask for support with free tier trial they send you to space.

  24. Hi. What is the difference between personal use and business use? What does it entail?

  25. This is very helpful Blog..Thanks for sharing!!!
    Cloud Server and Dedicated Server Provider India

  26. Awesome blog series. Well done. I have the same question as Danny QC.

    'I have a question, every day ATP create a backup, this backup is save in my 20GB space?'

    I have tried to get an answer from Oracle, I've been pointed to various pages of documentation and also been told I need to upgrade to the paid version. In otherwords haven't been able to get a satisfactory answer, is this still a common issue for others or have you become aware of a solution since Danny raised the issue last Sept?.
    As far as I know the backups are stored for the last 60 days. There is documentation relating to creating a manual backup but nothing about disabling the automatic backups on the free cloud tier version,

  27. Hi Dimitri,
    as I would like to try using Apex on a development database, I tried yesterday to create an account to take advantage of the Always Free Oracle Cloud services; when the agreement was signed, the registration stopped when he asked me for my credit card details because, although free, I must be a "paid account" to continue the registration. It was written on the site that they would charge me a small sum of money but only to verify the card and the services. Dimimitri, is it not possible to use Apex without being a paid account? I don't understand it.
    Or could a solution be to use a client version of Apex on my pc?

    Thank's, Fabio

  28. Can we print out to BI like apex.oracle.com?

  29. No, Oracle doesn't allow you to print to BI, at least not at the time of writing.
    But why would you want to do that, when there's APEX Office Print? :)

  30. Hi Dimitri,
    a fantastic series, many thanks.

    Regards, Garry