글로벌 서비스를 할려면 국내에서 개발하는 것과 또 다른 접근이 필요하다
법적인 이슈에 대한 검토
- 시스템을 구축하고자 하는 지역의 법적인 제약 사항을 이해해야 한다.
- 미국이나 유럽은 사용자 정보가 반드시 해당 국가에 있어야하는 제약 사항이 있다.
- 중국은 'Great Fire Wall'이라는 방화벽으로 전체 인터넷을 감싸고 있어서 특정한 서비스를 갑자기 막아 버릴 수 있다.그래서 중국 대상 서비스는 중국에 시스템을 놓는 것이 안전하다.
- 미국,유럽, 중국 3개 지역이 주요 데이터 센터의 선정지가 된다.
시스템 위치 선정
- 글로벌 시스템을 구축할 때 센터의 위치 선정도 또한 중요한 이슈
- 유럽, 미국 중 한곳에 두는게 일반적이며 아시아 커버리지를 위해서 싱가폴,홍콩, 일본 등에 센터를 구축 할 수 있다.
이 그림은 대륙간의 인터넷 연결인데 미국과 아시아는 미국 서부와 일본을 주축으로 연결되어 있으며 미국과 유럽은 미국 동부아 영국쪽으로 연결된 것을 볼 수 있다. 네트워크 대역폭면에서 미국 서부,동부, 유럽 서부(영국), 일본이 가장 충분한 대역폭을 확보하고 있기 떄문에 가장 좋은 후보군들이 된다.
최근에는 아마존 같은 퍼블릭 클라우드를 사용하는 경우가 많은데 보안이 중요한 데이터는 자사의 데이터 센터에 놓고 추가적인 용량이 필요할 때마다 퍼블릭 클라우드의 자원을 사용하는 시나리오가 최근 많이 떠오으고 있다.
운영에 관련된 고려 사항
- 데이터 센터가 있는 곳이면 가장 좋다
- 고객 대응이 있는 경우에는 언어적인 문제와 24시간 365일 운영 지원을 해야 하기 때문에 별도의 운영 센터를 두는 경우가 많다.
- 시스템의 운영의 경우에는 데이터 센테에 운영 인력을 상주 시키는 것이 좋다.
- 24시간 운영을 위해 최소한 두 군데 운영팀을 만들고 시간대가 반대 인곳을 선택하는게 좋다 한 곳이 낮이면 한 곳이 밤일 수 있기 때문에 양쪽에서 교대로 시스템을 관제한다. 이러한 모델을 FTS(Follow The Sun)이라 한다.
- 고객 대응의 경우에는 언어와 문화적인 특성을 고려해서 고객 대응 관리 그룹은 본사에 위치한다
- 고객 대응팀은 언어 권역별로 위치하되 인건비가 싼 곳을 우선하여 선정한다.
기술적인 고려 사항
- 센테의 레벨과 분류
- Request Routing
- 센터간의 데이터 복제
- 데이터 복제 토폴로지
- L10N과 I18N
센터의 레벨과 분류
- HQ(Head Quarter) : 전체 센터의 중심이 되는 곳으로 모든 핵심인력이 모여 있는 곳, 또한 공통적으로 필요한 시스템 ex)데이터 분석 및 중앙 시스템 관제 등
- RC(Regional Center) : 각 권역을 서비스 하기 위한 센터, HQ보다 작지만 일정 규모 이상의 팀을 가지고 있다.
- RC의 특징은 각 권역에 대한 법적인 이슈를 해결하기 위해서 위차하는 경우가 많음 ex) 미국 유럽 중국
- Edge Node : 권역에서 커버를 하지만 네트워크 속도 등의 영향을 받거나 특정 법적인 이슈를 피해가기 위해서 일부의 시스템만 위치시킬 때 사용
- ex) CDN(Contents Delivery Network)
Request Routing
여러 개의 데이터 센터에 걸쳐서 시스템을 운영하게 되면 시스템이 비대칭적으로 배포된다.
비대칭적으로 배포되면 로깅 처리나 분석 시스템이 분산돼서 배치될 수 있다.즉 로그 분석 시스템이 HQ에만 있다 하더라도 RC를 API로 호출하면 로그 분석 요청이 HQ로 전달되어서 처리되어야 한다.
이러한 기능을 Request Routing이라고 한다. 이는 Enterprise Service Bus(ESB)를 통해서 구현 될 수 있다.
클라이언트는 RC나 HQ 아무곳으로나 동일한 API를 호출 할 수 있고 그런 다음 실제 비즈니스 로직이나 데이터가 있는곳으로 요청이 전달된다. 다음 그림은 ESB를 이용한 데이터 센터 간 Request Routing이다.
센터간의 데이터 복제
데이터 복제는 크게 두 가지 관점에서 필요하다
- 권역을 걸쳐서 같은 데이터를 제공해야 하는 경우
- 장애시 페일 오버(Fail Over)를 위한 HA(High Availability) 관점에서 데이터 복제가 필요하다
데이터 복제는 크게 3가지 레벨이 있다.
- 솔루션 레벨의 데이터 복제
- 애플리케이션 레벨의 데이터 복제
- 인프라 레벨의 데이터 복제
솔루션 레벨의 데이터 복제
RDBMS의 경우에는 CDC(Change Data Capture)라는 방식을 사용한다.
RDBMS는 장애 복구 등을 위해서 SQL 문장이 실행될 때마다 변경 로그(Change Log)라는 것을 파일 시스템에 저장한다.
즉, 수행된 모든 SQL 문장을 저장한다. 그 후에 복제 대상에 CDC 로그를 복제해서 전송하는 방식을 사용한다
이렇게 되면 SQL을 차례대로 다시 수행하기 때문에 완벽하게 데이터를 복제 할 수 있다.
RDBMS의 경우 MySQL의 복제(Replication) 기능이나 오라클사의 Golden Gate있으며 NoSQL의 경우 Cassandra,HBase 등 데이터 복제 기능을 솔루션 수준에서 제공한다.
관련 글
애플리케이션 레벨의 데이터 복제
RDBMS의 경우 ETL(Extract Transform Loading)과 같은 솔루션 등을 예를 들 수 있다.
특정 RDBMS에 의존성 없이 RDBMS면 일반적으로 사용 할수 있는 솔루션인데 업데이트된 내용을 SELECT한 후에 복제 대상에 다시 INSERT,UPDATE 등을 해야한다. 이처럼 SELECT를 이용해서 데이터를 추출하기 위해서 운영 테이블을 그냥 사용 할수 없고 복제할 데이터만 인터페이스 테이블과 같은 곳에 별도로 저장해서 전송하거나 어디까지 복제 했는지를 알리는 index 컬럼 같은 것을 추가해야한다.
관련 글
인프라 레벨의 데이터 복제
DRBD와 같은 솔루션 등을 예를 들 수 있다.
디스크 자체를 블록 레벨에서 복제하는 방법이다. 주로 하드웨어 기반의 HA(High Availability) 구조에서 많이 사용한다.
데이터 복제 토폴로지
- Multi Master : 모든 데이터 노드 간에 양방향으로 데이터 복제를 하며 각 노드에서 데이터에 대한 읽기/쓰기가 가능 아래의 그림은 멀티 마스터 복제 방식이다.
- Master Slave : 데이터 복제를 Master에서 Slave 노드로 단 방향으로 복제하며 Master 노드에서만 쓰기가 가능하며 Slave 노드에서는 읽기만 가능하다. 일반적으로 많이 사용하는 방식이다. 아래는 마스터 슬레이브 복제 방식이다.
- Multi Write : 데이터베이스 간의 복제를 사용하지 않고 복제가 필요한 데이터베이스 모두에 동시에 쓰는 방법이다.MySQL 복제 솔루션 중 하나인 Garela가 이런 아키텍처를 사용한다. 아래는 멀티쓰기 방식의 데이터 복제이다.
데이터 복제는 글로벌 시스템에서 매우 중요한 요소지만 구현이 매우 어렵다. 지역적으로 멀리 떨어져 있기 때문에
네트워크 지연속도(Latency)가 생기므로 애플리케이션 역시 이에 대한 고려가 되어 있어야 한다.
L10N과 I18N
L10N은 지역화라고 불리며 I18N은 국제화라고 불린다.
L10N(지역화)
- 소프트웨어를 그 지역에 맞게 지역화 하여 수정하는 것을 의미
- 언어를 그 국가에 맞추고 키보드 입력 체계, 화폐 단위 등 각 나라에 맞게 변경 해야한다.
- 각 국가에 따라 문화 이해가 필요하다 ex) 왼쪽 -> 오른쪽 , 오른쪽 -> 왼쪽으로 이동하는 경우
I18N(국제화)
- 소프트웨어가 동시에 여러 지역화를 지원 할 수 있는 구조로 되어 있는 것을 정의
- MS 오피스는 국제화의 대표적인 예이다.설정에 따라서 한국어 영어 중국어 등 다양한 국가 설정을 반영 할 수 있다.
이 글은 조대협의 서버사이드 대용량 아키텍처와 성능 튜닝 책을 참고하여 작성되었습니다.
이 글은 코드 프레소 DevOps Roasting 코스를 수강하면서 작성한 글입니다.
'아키텍처' 카테고리의 다른 글
[조대협 대용량 아키텍처]성능 엔지니어링 (0) | 2020.02.15 |
---|---|
[조대협 대용량 아키텍처]아키텍트 (0) | 2020.02.10 |
[조대협 대용량 아키텍처]클라우드 인프라 (0) | 2020.02.10 |
[조대협 대용량 아키텍처]OAM Layer의 로그 관리 (0) | 2020.02.10 |
[조대협 대용량 아키텍처]OAM Layer (0) | 2020.02.10 |