Putting WebCenter Sites 12c on Amazon EC2
For local developer environments in the previous version of WebCenter Sites, 11g, developers had use of a Jump Start Kit (JSK) that was relatively lean and self-contained. The footprint of the JSK, while not trivial, was roughly the same as a small-ish virtual machine. With the latest release of WCS 12c (12.2.1) a JSK does not currently exist, and as a developer testing integration, or building functional pieces currently requires a complete install of Sites.
In an earlier post by Michael, he discussed the process of getting up and running with WebCenter Sites 12c step-by-step. In going through the installation myself, one of the points that was not mentioned, though reachable after a slight dig through Oracle documentation, is that the minimum required available memory is 8 gigabytes.
This is briefly hinted toward in the installation guide, https://docs.oracle.com/middleware/1221/core/WBCSI.pdf, indicating that the installing individual reference the ‘Oracle Fusion Middleware System Requirements and Specifications document’. The requirements and specification document is not included along side the installation notes, but for the curious, it is available here: http://www.oracle.com/technetwork/middleware/ias/downloads/fusion-requirements-100147.html - following through the breadcrumbs we can select our version, 12.2.1 and land on the desired System Requirements and Specifications page, http://docs.oracle.com/cd/E23104_01/sysreqs1221/sysrs.htm - the target subsection is 4.1.1, Minimum Memory Requirement.
8 gigabytes is the minimum available memory required for the complete installation of WebCenter Sites 12c - at a minimum.
This becomes a problem for anyone (me) sitting on a moderately capable system, but only having 8GB of ram total. Foolishly or optimistically, I attempted to spin up a WCS 12c virtual machine locally anyway – it did not go well; I do not recommend attempting with any less than 16GB of total local memory. For what it’s worth, Michael’s machine with 32GB of ram can run the same VM with no issues. For those of us that are not Michael, we still need a solution.
To the cloud!
With a little bit of effort, it is possible to make use of Amazon’s Elastic Compute Cloud (EC2) web service to provide a readily available and reproducible developer’s environment. Using EC2, if an installation of WCS 12c can be completed once, then a snapshot can be created of the instance at the completed phase. That snapshot of the configured Amazon machine image (AMI) can then be saved (either privately or publically) and any team member could load an instance (akin to a VM) and start work, after a handful of initializations, in less than 30 minutes!
Since Michael’s post, Installing WebCenter Sites 12c, contains all of the details on the WCS installation – let’s focus on completing the necessary steps within EC2 to fully load a 12c instance.
Grab an Operating System for the Installation
To begin, launch a new instance selecting an operating system that falls within the compatibility matrix. For WCS 12.2.1, the compatibility matrix is found here: http://www.oracle.com/technetwork/middleware/fusion-middleware/documentation/fmw-1221certmatrix-2739738.xlsx
Options include: Oracle Linux 6/7, Red Hat Enterprise 6, SUSE Linux Enterprise Server – though not officially supported, my development instance was successfully completed using Ubuntu 15.10 (wily).
Sizing the EC2 Instance
Remember that the minimum memory requirement for 12c is 8 gigabytes, so selecting the instance type should be filtered to only those with more than 8GB of memory.
Note: The WCS12c instance on EC2 will not be eligible under the ‘free tier’ and there will be an associated cost to run each instance per hour.
The leanest options with this memory constraint is either: t2.large or m4.large
Both have 2 cores and 8.0 GB of memory, but m4.large is slightly more expensive to run, having optimized for slightly better network performance including 56MB/s of optimized maximum bandwidth.
When a new instance is launched, the final prompt will be asking to either use an existing .pem file or to create a new one. The .pem file chosen will be required in order to access the instance via SSH.
If “Create a new key pair” is chosen, then this will be the only time that the given .pem file can be retrieved from Amazon. The key file will need to be saved locally and tracked, because there is no other method for this key file to be recovered from Amazon if it is lost. Without the .pem, private key file, there will be no means to SSH into the EC2 instance and proceed. Only select “Choose an existing key pair” if that key file is known to be locally available.
The instance will now take 5-10 minutes to launch and initialize.
Keep in mind that, although the instance state may indicate “running”, it may take a few additional minutes for all of the necessary services (i.e. SSH) to become available.
SSH into the newly created instance using the .pem file:
ssh -i /path/to/your-key-file.pem email@example.com
Installing VNC to make lives easier
The GUI installers for all of the components needed: Oracle XE, Fusion Middleware Infrastructure, and ultimately WebCenter Sites are far easier to configure and step through than attempting a silent install or configuring the installation by way of the command line alone.
For this reason we have a number of options, I chose to install a VNC server on the Amazon instance and a VNC viewer client on my local computer to bypass the un-ending headache that would have come from attempting to install WCS 12c via a terminal interface.
For security purposes, add a security group whitelist of IPs on your instance that are permitted to connect via the VNC port, by default the port is 5901.
There are walkthrough examples available through a cursory google search, but we can cannibalize the steps described from this StackOverflow thread: http://stackoverflow.com/questions/25657596/how-to-set-up-gui-on-amazon-ec2-ubuntu-server
Create a new login user
sudo useradd -m awsgui sudo passwd awsgui sudo usermod -aG admin awsgui
Change the current user from root (presumably) over to the newly created user
su - awsgui sudo vim /etc/ssh/sshd_config # edit line "PasswordAuthentication" to yes sudo /etc/init.d/ssh restart
Get the latest package information with latest versions and dependencies
sudo apt-get update
Instead of ubuntu-desktop, I preferred using gnome as my desktop manager
sudo apt-get install gnome-panel gnome-settings-daemon metacity nautilus
Install VNC Server
sudo apt-get install vnc4server
Modify the VNC initialization script:
Update the contents of xstartup to the following:
#!/bin/sh def export XKL_XMODMAP_DISABLE=1 unset SESSION_MANAGER unset DBUS_SESSION_BUS_ADDRESS gnome-panel & gnome-settings-daemon & metacity & nautilus & gnome-terminal &
The xstartup file now explicitly calls the components necessary to start a gnome desktop when a VNC login occurs.
Start the VNC server
The default resolution, after you log in from the VNC client may be too small – in order to directly specify the resolution of the VNC view use the –geometry parameter.
vncserver -geometry 1600x1200
Stopping the VNC server
vncserver –kill :1
A VNC viewer will be needed from the local developer desktop to connect to the VNC server, it is free to download here: https://www.realvnc.com/download/viewer/.
Once downloaded connect to the VNC server using the public amazon dns of the instance as the VNC Server name.
Note: There is a :1 at the end of the VNC Server field.
The following prompt will only ask for a password, the username field should be unavailable.
The VNC connection should now show a desktop like any other machine.
Put a Database on it
The new instance will need a database installed prior to beginning the steps for the WCS 12c installation.
There are a number of database options specified from the Certification Matrix, mentioned above, such as:
· Oracle Database 184.108.40.206+, 220.127.116.11+
· Oracle Express Edition (XE) 18.104.22.168.0
· IBM DB2
· Microsoft SQL Server (2012)
I found that using Oracle XE was sufficient, XE is faster to configure and get up and running. The 11g download for Oracle XE can be found here: http://www.oracle.com/technetwork/database/database-technologies/express-edition/downloads/index.html
Once installed, test the database installation and connection
sqlplus sys as sysdba
Enter Password: ******
Connected to: Oracle Database 11g Express Edition Release 22.214.171.124.0 – 64bit Production
If the response after logging in is: “Connected to an idle instance”, this indicates that the database has gone idle and needs to be manually started
For thoroughness, check that the database listener is correctly initialized. To avoid the potential headache of the listener being in an unknown state stop it and start it again:
And we’re off to the races
At this point, the Amazon instance is in a base VM state, a snapshot can be taken at this point before continuing on to Michael’s post instructions on installing WCS 12c.