Relocating Edge Analytic Database (PostgreSQL) to Amazon RDS

Not applicable

Hi Everyone

As you know, one of the main Edge components is Analytic POD (including PostgreSQL Database and Postgres Server), which at the moment lives on EC2 and required high IOPS to handle its tasks.

We are building our Edge on AWS (similar to 13 hosts topology) and trying to take advantage of Amazon Services including EC2 and RDS services. Our platform is multi-AZ / active-active (plan to go three AZ in the future), therefore we need to handle database replication cross AZ very well designed and implemented. At the moment Amazon PostgreSQL RDS service can handle replication, database backup and recovery etc.

[ Step 1 - Creating Database in AWS]

I have created an RDS database for apigee analytic the same way as the installer script doing for installing component "apigee-postgresql".

analytic-database.png

apigee-sql.txt

[ Step 2 - Modifying installer to install only "edge-postgres-serve"]

Edited the /opt/apigee-setup/bin/setup.sh and find the line related to "apigee-postgresql" and commented out.

/opt/apigee-setup/bin/setup.sh


if ((INST_APIGEE_PS)); then
	REGION_validate "$REGION" || exit 1

        # Commented our as I am using AWS RDS as a Database Service
	# setup_component "apigee-postgresql"

	setup_component "edge-postgres-serve”
fi

[ Step 3- Calling installer to install "edge-postgres-serve" component]

After editing the setup.sh file, I tried to configure the "" using the following profile:

/opt/apigee-setup/bin/setup.sh -p ps -f /tmp/dc01-infrustructure.cfg

There are two key points here

  • As I modified the setup.sh the installer will not try to install the database on the local EC2 machine.
  • The installer failed to populate the database tables (22 tables required to store the analytic information) as it expect to see the database on the localhost.

My observation was , the setup will wait for a couple of mins and then displays the success message.

However, when the service starts to run and bring the postgres server, the following error message will appear in the log.

postgres.jpg

My questions is how can I tell my installer what is my database IP address. I know that the postgres server will communicate with zookeeper to obtain the analytic server information.

Is there anyway magic way to tell the installer, or after installation to configure the server to look for database server IP in a config file ?

I appreciate if you have a look into my issue, and I believe broad range of consumers looking for using AWS services as much as possible.

1 6 1,106
6 REPLIES 6

This is not a supported option at the moment. Current architecture have an aggregator running on the postgres server node itself. Moving aggregator out of the PG server is an architecture change.

@Baba Krishnankutty Hi, can you please confirm if the above statement is still valid with the apigee edge 4.17.09.

Underlying architecture haven't changed in 4.17.09

Thanks a lot @Baba Krishnankutty that helps!

Checking to see if this supported in 4.19.01?

Thank you!

Nope. No change. Same restriction.

But check the beta Hybrid announcement. You may be able to use cloud-based Analytics (not AWS RDS) with an on-premises gateway.