Options for building highly available systems on AWS. Overcoming disruptions. Part 2

this part will be discussed the following options for building highly available systems on AWS database:
the
    the
  • Building highly available systems across availability zones AWS
  • the
  • create a highly available system between regions of AWS
  • the
  • Building highly available systems across cloud and hosting providers
the First part here.

Building highly available systems across availability zones AWS.
Zone postnote Amazon is separate, independent, isolated from each other datacenters within the same region. Availability zones have a stable network connection between themselves, but constructed in such a way that problems in one area do not affect the availability of other zones (they have independent power, cooling and security). The diagram below shows the existing distribution of availability zones (marked in purple) in the framework regions (marked in blue).
image

Most high-level Amazon services, like Amazon Simple Storage Service (S3), Amazon SimpleDB, Amazon Simple Queue Service (SQS), and Amazon Elastic Load Balancing (ELB) have built-in mechanisms for out with ultimate tone of occasiontheless and high availability. Services related to basic infrastructure, such as Amazon Simple Storage Service (S3), Amazon SimpleDB, Amazon Simple Queue Service (SQS), and Amazon Elastic Load Balancing (ELB) provide features such as Elastic IPS, snapshots of images and availability zone. Each fault tolerant and highly available system must use these opportunities and use them correctly. In order to keep the system reliable and affordable is not enough just to deploy it in the AWS cloud, it is necessary to design so that the application running in multiple availability zones. Availability zones are located in different geographical areas, so multiple zones can protect your application from problems in a specific area. The following diagram shows the different levels (examples of software) that needs to be designed using multiple availability zones.
image
To ensure that in case nerabotosposobnosti one area that the application continues to operate without interruption and data loss in another area, it is important to have independent from each other software stacks application in different areas (within the same region and in different regions). At the system design stage you need to understand which parts of the application bound to a zone.
Example:
A typical Web application consists of levels such as DNS, Load Balancer, Web server, application server, cache, database. All of these levels can be distributed and deployed in two or more areas dostupnosti, as described below.
image
Also, most built-in blocks, AWS was originally designed to support accessibility in several areas. Architects and developers working with blocks of AWS in the design phase of an application can use the built-in capabilities for high availability.

Designing a highly available system using built-in AWS units:
the
    the
  • Amazon S3 for the storage of objects and files
  • the
  • Amazon CloudFront for content delivery
  • the
  • Amazon ELB for load balancing
  • the
  • Amazon AutoScaling to automatically scale EC2
  • the
  • Amazon CloudWatch for monitoring
  • the
  • Amazon SNS and SQS for message

These blocks can be used as Web services. These units are inherently highly available, reliable and scalable. They have built-in compatibility and ability to work in multiple availability zones. For example, S3 is designed to provide 99.999999999% security and 99.99% availability of objects per year. With these blocks you can work through the API using simple calls. They all have their advantages and disadvantages that must be considered in the construction and operation of the system. Proper use of these units can drastically reduce development costs and creating a complex infrastructure and will help the team focus on product, not on the creation and support of infrastructure.
Building highly available systems across AWS regions
At the moment there are 7 AWS regions worldwide, and their infrastructure is increasing every day. The following diagram shows the current infrastructure of the regions:
image
The use of AWS in multiple regions can be divided into the following categories: Cold, Warm, Hot Standby and Hot Active.
Cold and Warm are more relevant to disaster recovery, while Hot Standby and Hot Active can be considered for designing a highly available system among different regions. When designing a highly available system between different regions, consider the following problem:
the
    the
  • migrate the application — the possibility of migrating a database environment for an application between AWS regions
  • the
  • data Synchronization — the ability of migrating a database data in real time between two or more regions
  • the
  • Network traffic — ability to control the flow of network traffic between the regions

The following diagram illustrates a simple high availability system across multiple regions.
image
Now consider how to solve these problems:
migrate the application. AMI like S3 and EBS available only within a single region, consequently all the essential identical images should be created in all regions that you plan to use. Each time you update the application code updates and appropriate changes should be made in all regions in all images. You can use the automation scripts, but it is better to use such systems auto-configuration as Puppet or Chef, it can reduce and simplify the cost of deployment of applications. It is worth noting that in addition to the AMI images, there is a service like Amazon's Elastic IP, which also works only within a single region.
data Migration. Each complex system contains data that is distributed among various data sources such as relational databases, non-relational databases, caches and file-based storage. Below are some of the technologies recommended for use when working with multiple regions:
the
    the
  • Databases: MySQL replication Master-Slave, SQL Server 2012 HADR, SQL Server 2008, Programmatic RDS
  • the
  • File storage: distributed network filovia system GlusterFS, replication at the level of S3
  • the
  • Cache: since cache replication across regions are costly in most cases, it is recommended to keep separate the hot cache in each region.
  • the
  • For high-speed file transfers use services such as Aspera.

Since all of the above described technologies are asynchronous replication, you need to worry about losing data and not to forget the RPOs (maximum point of recovery) and RTO (admissible time of recovery) to ensure high availability.
Network stream: option to ensure the flow of network traffic between different regions. Consider sluchaynye points that you need to consider when working with a network stream:
the

    currently built-in load balancer ELB does not support load balancing between regions, so it is not suitable for the traffic distribution between the regions the

  • suitable For this purpose reverse proxies and load balancers (such as HAProxy, Nginx). However, if the entire region is not available, and server load-balancing may not be available or may not see the servers in other regions that can result in application errors.
  • the
  • Common practice is the use of distribution control at the DNS level. Using services like UltraDNS, Akamai or Route53 LBR (routing
  • the
  • based on response time) it is possible to redistribute the traffic between the regions
  • the
  • Using Amazon Route53 LBR you can switch the traffic between different regions and perenapravljat user queries in a region with a lower response time. As a final point to route53 can be used the public IP address of the server, Elastic IP, IP ELB.


Building highly available systems across cloud and hosting providers

Many talk about building a highly available system using multiple Cloud and hosting providers. Include the reasons why companies want to use these complicated terms of archecture system:

the
    the
  • Large enterprises who have already invested the bulk of the funds to build their own data centers or lease of physical equipment in data centers providers that want to use AWS for disaster recovery (Disaster recovery) in case of problems with the primary data center. Businesses that already have their own private clouds on the basis of Eucalyptus, Open Stack, Cloud Stack or vCloud installed in their own data centers, and also want to use AWS for disaster recovery. Eucalyptus is highly compatible with AWS, as it has a compatibility API. Most workloads can be integrated between AWS and Eucalyptus. For example, imagine that the company has developed a set of scripts for Amazon EC2 use AWS API in private Eucalyptus cloud, this cloud can easily migrate to AWS if necessary resiliency. If the company uses OpenStack or other provider of a private cloud, the scripts will have to be rewritten to adapt to work in the new environment. It may be economically disadvantageous for complex systems.
  • the
  • of the Company, who consider their infrastructure n suitable for scalability or high availability, you can use AWS as the main platform, and their data centers as a secondary for disaster recovery.
  • the
  • Companies that are not satisfied with the stability and reliability of their current public Cloud providers may want to use a lot of cloud structure. This case is most rare now, but could become key in the future.

image

Most solutions described in the section for multiple AWS regions suitable for this case.
When designing highly available systems between different Cloud providers or different data centers should be carefully determined with the following key points:
Synchronization. Usually this step is not a big problem if the data warehouse can be installed and deployed at each of the used Cloud providers. Software compatibility for databases, tools and utilities for work with databases, provided that they can be easily installed, will help solve problems with data synchronization between different providers.
a Network stream.
the
    the
  • Switching between multiple service providers can be satisfied using level of managed DNS services, such as Akamai, Route53, UltraDNS. Because these solutions are independent from Cloud providers, regions and availability zones, they can be effectively used to switch network traffic between data centers and providers to ensure high availability.
  • the
  • Fixed IP address can be provided by the datacenter or hosting provider, as some Cloud providers at the moment can't provide a fixed IP for the virtual machines. This can be a bottleneck in providing high availability between Cloud providers.
  • Very often there is a need to establish a VPN connection between datacenter, Cloud provider for migrating confidential data between clouds. It may be a problem with the configuration, implementation and support of this service have some Cloud providers. This point should be taken into account in the design.


Migrating the workload:
The Amazon AMI may not be available for other Cloud providers. New images for the virtual machines must be created for each datacenter or ISP that may be the cause of additional time and money.
Types of operating systems, software, hardware compatibility, all of this should be analysed and taken into account in the design.
Unified infrastructure management can become a big problem if you use different providers, if used for this purpose tools such as RightScale.

Original article: harish11g.blogspot.in/2012/06/aws-high-availability-outage.html
Author: Harish Ganesan
Article based on information from habrahabr.ru

Комментарии

Популярные сообщения из этого блога

mSearch: search + filter for MODX Revolution

Emulator data from GNSS receiver NMEA

The game Let's Twist: the Path into the unknown