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


25 comments:

Bifin said...

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

Dimitri Gielis said...

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,
Dimitri

Adedeji Michael Adeeko said...

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

Dimitri Gielis said...

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

Zed said...

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?

Adedeji Michael Adeeko said...

That will be great

Dimitri Gielis said...

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.

Dimitri

Norman said...

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

Delphi said...

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

Carsten Cerny said...

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

Maikel said...

Great job Dimitri!

Dimitri Gielis said...

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,
Dimitri

akarim said...

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

JO said...

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)

Dimitri Gielis said...

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)

Dimitri

Robert Stefanov said...

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.

Regards
Robert

Joost said...

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?

Regards,
Joost

Andre said...

Thank you Dimitri.

Саша Гоманюк said...

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?

Jeorg said...

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,
Joerg

Dimitri Gielis said...

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,
Dimitri

Danny QC said...

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?

Dimitri Gielis said...

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.

Dimitri

Jeorg said...

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,
Joerg

Dimitri Gielis said...

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,
Dimitri