APEX in the cloud

“Met mijn hoofd in de wolken of hoe ik in de Oracle Cloud verzeild raakte” … Vanwege de layback-periode bij Ahold werd mij onverwacht studietijd in de schoot geworpen, een mooie gelegenheid om mijn kennis van APEX op te frissen.

Jaren geleden installeerde je dan een Oracle database of je regelde een workspace bij APEX.oracle.com. Dit laatste kan nog steeds, maar er is een alternatief en gedreven door nieuwsgierigheid liet ik mij verleiden tot het kiezen voor die andere optie: een Autonomous database in een Oracle Cloud Free Tier.

Tot mijn lichte verbazing had ik in korte tijd naast een APEX-omgeving ook een website tot mijn beschikking en, niet onbelangrijk, vond ik het leuk. Eerste stap was registratie voor een Oracle Cloud Free Tier. Dat was zo opgezet en in onderstaande screendump is te zien welke opties je kunt kiezen.

Oracle Cloud Get Started

Oracle Autonomous Database

Voor APEX kies je voor “Create an ATP database”. Wat parameters invullen als database naam, admin wachtwoord en na een minuut of wat is de database klaar (provisioned).

Vanuit het menu kies je voor Autonomous Transaction Processing en in het overzicht voor je nieuwe database. Je belandt meteen in een soort OEM–achtige omgeving met allerlei grafieken voor monitoring van CPU, SQL-statements, etc. Als je kiest voor de “Service Console” en “Development” kun je o.a. kiezen voor SQL Developer web-interface, en natuurlijk voor Oracle APEX. Ooit op zoek naar een dataset? Ga eens langs bij Kaggle.

Maar ja, eerlijk gezegd vond ik het tot nu toe eigenlijk niet eens zo heel opwindend en wat je mag verwachten van een groot bedrijf als Oracle. Ik wilde meer en vond de url naar mijn APEX-omgeving (https://f2whrthuh3tksiw-tpbhfirst.adb.eu-amsterdam-1.oraclecloudapps.com/ords/APEX) toch al niet zo geweldig, dus besloot ik verder te kijken. Zou het net zo makkelijk zijn een website te maken in de Oracle Cloud, waar ik dan met een link naar APEX zou kunnen verwijzen?

Virtual Cloud Network

Hiervoor moet je even de gedachtegang van de Oracle Cloud volgen: je wil een VM-instance die benaderbaar is via internet, dus je hebt een Internet Gateway nodig. Hiervoor dien je een VCN, een Virtual Cloud Network, te maken. Spijtig genoeg is dit geen “always free” optie, maar dat laat me nu niet weerhouden. Per slot van rekening krijg je bij registratie een tegoed van €250.

Vanuit de openingspagina (zie afbeelding boven) kies je “Set up a network with a wizard”. Je kiest een naam en bent bijna klaar. Virtual machineOracle heeft ervoor gekozen hier een filter op poort te zetten, die je via Security Lists en Ingress Rules kunt benaderen. Hier moet je poort 80 en poort 443 openzetten voor internetverkeer.

VM instance

De Virtual Cloud Network is nu klaar voor gebruik. De hoogste tijd voor het maken van de VM-server. Vanuit de openingspagina kies je voor “Create a VM instance”. Kies een naam en download de SSH private key. Deze heb je nodig om middels SSH in te kunnen loggen. Je kunt hier zelf een image voor het OS kiezen. Zelf koos ik voor Ubuntu i.p.v. Oracle Linux (mijn laptop heeft Ubuntu als OS). Kies bij VCN je net aangemaakte VCN. Ik vind het jammer dat deze naderhand niet te wijzigen is. Je moet dan je VM-instance weggooien en een nieuwe maken. Overigens allemaal in een handomdraai. Via Compute => Instances kom je bij je VM-instance, waar je deze kunt Starten, Stoppen, Rebooten, etc.

Webserver

Tenslotte dan (eindelijk) de webserver. Onderstaande voor een Ubuntu-image, zie link voor Oracle Linux (andere user (opc@ip-adres) en andere OS commando’s).

In een command box (terminal, of putty):

Maak connectie met je server:

ssh -i ssh-key-2020-12-03.key ubuntu@193.123.35.173

OS bijwerken:

sudo apt update
sudo apt upgrade

De Apache webserver:

sudo apt install apache2
check: curl -I 127.0.0.1

Vertel Ubuntu welke poorten open moeten:

sudo iptables -I INPUT 6 -m state –state NEW -p tcp –dport 80 -j ACCEPT
sudo iptables -I INPUT 6 -m state –state NEW -p tcp –dport 443 -j ACCEPT
sudo netfilter-persistent save

Nu kun je in je browser het ip-adres intypen en zie je, als het goed is, de pagina van Apache2 webserver. De root directory van de server is /var/www/html

Nu je de webserver en APEX werkend hebt, kun je eindelijk de url fatsoenlijk communiceren.
De url kopieer je uit de adresbalk van je browser. Je maakt een gewenste index-pagina aan en zet die op je server i.p.v. de standaard Apache-index pagina.
Dit kan met het scp-commando in een terminal (putty, bijv.).

Bestand uploaden:

scp -i ssh-key-2020-12-03.key index.html ubuntu@193.123.35.173:/var/www/html/

Bestand downloaden:

scp -i ssh-key-2020-12-03.key ubuntu@193.123.35.173:/var/www/html/index.html ~/APEX

Links