Amazon RDS - are the DBA's days numbered?

Well it seems the unstoppable rise of anything with cloud in the title continues. This week we've been looking into what Amazon's offering's could be used for when hosting Oracle with a view to possibly hosting something in it. I wanted to get some visibility of what doing this will really mean for the lowly DBA.

First up lets gets some terms defined in plain english rather than marketing speak. There seem to be 3 main offerings from cloud service companies - these are:

Iaas (infrastructure as a service) - This is just a box at the end of a network connection - from a DBA point of view you just ssh to some other server 'in the cloud' - it really appears to be no different than a box under your desk. Just think of it as a (very) remote VM

Paas (platform as a service) - This is when the supplier provides a database shell to you to which you have most (but not all) rights to do things to it. In this case for example you don't create the database via 'create database' or dbca - you use an amazon api/wizard to do it

Saas (software as a service) - This is when the supplier provides a whole working application that you just use - for oracle database there isn't really a direct offering of a database related topic - but an example from the equivalent oracle cloud would be them hosting an Oracle HR app for you and you just use the HR app without ever doing any kind of 'infrastructure' admin

Hopefully that makes that topic a little clearer.

Now in amazon speak Iaas is called EC2 (elastic computing cloud - E and then two C's - you see what they did with the name there.....) Paas is known as RDS (relational database service) and they actually offer 4 database types here - mySQL,Postgres,SQL Server and of course Oracle.

A quick screenshot of that shows all the services that can be used from Amazon is shown below - i just picked out EC2 and RDS

Still with me so far....?

We were looking into the RDS model as it just makes the whole licencing thing easier - you can just choose to use 'Amazon' Oracle licences and pay a small additional % on the costs to cover that.

So what does creating a 'database platform' look like when done through RDS?

First up we choose which db we want to create - I'm choosing Oracle (of course...)

 I then decide to use standard edition 1 (as i wanted to keep the costs down) - however it looks like from the next screen that there is a 'free' version you can use while finding your feet with the software (initially i didn't realise this was possible)  - i stuck with SE1 anyway at this point.

 The 'yes' option means you can use 'Multi-AZ deployment' (dataguard) and 'Provisioned IOPS storage' for better and more consistent IO. As I'm just playing i chose the no option.

On the next screen we then define some basics about the database

There are a few options here to choose from - including the version you want to run (various patch version of 11.2 is the only choice - so no 12c and nothing earlier), there are multiple 'sizes' to choose from - for my test i chose 'micro.AZ and IOPS i already mentioned - allocated storage i set to 10GB (the minimum). I then chose a db name and a 'master' username and password.

Now onto the final screen for some advanced settings

The network and security bits i'm ignoring for now for my test. The database options bit is slightly confusing - the dbname here is the actual oracle db name i assume (the previous screen is essentially a tnsnames alias i guess). The parameter/option groups give only one choice for SE1 - but these are essentially a default set of init.ora parameters and a choice os some preinstalled options (not directly related to licence options it would seem - there is a list here and it's stuff like apex/statspack.
Backup speaks for itself, maintenance i guess refers to Amazon applying cpu/psu patches automatically for you.

So now i click the

And i get this screen

Clicking on the green link at the top i see this in the list

Which eventually becomes

So something is created.......

expanding the details i see

The red bit is saying i don't have access to the db from anywhere - so lets fix that - i create a new security group saying the ip range (i.e. anyone anywhere) can access this

So now that is in place in theory i can connect to it from my laptop.........

Lets try that - the information i need to connect is :

The 'endpoint' - which we can find from the RDS summary screen (the really long dns name), the port (good old 1521) and the SID - which i left as the default ORCL

If we put that together we get

sqlplus admin_user_name_we_chose@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=endpoint-name)(PORT=1521))(CONNECT_DATA=(SID=ORCL)))

And it only goes and works first time......

DBA's we are screwed long term - start retraining now which we still have time........ (or get a job at a cloud provider :-))

I'll follow this up with some more details about RDS when i drag myself out of panic I'm now in......


  1. Interesting way of seeing it, but I don't understand why the DBA days should be over? I think the database cloud is the best thing next after the invention of the wheel :) Do you really think that using a public cloud provider is for everyone? Maybe for small and possible mid sized companies. There is so many issues, primary network latency. In my reality (as a DBA :) ) I see lots of private / Hybrid (oracle) clouds been installed by semi big companies and beyond. As long as there is databases there will definitely be DBAs (in some form).

    So my advice to you; Stop panicing :)