Postgres Plus Cloud Database FAQs
Q. Which public cloud environments are supported?
A. The first version of Postgres Plus Cloud Database will support Amazon. Subsequent updates will provide support for Rackspace, GoGrid, and HP Cloud Services.
Q. Which Postgres versions are supported by Cloud Database?
A. Cloud Database comes ready to deploy PostgreSQL v9.1 instances as well as Postgres Plus Advanced Server v9.1 instances.
Q. What's the difference between PostgreSQL v9.x and Postgres Plus Advanced Server v9.x?
A. PostgreSQL is the community version of PostgreSQL and is distributed by EnterpriseDB. Postgres Plus Advanced Server is an EnterpriseDB commercial product that adds Oracle features, Oracle database compatibility, many performance features (including a high speed data loader, InfiniteCache, Index Advisor, DynaTune, SQL wait-state statistics), built-in function packages, a software update monitor, enterprise monitoring tools, a SQL Performance Profiler, SQL Injection attack protection, a database migration toolkit, and heterogeneous replication with Oracle and SQL Server. View an in-depth feature comparison between PostgreSQL and Postgres Plus Advanced Server.
Q. What internet browsers does the Postgres Plus Cloud Database console support?
A. Apple Safari v4/5, Mozilla Firefox v3/4/5, Google Chrome, Microsoft Internet Explorer v6/7/8/9, and Opera v10/11.
Q. Do I need to purchase a database subscription to use Cloud Database?
A. No. You will purchase the right to use Postgres Plus Cloud Database, which allows you to setup and use PostgreSQL or Postgres Plus Advanced Server clusters. You pay monthly usage fees for all the server instances you create. For pricing see: Cloud Database Pricing
Q. Can I use my existing database subscription to use Cloud Database?
A. No. All fees for Cloud Database are based on your Amazon usage fees.
Q. Can EnterpriseDB help me estimate the costs and pricing for my application?
A. We don't provide examples of pricing because there are so many variables affecting cost in database applications, each customers situation is so different, and there are many components to a monthly bill. However, there are a few methods available to you for calculating a rough estimate yourself for your usage.
The first method is by pricing out the key cost parameters as they are detailed at: http://www.enterprisedb.com/cloud-database/pricing
Note that these prices are for the US East (Northern Virginia) Region (for other regions visit the purchase URL at Amazon at: https://aws-portal.amazon.com/gp/aws/user/subscription/index.html?offeringCode=C7962C01 ). For each parameter guess-timate the quantities and do the math based on the pricing for that parameter. Then add up your estimated cost for all the parameters. This should give you a good approximation.
For example, for the 'Amazon EC2 On-Demand Instances' portion of your monthly Amazon bill, for each cluster you setup you will need to pick a Database Instance Class and decide how many total servers (1 master plus n read replicas) will run in the cluster. Then multiply the number of servers times the hourly rate for that class times the average number of hours in a month.
So for a 3 server cluster based on a Small DB Instance the monthly charge would be: 3 servers x 0.11 per hour x 729.6 average hours in a month = $241 Then do a similar exercise for the Amazon EC2 Data Transfer Rate, Elastic Block Storage, S3 Store Fees and total everything up.
The second method is to use Amazon's cost estimator at: http://calculator.s3.amazonaws.com/calc5.html. Keep in mind that this estimator does not include EnterpriseDB's fees built into the cost of the Amazon EC2 On-Demand Instances Running Linux as noted on our pricing page: http://www.enterprisedb.com/cloud-database/pricing
Finally, if your application is mission critical, large and/or complex, and your staff is limited in time or knowledge, EntepriseDB offers a Cloud Database Consulting engagement on a professional services basis. In this effort we work with your staff over a few days to evaluate and prototype migrating your database tier from an on-premise or existing hosted environment to a secure and elastic cloud deployment on Postgres Plus Cloud Database. Email our Sales department for details or call +1 781-357-3390 or 1-877-377-4352 (US Only).
Q. Who owns the data that I store at Amazon under Cloud Database?
A. The user does. The EnterpriseDB software and database storage are on Amazon's infrastructure under each user's own account - the user owns the data. EnterpriseDB owns the Postgres Plus Advanced Server software and the Cloud Database software. As long as the user pays their Amazon bills (which includes both Amazon and EnterpriseDB fees) for the service, they are entitled to continue using the software and accessing their data. Should the user stop paying Amazon, they will lose access to the EnterpriseDB software and presumably the Amazon stored data as well. For full details check the Amazon agreements associated with your Amazon account.
Q. In the future, if your Cloud Database service is no longer available on Amazon, what will happen to the data that is residing in my database?
A. The data is stored under each user's account. Assuming the EnterpriseDB software is no longer available on AWS, the clusters would cease operation. However, the storage associated with the user's account would remain and as long as the user continues to pay their Amazon bill they maintain ownership and access to the data. To see and access your data, you would simply sign into your AWS account, go the AWS Management Console, click the EC2 tab, then click Volumes under the Elastic Block Store heading in the left hand navigation pane.
Q. How do I find or access my Cloud Database Activation Key?
A. If you do not have an Activation Key handy, you can generate a new key at any time by visiting the following web page: http://www.amazon.com/dp-activate
Q. How do I get usage or billing information, change my payment methods or cancel my Amazon purchase to Postgres Plus Cloud Database?
A. You can manage your Cloud Database subscription with a visit the following web page: http://www.amazon.com/dp-applications . For billing inquiries, email: firstname.lastname@example.org Note: After cancellation you will no longer have access to the Cloud Database console, which will be terminated. However, any clusters running and any backups existing at the time you cancel will still be active and available through your Amazon AWS console.
Q. Can I register two different users to manage the same clusters?
A.You can register two user ids (emails) that both use the same Amazon account Access and Secret keys. However, the two users cannot see or administer the same cluster. Clusters are associated with a single registered user. So a cluster created by user1 is only visible and manageable by user1 and not visible or manageable to user2. However, since both users are using the same Amazon Access and Secret keys, all charges incurred for all clusters will be on the same account/bill.
Q. How do I use Cloud Database for my private cloud or for use on bare metal?
A. For both cases, Cloud Database will need to be installed internally on your systems. However, those versions are not currently ready or available.
Q. Which private clouds are supported?
A. Private cloud support in Postgres Plus Cloud Database will be delivered with tools like Eucalyptus. The user can have either the open source version supporting KVM and Xen, or the enterprise edition which adds support for VMWare. When Cloud Database installs, it will register the Postgres images with Eucalyptus and be ready for use.
Q. What if I have more questions about Cloud Database?
A. Contact the EnterpriseDB Sales team: By email at: email@example.com On the website at: http://www.enterprisedb.com/general-inquiry-form By phone at: +1 781-357-3390 or 1-877-377-4352 (US Only).
Q. Will my database perform better in your cloud database or do I have to make special changes to my database or application clients to perform better?
A.Postgres Plus Cloud Database is architected to automatically scale up storage and read replicas in response to increasing loads in a high availability cluster that literally takes only minutes to setup from a point and click interface. However, a database with an inefficient schema, uneconomical queries, poorly written functions, disorganized client code (and more), will not automatically perform better simply because it is in an elastic cloud environment. It may just postpone an inevitable re-write for portions or the entire database architecture while incurring unnecessary costs in the cloud.
To assist organizations who are thinking of moving to the cloud who may have doubts about the efficiency of their database systems, we offer our most popular service called an Architectural Health Check. This service helps put your database in its most efficient posture so that when you do move to the cloud, you can be assured of getting the most out of your new environment. The last thing you want to do is move a poorly performing database into a new environment and be disappointed at not realizing the benefits it offers.
Q. Does Cloud Database support PostGIS?
A. Yes. The most effective way to install PostGIS so that it persists during scale up, failover, and restore operations, is immediately after creating a single node cluster. Then scale your cluster up to the desired number of servers.
Q. Does Cloud Database create databases automatically?
A. Yes, it does. Cloud Database will create replicas within a Cloud Database cluster automatically according to thresholds you set to provide more horsepower to handle read loads (horizontal scaling). When a Cloud Database cluster is first created it has a single master server plus the number of read replicas you specify. The master hosts a single Postgres 'cluster' which can contain many databases. To create these databases automatically you would need to use psql scripts as follows:
- Create shell scripts with the commands to create a new database.
- Using an ssh connection, copy the scripts to the Master under /opt/PostgresPlus/CloudDB
- Call the scripts as needed via an ssh connection to the master from your application
- New databases will be created and serviced by the master Postgres instance
- The new databases will also be replicated to any replicas in the cluster and participate in operations such as scale up, failover, and restore
Alternatively, you could create a cluster using Postgres Plus Advanced Server v9.1 and use the Virtual Private Database feature. This allows you to wall off different users data with centrally managed policies within a single database eliminating the need to create additional databases. This is especially useful when the database schema is identical for all databases but each user/customer must only access their own data and no one elses.
Q. Do I have my own instance of the Cloud Database console or am I sharing it with others?
A. In the EnterpriseDB DBaaS hosting option, you will be sharing a common Console Manager with other customers. However, each running cluster receives its own cluster manager and it runs under your Amazon account.
Q. What operating system is used for my instances?
A. CentOS 6.0 64 bit.
Q. What type of network or shared file system is used for my instances?
A. The Amazon public cloud implementation is not based on a network or shared file system. It is based on LVM2 and ext3.
Q. Can I create and run independent instances of PostgreSQL for different applications with Cloud Database?
Q. How is High Availability achieved in Cloud Database?
A. A JGroups cluster manager and node agent manage server health monitoring and automatic fail-over and are setup automatically for you when you create additional replicas. pgpool-II is used to handle connection pooling allow more efficient use of client connections. Postgres' binary streaming replication is used to keep read replicas in synch with the master server ensuring READ loads are serviced. Auto-scaling maintains data availability under high or spikey loads by adding more replicas to the cluster as needed.
Q. What else is pg-pool used for?
A. pg-pool is used for connection pooling and SQL routing. Connection pooling makes more efficient use of connection management to the database server and SQL routing sends write requests to the master and read requests to the replica. It also allows you to white and black list SQL commands to do things like send certain SELECT statements containing database write functions to the master. Replication is handled entirely by Postgres' binary streaming replication.
Q. How is high availability handled for the Cloud Database Manager itself on Amazon?
A. There are a couple of ways to handle a crash of the Cloud Database instance. When you first create your Cloud Database instance in Amazon, you can choose to provide the instance with Termination Protection. This will automatically spin up another instance of the Cloud Database Console/Cluster Manager. Alternatively you can manually create another Cloud Database Console/Cluster Manager from the AWS console. In both cases: a) your database cluster(s) will continue running, and b) the new Console/Cluster Manager will find your running clusters and resume managing them.
Q. Do the instances in my cluster run in different availability zones for better high availability?
A. Yes, each instance runs in a different availability zone. On AWS you can check your Amazon console to see the specific zones each instance in a cluster is running in.
Q. Does Cloud Database make use of Amazon's Elastic IPs?
A. Yes, if the Master fails over to a new VM instance, the load balancing IP address will remain the same so that your applications require no change in connection strings.
Q. On Amazon EC2, can my client or application server (also in Amazon) use the internal private IP of the cluster instead of the public DNS name in order to save data transfer charges?
A.Within an Amazon region, if your Amazon hosted client or application server uses the public DNS, Amazon will smartly use the internal private IP even across availability zones providing you savings in data transfer charges.
Q. Is pg-pool a requirement of using Cloud Database?
A. Access through the pg-pool load balancing port is optional however if your cluster scales our additional replicas you will have to manually send application requests to the different servers. Also, you can always connect directly to your database instances.
Q. How are SELECT statements with functions that modify data load balanced?
A. All INSERT-UPDATE-DELETE statements are sent to the master for processing. All SELECT statements get spread across the entire cluster. However, the load balancer does allow you to declare a list of functions, which, if they appear in any SELECT statement, cause that statement to executed on the master. This prevents any SELECT statements that modify data from being sent to a read-replica. You can specify lists of functions using the parameters 'black_function_list and white_function_list' in the configuration panel for a cluster.
Q. How much downtime occurs during fail-over?
A. If the master fails over there will be a short period of downtime for writes as a new master is created and attached to the old master's data preventing any data loss. The time period is dependent on the size of the machine being created, its region, and performance of the Amazon infrastructure.
Q. How are replicas created in Cloud Database?
A. Replicas are kept up to date with the master server using Postgres' built-in streaming replication in Hot Standby mode.
Q. Is streaming replication synchronous?
A. No it is asynchronous, however PostgreSQL's streaming replication is fast enough that it can be as close to the master database as a single transaction depending on configuration settings, load and other factors affecting performance.
Q. How much data loss occurs in a fail-over situation?
A. If the master fails, all completed transactions are saved as the data is attached to a new master instance. If a replica fails, its replacement may be behind the master initially, but it will catch up as streaming replication resumes.
Q. Do the master, replicas, and console app use public or private IP addresses to communicate?
A. Private with certificate based communication.
Q. Can I manage the Postgres configuration (postgresql.conf) parameters using Cloud Database?
A. Yes using the Configurations panel in the Cloud Database console Clusters tab. You can also create multiple parameter groups or configuration profiles that can be used for different clusters you setup.
Q. How do I configure access permissions (hba.conf) to the cluster?
A. Currently, these have to be managed manually on each server using ssh.
Q. Can I manage the pgpool-II configuration parameters using Cloud Database?
A. Yes using the Configurations pane on the Clusters tab on the Cloud Database console.
Q. How are backups made in Cloud Database?
A. Backups are made by creating an EBS backed snapshot during a timeslot you specify when you create a cluster (e.g. between 2:00 and 4:00 am). You can also specify how many rolling daily backups to retain (e.g. the last 3 days). This is all handled for you automatically.
Q. Does Cloud Database support point in time recovery (PITR)?
A.PITR is not currently supported.
Q. What kind of scaling is available in Cloud Database?
A. You can automatically scale the storage capacity and connections according to levels pre-set by you. For example, if you set a 75% storage threshold, then when the threshold value is exceeded, the Postgres Plus Cloud Database will automatically allocate, deploy and attach additional storage for you, and record the events in the Event viewer.
Q. Does auto-scaling scale down with a reduction in demand?
A. Not at this time, it must be handled manually.
Q. What is the performance difference versus running on normal hardware?
A. There are too many variables and use cases to make a realistic comparison. Suffice to say that in Amazon's public service, one has access to virtual machines as large as 64 CPUs and 128 GB memory, which should be more than enough to satisfy most applications.
Q. What is the largest database I can use?
A. Amazon supports a 1TB data space which can be utilized by the Cloud Database PostgreSQL instances.
Q. What kind of monitoring does Cloud Database provide?
A. Cloud Database provides charts displaying CPU Load and Storage Space metrics. It also has an Event viewer for knowing when instances join or leave a cluster, error events, and other status indicators. Finally, you can use Postgres Enterprise Manager to monitor your instances in much greater detail along with alerting and other features such as capacity management.
Q. Can Postgres Enterprise Manager agents monitor Cloud Database instances?
A. Yes, PEM can monitor PostgreSQL and Postgres Plus Advanced Server instances on public and private clouds or regular bare metal installations in the data center performed by Cloud Database.
Q. Can I use my existing Postgres based tools against Postgres Plus Cloud Database instances?
Q. Where can I find documentation for Cloud Database?
A. You can download Cloud Database documentation here. The Cloud Database Console main dashboard also has a bookshelf of tutorials covering various tasks.
Q. How does Cloud Database help developers?
A. Cloud Database allows developers to easily and quickly setup robust PostgreSQL environments complete with automated backups, high availability with auto-failover, replication within the cluster, load balancing for optimizing the entire cluster, connection pooling to handle more users, and auto-scaling for spikey demand loads. Simply click a few buttons, copy the connection URL to your cluster and your database is all set. This allows you to focus your time on your application and not database administration issues.
Q. How do I create my first cluster?
A. Log into the Cloud Database console and click the Launch DB Cluster button on the main dashboard. Specify your cluster details in Step 1, then your Backup preferences in Step 2 and click the launch button.
Q. My first instance is up and running, how do I connect my application or a client like pgAdmin to it?
A. Select the Clusters tab and click the server instance you want to connect to. Open the Details pane below the Cluster list and you will see the DNS name table to use in your client connections. Use the LBPort to connect through the load balancer and use the DBPort to connect directly to the server by-passing the load balancer.
Q. Can I connect my Java application running in Tomcat and hosted on Amazon EC2 to a Cloud Database cluster?
A.Yes. EC2 to EC2 connectivity is supported and you connect using the standard methods you use today by constructing a JDBC URL composed of the Amazon DNS name and port for the running database cluster. The DNS name and port are supplied to you immediately after you create a cluster.
Q. How do I scale my cluster up adding another replica?
A. Log into the Cloud Database console and click the Clusters tab. Select the Cluster you wish to scale and click the Scale Up icon in the left hand navigation pane. In Step 1 specify how many replicas and storage to add and in Step 2 press the Scale Up button.
Q. How do I create a sandbox environment using a copy of production data?
A. Log into the Cloud Database console and click the Backups tab. Click the desired backup from the list and click the Recover icon. Give the new instance a name and assign it a Server class and click Recover. That's it!