DB role in a WSO2 Identity Server Clustered Deployment - wso2

I want to set up a cluster of WSO2 Identity Servers for HA. From the documentation I understand that there can be two IS nodes which are load-balanced either through ELB or Apache.
In my case the user-store will be an Active Directory server.
My question is around the database requirements for the cluster. Given that the user store is AD, what kind of a database setup do I need? Do I need a database cluster such as MySQL (which makes sense for HA), and what would it be used for?

Your user store is AD and database can be anything. There is no any special recommendation for databases. You can use any SQL database but WSO2IS has been only tested with following database types.H2, DB2, MsSQL, MySQL, MySQL Cluster, Oracle, Oracle RAC,PostgreSQL, Informix.sql You can use any of these. But embedded H2 is not production recommended. Also database does not depend on the user store that you are using. You can use any type of user store (JDBC,AD,LDAP) and any type of database independently. As you have mentioned, it would be better, if you can have database level clustering to achieve the HA. If you are using MySQL, you can probably use the MySQL cluster, more detail would be available in the WSO2 article as well

Related

Is it possible to connect two RoR 5 websites to one amazon RDS DB with monthly costs

As stated above I want to configure two webapps hosted on heroku w/ one amazon RDS DB instance, e. g. via table_prefixes or database.yml.
Can somebody please give advice on how to do that and if it is possible at all?
Thanks!
you can create as many databases as you like on one one db.t2.micro RDS instance . just "CREATE DATABASE blah" as the admin user, create a new user for the new database and grant access. RDS doesn't care if you use a database for one app or for 1000 apps. You may run out of connection slots or other resources, but from a data perspective, these applications can be completely isolated through permissions and still share a single RDS server.

Migrating on premise web application to AWS ec2

Can some one please advise the steps required for migrating a web application which is currently running on tomcat server at onpremise to AWS ec2 instance. I understand this is not a straight forward and requires some detailed process.
The code is wrriten in Java and database used as oracle.
So it would be helpfull if someone can suggest me any relavent document or any website which gives some demo to refer me and proceed with this scenario.
If it's a personal project then I would recommend Lightsail as the simplest way to deploy existing Java application.
For a database a small instance of MySQL or if relational database is not needed then a document database like DynamoDB. https://aws.amazon.com/products/databases/?nc2=h_m1
There are multiple choices one how to migrate a Java application to AWS.
You could potentially use existing AWS services like:
Lightsail - https://aws.amazon.com/lightsail/
Beanstock - https://aws.amazon.com/elasticbeanstalk/
or
EC2 instance and install Tomcat manually
Use ECS with Docker https://aws.amazon.com/getting-started/tutorials/deploy-docker-containers/?nc2=type_a
As for Database solution Oracle is an option but quite expensive one.
When moving to AWS it's better to use one of the RDS managed databases like MySQL, Postgress or more expensive like Aurora.
In order to propose an architecture some details would be needed on predicted load, the size of the application and volume of data. Is the product regional or global, are there any additional issues that need to be addressed while moving to a cloud (performance, availability etc), how users are authenticated (are any other services needed).

Does an AWS Lightsail database instance support multiple databases?

I am trying to understand exactly what a "Database" is within Amazon Lightsail. I've attempted to research this as much as possible through Google and various forums, but information on this particular issue seems limited.
My impression (and hope) is that a "Database" as far as Lightsail is concerned is actually a database instance, or in other words a virtual machine running a database server, that once created is able to be used to hold multiple databases.
I tried to test this theory by creating a Database instance on lightsail, then connecting to it using MySQL Workbench, and running a "CREATE test_db" query. From what I could tell, this seemed to work, but it was the first time I'd used Workbench, so was not entirely convinced I'd created a database within my instance.
Can anyone please offer some clarity on this matter?
A Lightsail database instance is a MySQL server running in Amazon RDS. You have exclusive use of this server -- is isn't shared. You can create as many databases ("schemas") on it as you want using standard queries.

Amazon RDS - Creating/cloning multiple databases in a single rds instance

We are developing a Java/j2ee application which uses RDS.
We want to create a separate database per customer on a single RDS instance.
We want to create a template SQL schema with tables and some metadata.
When the new customer is created we want to clone the template schema and create a separate db for that customer.
Can you let me know if this is possible using AWS SDK APIs? Or if there is any other way?
Regard,
Dattatray.
The general design for handling individual databases for multi-tenant applications would be like
Have a separate DB for identification / allocation of specific database to a particular client [ Meta Data Database ]
During a launch / on-boarding of a new client, you need to fire the SQL snippet -> with a unique Client's DB name and have this information updated in the Meta Data Database
You can think of dynamically updating the SQL snippet DB NAME and then firing the Schema for the new client or use ORM like Hibernate to create the specified Database elements.
Amazon RDS doesn't impose any restrictions on number of Databases you can created in a single instance, so you need to worry about the upper limit. You do not need to use any of the AWS SDKs or APIs you just need to concentrate on the App and Connection Strings.
Extract from AWS FAQs for RDS :
Q: How many databases or schemas can I run within a DB Instance?
RDS for MySQL: No limit imposed by software
RDS for Oracle: 1 database per instance; no limit on number of schemas per database imposed by
software
RDS for SQL Server: 30 databases per instance
RDS for PostgreSQL: No limit imposed by software
You wouldn't need to use any SDK for RDS, as you are not really modifying the instance in any way. The instance will always be running, and you just want to create new database schemas on that instance. This would be done using the SQL connector library you are using in your Java code (or could be scripted in another language such as Perl or Python for example).

What is the difference of SQL Server on EC2 and DBS on Amazon Web Services?

I have not used AWS yet and want to get to kinda assessment about its data center options.
My guess is that you can have a MySQL or SQL Server on an EC2 virtual box.
If DBS is Amazon data specific service, what are the differences between these two approaches:
Using DBS vs DB on EC2?
Check out this related question first.
According to Amazon's documentation:
Connect to your DB Instance using your favorite database tool or programming language. Since you have direct access to a native MySQL, Oracle or SQL Server database engine, most tools designed for these engines should work unmodified with Amazon RDS.
Basically, going the EC2 route requires a lot more maintenance in the long run. If you're using Amazon's services, and you need any one of those kind of databases, you might as well use RDS.