PMsquare

View Original

AWS Databases for IBM Cognos Analytics

The Cognos Backend

Deploying Cognos on AWS immediately raises questions around the Cognos databases. What database type should we use? What service should we use to host them? Let’s dive in and hopefully, I can help you get a much clearer sense of what is best for your organization.

What Database Should You Use?

Existing Cognos deployments will have already answered the question of what type of database to use. Most likely, those environments are deployed on Microsoft SQL Server, Oracle, or DB2. Companies looking to deploy Cognos for the first time will still need to make a decision on the database type to choose. The best way to answer this question is actually simple. Use what you know. If you know MS SQL Server, deploy Cognos with MS SQL Server. If you know Oracle, deploy Cognos with Oracle. This will make provisioning, maintaining, and administering the databases much easier in the long term.

Now that you know what type of database you want to use, you need to decide what AWS service to use to host them. There are a few options for deploying relational databases on AWS. Let’s explore those options looking at their pros, cons, and which would be the best fit for your business.

Relational Databases on AWS

The backend Cognos databases (Content Store, Audit Database, and Notification Store) require a relational database and support one of the following database types: Microsoft SQL Server, Oracle, DB2, or Informix. When deploying on AWS, this leaves you choosing between Amazon EC2 or Amazon RDS to host these databases. Let’s walk through a short introduction to each service before getting into the details.

Amazon EC2 (Elastic Cloud Compute) allows you to provision on-demand servers (instances) in the cloud. These instances can be resized and scaled with little friction. EC2 also supports running databases on these instances. Running databases on EC2 will be very similar to the on-prem experience. Administrators will RDP into the instances to install, configure, and maintain the databases.

Amazon RDS (Relational Database Service) is a managed service that allows you to quickly provision a variety of database types in the cloud. Because it’s a managed service, AWS manages the backups, patching, failure detection, and recovery of the database. This is a fantastic option for teams that need a database but don’t want to deal with the time-consuming administration work of managing the database.

Amazon EC2 or RDS?

Deploying Cognos with either MS SQL Server or Oracle gives the flexibility of running those databases on either EC2 or RDS. The primary decision points you will be weighing will be between control and ease of use.

Deploying on EC2 gives you full control of the databases. You, or your DBAs, will be responsible for configuring, tuning, backing up, patching, and upgrading the database. This can be great for companies with specific requirements and workflows around database management. EC2 will allow those processes to map on to cloud resources just as they were implemented in a traditional data center.

Depending on your team’s skill set, the downside to running a database on EC2 is that you will be responsible for configuring, tuning, backing up, patching, and upgrading the database. That’s where RDS comes in. RDS offloads all those traditional administration tasks to AWS. This will be ideal for most Cognos teams. Cognos teams are experts at managing a Cognos environment. They are not experts at administering and maintaining a database. RDS also allows the database to be Multi-AZ providing very fast failover to a standby database should the primary database fail. So, a fully configured database with backup and maintenance windows defined, and built-in redundancy can be provisioned within minutes. The simplicity of RDS is why we usually recommend it as the preferred option for new deployments on AWS.

DB2 and Informix

The choice between EC2 and RDS will be easy for those of you wanting to deploy using DB2 or Informix. If you want to use DB2 or Informix you will have to deploy on Amazon EC2. The only database types that both Cognos and RDS support is MS SQL Server and Oracle. This means you will need to provision EC2 instances and install and configure DB2 or Informix on those instances.

Redundancy with Amazon RDS

The redundancy that’s available with RDS is a valuable benefit that can be leveraged from the service. RDS databases can be created as a Multi-AZ deployment. For those unfamiliar with AWS terminology, an AZ (availability zone) is one or more data centers in a region. This means the database is synchronously replicated to multiple, physical locations just by enabling the feature. Should the primary database fail, DNS redirection is used to route requests to the standby database. For those interested, feel free to nerd out on this AWS blog post detailing how Muli-AZ RDS works behind the scenes.

Our internal testing shows that a Cognos environment deployed on top of a Multi-AZ RDS configuration can take about a minute (about 1:10 to be exact) to failover to a standby database. During that time, Cognos stays up and is available. We did notice some “strangeness” while the failover executed. There were occasional errors thrown when navigating the Cognos portal. Users My Content would briefly show as empty. Those issues were quickly resolved by just refreshing the browser. Users actively editing a report or dashboard would be more likely to receive an error. There was also some loss of work depending on the last time they saved their content.

The real takeaway from this is Cognos never went down. Every Cognos administrator knows that losing the Content Store would be catastrophic. It would set off panic throughout the company and require a massive effort from multiple teams to resolve. A Multi-AZ RDS configuration allowed Cognos to recover from this type of event in about a minute with little more than a few hiccups along the way. If high availability is a key requirement for your business, we strongly recommend running Cognos with an RDS Multi-AZ deployment.

However, we also understand that seeing is believing. You can test the failover capabilities of RDS Multi-AZ by following this guide.

IBM Support

You may be thinking, “RDS sounds great! But will IBM support it?” The answer is ‘sort of’. IBM will not support RDS as a platform. That’s because IBM supports database engines, not deployment platforms. RDS is the platform that the database engine runs on top of and is invisible to Cognos. If you are running a supported database engine on RDS you can expect to receive the same level of support as you receive now. The same support rules will apply to RDS as they do to traditional on-prem databases. IBM support will stop assisting if their analysis points to an issue with the database’s infrastructure or software. Just as if it were on-prem deployment, they would refer you to your data center support team or the database vendor to resolve those specific issues.

Conclusion

The choice between EC2 or RDS to run your databases ultimately comes down to the requirements of the project and the policies of your company. Both services have their benefits and trade-offs. Ultimately, there is no truly wrong answer. You just need to use the service that fits your needs the best. For most Cognos shops, we recommend using RDS because of its ability to offload the general DBA tasks to AWS. This frees you and your team up to manage Cognos, and not databases.

Cognos to AWS Blog Series

Join us here for more updates to this series to address questions and discuss patterns to consider when migrating Cognos to AWS. If you need help sooner, reach out to us now! We’d love to have a conversation with you about your AWS migration journey.

Next Steps

We hope you found this article informative. Be sure to subscribe to our newsletter for data and analytics news, updates, and insights delivered directly to your inbox.

If you have any questions or would like PMsquare to provide guidance and support for your analytics solution, contact us today.

See this gallery in the original post