Overview-
This document describes how we can deploy webMethods products in AWS instance and how can we integrate AWS’s RDS database with webMethods products. For the hands-on part, I am showing Integration Server as an example and Oracle database as an RDS database.
Prerequisites:
- Prior knowledge on AWS services like – EC2 , RDS.
- Should know how to setup VPC, Route Table , Gateways, Subnetting, Security Groups etc.
- Prior knowledge on Docker, Dockerfile and Docker Hub.
- Prior knowledge on webMethods product installation methods, image creation method etc.
- Hands on experience on Linux command is a must.
Steps:
- Create AWS free tier account.
- Designing of the VPC.
- Create EC2 and RDS instances on different Subnets.
- Install Docker on EC2 and check the connection between EC2 instance and RDS instance.
- Building a Docker Image for webmethods products
- Create a container from the webmethods image.
- Access the Integration Server outside of the network.
Create AWS free tier account:
Goto https://portal.aws.amazon.com/billing/signup#/start and create an AWS account,
And before using any services please have a look at the free tier limits inside the Billing page.
We are selecting Mumbai Region for my AWS resources.
Designing of VPC (Virtual Private Cloud)-
Goto VPC page and create a new VPC by providing the required information.
Note – A default VPC is already configured for you by AWS, but we are using our own VPC here and I named it as MyVPC.
Please make sure you have enabled these two properties for the newly created VPC.
Create an Internet Gateway and attach it to your VPC. I am naming it as MyIGW.
Create two public subnets in two different availability zones present in Mumbai Region.
Create two public subnets in two different availability zones present in Mumbai Region.
In my case, my first RouteTable (Public1RT) is associated with PublicSubnet 1
Create EC2 and RDS instances-
Goto EC2 page and create an EC2 instance, first check for the Free tier only. I am using Ubuntu Server here.
Select your VPC and Subnet and enable the Auto-assign Public IP.
After creation, the instance will take some time to become available. You will see that a Public IP is assigned for the instance which is accessible throughout the internet. To access the instance using any third party tool like Mobaxterm, you have to use the private key provided by the AWS. Steps are easily available in the AWS documentation page.
Login to the ec2 instance and install Docker in it.
Create RDS instance-
Goto RDS Page and Click Crate Database. For this demo, we are using Oracle RDS database.
Provide your own DB value –
Select the other availability zone for the database instance.
And make it publicly accessible
After completion, the instance will take some time to become available. Once it is up and running you will get the db-host name and the accessible port of the database like this.
Note - I am assigning a public subnet to my RDS instance because I am doing a connection test from my localhost by using sql developer tool. In production scenarios , database must be kept in a private subnet and have to design the Route Table and Security Group in such a way that instances hosted inside the VPC can only access the database. Connectivity must be broken to outside network.
So now login to the EC2 instance and install sqlsever64 package and try to connect the database from the EC2 instance.
PROMPT>sqlplus64 'mydbusr@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=endpoint)(PORT=1521))(CONNECT_DATA=(SID=ORCL)))'
If you are unable to access the database, please check the security group of your EC2 instance and RDS instance. And allow the traffic from both the end.
This is my inbound traffic for the EC2 instance-
This is my inbound traffic for the RDS instance-
Now you will be able to connect to the database server.
So the design of my whole network looks like this:
Now it’s time to build an image of SoftwareAG webMethods products and push it to Docker Hub.
Building a Docker Image for webmethods products-
In my project I am using Integration Server image
Note-if you want to create your own image you can follow this techcommunity topic - http://techcommunity.softwareag.com/web/guest/pwiki/-/wiki/Main/Building+a+Docker+image+for+webMethods+products
In my case my install script, Docker file content, image content will be different.
After creating the image I am publishing it into my Docker hub repository from where I can pull it later.
Create a container from the webMethods image:
From the docker host pull the image and create a container from it with required exposed ports.
Wait for some time as Integration Server will take some time to become available.
Access the Integration Server outside of the network-
Now use the public IP and the exposed port to access the Integration Server from anywhere in the Internet. And check the JDBC Pool page where it is pointing to the correct RDS Oracle instance or not.
Once you are able to access the DB url, you can create a db pool in MWS and use the db pool to deploy your required environment.