블로그 이미지
평범하게 살고 싶은 월급쟁이 기술적인 토론 환영합니다.같이 이야기 하고 싶으시면 부담 말고 연락주세요:이메일-bwcho75골뱅이지메일 닷컴. 조대협


Archive»


 
 

AWS의 Zone은 같은 지역에 있는 물리적으로 다른 데이타 센터의 개념을 이야기 함.

RDS의 Multi Zone replication은 한 데이타 센터가 고장 나더라도 다른 데이타 센터에서 서비스가 가능한 구조.

기본적으로  Active-Stand by 형태로 복제하다가, 장애가 나면 stand by 서버로 fail over하는 구성


중요한 것중 하나는 MySQL RDS의 경우 자동 Back 시, 시스템이 일시적으로 멈추는 현상이 보이는데, Multi AZ deploy의 경우, back up시에, 자동 fail over하여, 멈추는 현상 없이 서비스가 가능함


http://aws.amazon.com/ko/about-aws/whats-new/2010/05/18/announcing-multi-az-deployments-for-amazon-rds/

Announcing Multi-AZ Deployments for Amazon RDS

We are excited to announce Multi-Availability Zone (Multi-AZ) deployments for Amazon Relational Database Service (Amazon RDS). This new deployment option provides enhanced availability and data durability by automatically replicating database updates between multiple Availability Zones. Availability Zones are physically separate locations with independent infrastructure engineered to be insulated from failure in other Availability Zones. When you create or modify your DB Instance to run as a Multi-AZ deployment, Amazon RDS will automatically provision and maintain a synchronous “standby” replica in a different Availability Zone. In the event of planned database maintenance or unplanned service disruption, Amazon RDS will automatically failover to the up-to-date standby so that database operations can resume quickly without administrative intervention.

The increased availability and fault tolerance offered by Multi-AZ deployments are well suited to critical production environments. To learn more, visit the Amazon RDS product page.



Auto-Sharding

이번 MySQL의 Enhancement 중 재미있는 기능중의 하나가 Auto Sharding이라는 기능이다. 

Sharding에 대한 개념은 http://bcho.tistory.com/670 를 참고하면 되고.

보통 Sharding이라 하면 Application 에서 작성해서 컨트롤해야 하기 때문에, 데이타 저장 용량을 늘릴 수 있을지 몰라도, 전체적으로 Application의 구현 복잡도를 올리는 문제가 있었다.

이번 MySQL에서는 Auto-Sharding이라는 기능을 제공하는데, 요는 MySQL이 알아서 데이타를 여러 데이타 노드에 분산 저장함으로써 전체 저장 용량을 늘리고, 데이타를 분산 배치 함으로써, 처리 능력을 향상 시킬 수 있다.



위의 그림은 Auto-Sharding 아키텍쳐이다. Primary Key에 의해서 홀수는 좌측 클러스터에, 짝수는 우측 클러스터에 자동으로 나눠서 저장이 되게 된다.


Data Replication

또한 특정 노드 장애에 대비해서 데이타 노드에 저장된 데이타에 대해서 다른 노드에 복제본을 저장한다.


위의 하나의 좋은 예가 있는데, 두개의 클러스터 노드 그룹이 있고, 4개의 데이타 노드가 있다고 가정하자, 하나의 테이블은 데이타 노드 수인 4개만큼 Sharding으로 나뉘어서 각 노드에 저장되고, 각 노드 그룹안에서는 상대방 서버에 대한 Sharding 파티션에 대한 복제본을 저장한다. 이렇게 함으로써, 특정 노드가 장애가 나더라도, 정지 없고, 데이타 유실 없이 서비스가 가능한 구조가 된다.