Skip to main content

AWS Fault Tolerance and High Availability

Amazon Web Services provides the services and infrastructure to build highly available and fault tolerant environments in the cloud. However, like most clouds, you have to design your systems for fault tolerance and high availability by utilizing the services offered by AWS.

Some AWS services have already been designed by Amazon to be highly available and fault tolerant. These include Amazon Simple Storage Service (S3), Amazon Simple DB, Amazon Simple Queue Service (SQS), and Amazon Elastic Load Balancing (ELB).

Most companies who build their infrastucture in AWS will use Amazon Elastic Compute Cloud (EC2) and Amazon Elastic Block Store (EBS) for their virtual servers (EC2 instances), and disk storage for their servers (EBS volumes). These virtual servers live on physical hosts, and these EBS volumes live on physical disks. Physical hosts have power supplies, motherboards, and RAM which can and will die. Physical disks can and will fail.

While AWS would have set up RAID for their drives and fail over clustering for their hosts, anyone wanting to create an infrastructure in the AWS Cloud (or any other cloud provider for that matter), will need to design high availability and fault tolerance into the services that they are offering.

AWS has features such as availability zones, elastic IP addresses, and snapshots which the cloud architect can utilize to implement high availability and fault tolerance for their virtual server environments.

Just moving a system into the cloud doesn't make it fault tolerant or highly available.


Comments

Popular posts from this blog

How to Schedule an Exchange PowerShell Script in Task Scheduler

Exchange Management Shell
Since Exchange 2007, Microsoft has provided the Exchange Management Shell so administrators can manage all aspects of the Exchange server from the command line.



The Exchange Management Shell has Exchange specific PowerShell cmdlets. These Exchange cmdlets are not normally available in an ordinary PowerShell command environment.



An example of what can be done in the Exchange Management Shell is to run a PowerShell script to list all the mailboxes on the Exchange server to a file. You can output columns based on display name, size of the mailbox, last logon, and other available mailbox attributes.

You can also schedule a batch migration of mailboxes from one database to another such as the migration of mailboxes from Exchange 2010 to Exchange 2013.

Scheduling the PowerShell Script

Once you have written a PowerShell script and utilised the Exchange cmdlets, you can run it with no problems inside the Exchange Management Shell. If you were to try to run it under a …

How To Migrate Mailboxes from Exchange 2010 to Exchange 2016 using PowerShell

The Scenario

Your organisation have decided to migrate from Exchange 2010 to Exchange 2016. The Exchange 2016 server have been installed into your current Exchange Organization. The Mailbox role have been installed on the Exchange 2016 server and you are ready to start moving mailboxes from the Exchange 2010 server to the Exchange 2016 server.

Migrating a Mailbox from Exchange 2010 to Exchange 2016

Using New-MoveRequest

Migrating a single mailbox involves invoking the cmdlet New-MoveRequest from the Exchange Management Shell on the Exchange 2016 server. Make sure that your user account that you have logged into the server with have the Organization Management role.

The common parameters that I use for the New-MoveRequest cmdlet is :

New-MoveRequest -Identity 'useralias@somedomain.com' -TargetDatabase "DB02" -BadItemLimit 10

The -Identity parameter identifies the mailbox to be migrated. I usually use the e-mail address of the mailbox for the identity since it's uniqu…

Elastic Load Balancing in AWS

Elastic Load Balancing is a service which allows for the automatic distribution of incoming traffic across multiple Amazon EC2 instances.These EC2 instances should be in separate availability zones in a particular region.This enables applications to achieve fault tolerance and high availability if they are designed so that they can be accessed from multiple server instances. Sometimes an application may not need to be designed as such if they both point to the same data source. More often than not, these applications can be run from anywhere. They are good candidates to be put behind the Elastic Load Balancing service.It is up to the system or cloud administrator to ensure that identical versions of the application exist across all servers that are going to be load balanced.

The Elastic Load Balancing service can be integrated with Auto Scaling in AWS. As more load is put on your application servers, additional EC2 instances can be launched by Auto Scaling.Once the load dissipates. EC…