· Jan 18, 2019 2m read

Free IRIS Community Edition in AWS

Good News!! You can use now the Free InterSystems IRIS Community Edition in the AWS Cloud


It's very common that people new in InterSystems IRIS want to start to work in a personal project in a full free environment. If you are one of this, Good News!! You can use now the Free InterSystems IRIS Community Edition in the AWS Cloud.

It is pretty easy to create a new EC2 instance from InterSystems IRIS Community Edition in AWS Marketplace.

After that you have to launch your instance and then you'll can access it using ssh like this:

(note: be sure you have 'chmod 400' at pem file)

➜ ssh -i /path/mykey.pem 
Welcome to InterSystems IRIS Community Edition.
This instance is currently running InterSystems IRIS Community 
in a Docker container named 'try-iris'.
You will need the following information to connect your IDE or
application to your 'try-iris' container.
IP: x.x.x.x
Superserver Port: 51773
Web Server Port: 52773
JDBC connection string: jdbc:IRIS://x.x.x.x:51773/USER
Management Portal URL: http://x.x.x.x:52773/csp/sys/UtilHome.csp
Please start by resetting your password: $iris password
For help: $iris help
Last login: Wed Jan  2 20:55:27 2019 from

After that you should change the password:

ubuntu@ip-x-x-x-x:~$ iris password
You are about to change the password for the IRIS instance.
The default credentials are the following.
Username: _SYSTEM
Password: SYS
These credentials are expired and you will be prompted to change them
if you try to log in manually.
This utility will change the default password for all default accounts
and can only be run once. After that you will be responsible for the 
security of the IRIS instance.
The default system users with all permissions are _SYSTEM and SuperUser
Other predefined users are Admin and CSPSystem
Learn more here
Change the password? [Y/N] Y 

New Password: 
Confirm Password: 
Password successfully reset.
Learn more with a QuickStart:
Enter the IRIS container at a bash shell:
  $sudo docker exec -it try-iris bash
For more options type:
  $iris help

The free license let you do almost everything, these are the limits from the license key:

Discussion (15)4
Log in or sign up to continue

I've spent quite a number of hours trying to figure out a way to modify the IRIS Container within the AWS Community version so that I can get it to run QEWD.js.  I've been able to build a new Container derived from the one provided in the AWS EC2  instance into which I install Node.js and the QEWD modules, etc. 

However, using the --after parameter in the docker run command, it looks like iris-main is blocking something - the QEWD Node.js startup code appears to just hang, I think because console.log is unable to write to STDOUT - presumably because of something iris-main is doing.  It looks like running iris-main and Node.js together doesn't want to work

I've hit a brick wall with this now and don't know if there's any way to get QEWD working in this AWS EC2 instance, which is disappointing

OK some further digging reveals that the main problem is that QEWD is freezing at the point where it tries to start the Node.js Express web server. 

I'd guess the reason is either:

- something to do with the way Express works internally that clashes with iris-main; or

- port 8080 (which is the port I'm telling Express to listen on) being unavailable because of something IRIS has done

Anyone have any clues?

There's a second problem which is that the Node.js setInterval() function appears to freeze iris-main - something that is pretty critical to have working in QEWD

OK Two steps forward, one step back.

When I try to connect to IRIS via the iris.node file and use the function (from within the container) I get this error

{"ErrorMessage":"Authentication: IRISSecureStart() : Access Denied : Check the audit log for the real authentication error (-15)\n","ErrorCode":-15,"ok":0}

Any ideas what's causing it and how to fix this?


OK I seem to be on my own sorting this out...but I seem to have figured it all out.  I had to first adapt the changePassword utility to work on my derived Container, and once that was done I could use the System Management Portal - which showed me that the Callin Interface wasn't enabled.  Once I enabled that, QEWD burst into life :-)

So a question (if anyone out there is listening) - is there a configuration setting somewhere to enable the callin interface automatically when you start up the container, ie to avoid the need to manually enable it via the System Management Portal?

Excellent work Rob, thank you for the hard integration work!

I got my IRIS container running on AWS in ... less than 15 mins (I used a free tier t2.micro instance). Of which 2/3 of the time was learning to know the AWS website! wink

Let's start developing now the latest React/Vue.js/... apps with QEWD.js/Node.js back-end running on IRIS ... which is very easy now because the complete back-end is in a Docker container to try out.

And you have the choice at the front-end: communicating with the back-end using WebSockets or REST endpoints using e.g. the react-qewd or vue-qewd module ... all abstracted for you using very easy methods like this.$qewd.send() (Vue.js with WebSockets) or (using REST calls).