Knowledge Base/Engine Yard Cloud Documentation/Manage your Environment

Make a High Availability Environment

Engine Yard
posted this on February 16, 2012 10:02 AM

Updated: November 21st, 2012

Before you get started, you might like to check out this short video on High Availability.

This page describes:

About high-availability clusters

With high availability, Engine Yard Cloud boots like instances in different Amazon Availability Zones in the same region.

Whenever possible, your application master and master database are placed in the same zone and your application and slave database instances are placed in a different zone from the masters. Similarly, if you to add utility servers to the environment, they are placed in different zones. This provides a redundant environment if there are problems in one zone of a region.

For example, you choose to create your environment in the Eastern United States region. Then, the instances might be distributed (automatically) as follows:

  • Your application master and master database are both placed in US East Zone 1c.
  • Your application and slave database instances are placed in US East Zone 1d.
  • If you have two utility servers, they are placed in US East Zone 1c and US East Zone 1d.

To take advantage of high availability, you need to have at least the following instances in your environment:

  • Application Master
  • Application
  • Master Database
  • Slave Database

What to do if a zone fails

In the case of zone failure:

  • If the Application Master fails, then the takeover process begins. See Application master takeover for details. If you have cron jobs or custom chef recipes for the environment, then you need to take action.
  • If the Database Master fails, then contact Engine Yard Support to have your slave instance promoted to master instance.

Make an existing environment a high-availability environment

Before high availability, your instances were assigned randomly to availability zones. This procedure outlines how to find out if/how your existing environments need to be modified to take advantage of high availability.

To make an existing environment a high-availability environment

  1. If you do not have a database slave, create one.
    The database slave instance is created in an availability zone other than the zone that your master database is in.

  2. Examine your environment to determine what zones your instances are currently in:
    On the environment page, place your mouse over the hostname to see the zone.

    Place mouse over IP address to see the availability zone
  3. If your masters and slaves are in different zones, then you do not need to take action.

  4. If a master and slave are in the same zone, then do one of the following:
    • Option A: (a) Clone the environment. (b) Test the environment. (c) Use the cloned environment as your production environment. (d) Delete the original environment.
    • Option B: (a) Add a new slave to the current environment. (b) Delete the old slave. (c) Repeat Step 2 above to confirm that both your application and database slaves are in different availability zones from their masters.

If you have feedback or questions about this page, add a comment below. If you need help, submit a ticket with Engine Yard Support.