Share This Page

ShareShareShareShare
Author: Jan van Ansem |02/14/19

My HANA Express AWS journey – and how you can ‘travel’ cheaper

Category:

SAP HANA Express can be a quick and cheap way to get hands-on experience with great new SAP technology. Setting up your personal instance in a cloud environment might be a bit daunting, both from a technical and a financial perspective. It is not always easy to know the costs upfront. You might not be familiar with some of the tools required for setting up your instance.
In this article, Jan van Ansem shares his experience with running SAP HANA Express in AWS and gives some tips how you can keep the costs down.

It could not be easier to get started

It is remarkably simple to set up your own HANA system. This website helps you to choose from the different options (on-premise or cloud, HANA database only or Server + XSA applications). I wanted to have my instance on cloud, and I definitely wanted to use XSA, so I decided for ‘SAP HANA Express Edition on Amazon Web Services (XS Advanced)’.

The introduction helpfully says it only takes twenty minutes and is aimed at beginners. Scanning the step-by-step guide, I do get intimidated as it mentions things like PuTTy, AWS Key Pairs and ‘VPC’ and ‘subnet’ settings. These are all things I am not terribly or not at all familiar with, but I decided to give it a try and see how far I would get.

I followed the step by step guide (https://developers.sap.com/tutorials/hxe-XSA-aws-setup.html) and found it surprisingly easy to create my own HANA instance. I already had an AWS account, so that saved me a bit of time. Still, despite the steps being easy, it took me about twice as much time as the suggested 20 minutes. Part of that was my hesitation to press the ‘go’ button after reviewing the pricing information. The estimate was $360/month which is far more than I was willing to pay (I was looking for something around $ 50/month).

Pricing information

Anyway, after some deliberation, I decided to go for it and hope that if I turn off the instance, the actual costs would not run up this much.

I continued with the steps as explained in the instructions. Even the steps I was not familiar with such as registering key pairs in PuTTy, or using PuTTy itself, were very straight forward as every step has a helpful screenshot.

Hello world – WebIDE

After the installation was complete, I successfully logged on to the XSA Web IDE and felt triumphant! I then immediately stopped the instance again (mindful of the costs) and went for a lunch break. After lunch, I started the server again, tried to logon to the WebIDE and failed with the dreaded messages:

hxehost

Three things to note here:

  • My IP address had changed. This happens every time you stop/start the AWS instance. This means you must change the host file on your laptop (this is all explained in the step-by-step guide). There is a way to get a fixed IP address for an instance (for a small fee) but I have not found this option yet. Please leave a comment if you know where to do this!
  • Starting the service for the WebIDE can take a long time. Depending on your AWS configuration, it can take up to 40 minutes. (I will go into some of the detail of AWS configuration in a later section of this article).
    Check the status of the WebIDE with the command following command:

    hxeadm@hxehost:/usr/sap/HXE/HDB90> xs apps | grep webide

    The result should be:
    webide STARTED 1/1 512 MB <unlimited> https://hxehost:53075

    That highlighted text “1/1” is very important. As long as this says “0/1”, the service is still starting up and the WebIDE will not be available. A “0/1” will eventually turn into a “1/1” but I don’t know if there is a way to predict how long this takes.
  • If you want to see your tenant database in the WebIDE or in HANA Studio, you have to change the use_default_route system parameter and add your IP address. This blog describes the steps: https://developers.sap.com/tutorials/hxe-gcp-eclipse-tenant-connect.html

High AWS charges, and what caused them

After a couple of days, I checked my billing dashboard and found out I was charged $14.58/day even on days when I had stopped my AWS instance. At this pace I would indeed run up a monthly bill of $360, or even more!

I had a closer look (and a bit of help from the AWS billing team) to understand what I was paying for. The instance itself (EC2 “m4.2xlarge” which is 8vCPU, 32GiB in case you are interested) is only $0.40/hour and you only pay for ‘up’ time. This is not contributing much to the overall costs, considering I had the instance only up and running for a few hours in total.

The main contributor to the costs is the storage: My instance came with two “Amazon EBS Provisioned IOPS SSD (io1) volumes”. These volumes have two cost components: One associated with size (GB) and one associated with IOPS – which is a measure for the maximum input/output per second:

Size:

$0.125 per GB-month of provisioned storage

IOPS:

$0.065 per provisioned IOPS-month

My instance was equipped with the following volumes:

Size

IOPS

Volume 1

70 GiB

3500

Volume 2

50 GiB

2500

This translates to money (monthly charges):

Size

IOPS

Volume 1

$ 8.75

$ 227.50

Volume 2

$ 6.25

$ 162.50

Ouch!

Whatever those IOPS are, they make my solution expensive! It gets worse: Because it is persistent storage volume, you can’t switch it on and off (without losing the installation). There is a workaround for this, by taking a snapshot on cheaper storage, but that is only feasible if you don’t want to use HANA for a long time, not if you want to use it several times per month.

Reducing the costs significantly

If it is the IOPS that make the AWS instance expensive, can they be reduced? The short answer is: Yes. Technically the lowest allowed value is 100. That would reduce the IOPS costs to $13/month and the total fixed costs to $28 (and $0.40/hour flexible costs for uptime). This is certainly more manageable but.... HANA doesn’t like it. The services either don’t start up at all or they start after a very long time and still the applications basically time out. After some playing around, I found that if I set both volumes to 500 IOPS the HANA application works fine (for Sandbox purposes, single user).

The good thing is that it is very easy to change the IOPS. Now, when I know I am not going to use my instance, I scale the volumes down to 100 IOPS. This takes about 30 minutes and can be done when the instance is stopped. The one thing to be aware of is that AWS only lets you change the IOPS setting once every six hours.

Enjoy your HANA Express in the cloud!

There is a real wealth of learning material available to learn ‘HANA’ and having my own HANA Express system has enabled me to do new things. There are a couple of resources in addition to the ones I already mentioned here which I would like to call out, as they have helped me on my journey in one way or another. The Open SAP course Software Development on SAP HANA (Update Q1/2019) contains a wealth of information, Lucia Subatin’s blog about updating HXE came in handy, and there is an endless supply of video’s on the HANA Academy channel on Youtube. There are of course many more good blogs, videos and tutorials, but I thought I’d share the ones I used most.

I would also like to mention once again that there are several ways to run HXE, both on cloud or on your own computer, and I chose AWS because I had an account there already. Running it on your own computer is free of charge, and Google or Microsoft cloud offerings might be cheaper. I have not checked this.

I hope my story is a tale of encouragement as well as caution: It is great fun to work with HXE but make sure you don’t run up a larger bill than you are willing to pay by choosing the right configuration and by shutting down the instance when you don’t need it.

READ

Let's Talk About Your Needs

Thank you for your submission. We'll be in touch.