분류 전체보기
[대규모 서비스를 지탱하는 기술] 가상화 기술 및 CDN
대규모 서비스를 지탱하는 기술 가상화 기술 가상화 기술의 목적 확장성 오버헤드의 최소화 비용 대비 성능 리소스 사용률 향상 운용의 유연함 고가용성 환경의 격리 가상화 기술의 효용 IPMI를 대체하는 하이퍼바이저 IPMI를 대체해서 하이퍼바이저를 사용할 수 있게 되어 있다. 서버 상에 최초로 기동 하는 OS (호스트 OS)를 하이퍼바이저, 호스트 OS 상에서 기동 하는 OS를 게스트 OS라고 한다. 하드웨어 환경 추상화로 차이 흡수 하드웨어 차이를 흡수해서 환경을 추상화할 수 있다. 준가상화 사용 가상화로 인한 오버헤드를 줄이기 위해 하드웨어를 완전히 에뮬레이팅하지 않은 준 가상화 방식을 사용. 리소스 소비 제어 리소스 소비를 소프트웨어 레벨에서 강력하게 제어할 수 있다. 리소스 소비를 제어함으로써 과부하..
[대규모 서비스를 지탱하는 기술] 다중성 확보, 시스템 안정화
대규모 서비스를 지탱하는 기술 다중성 확보 다중화를 위해서 가장 중요시하는 것은 SPOF(Single Point of Failure) 즉, 단일 장애점을 제거하는 것이다. 한 곳에 장애가 나면 시스템이 멈춰버리는 부분을 가능한 한 없앰으로써 가동률을 높이도록 함. AP 서버 다중성 확보 AP 서버에서는 확장성을 생각하는 방식과 마찬가지로 서버 여러 대를 늘어놓는 것이 기본이 된다. 중요한 것은 1대나 2대 정도 정지하더라도 충분히 처리할 수 있도록 처리 능력을 확보해두는 것이다. 서버는 다양한 요인으로 멈춘다. 이에 대한 대응으로 로드밸런서로 페일오버(failover, 장애극복), 페일백(failback, 정상 복귀)하여 고장 난 서버를 자동적으로 분리하고, 서버가 복구되면 원 상태로 복귀시키는 작업을 ..
[대규모 서비스를 지탱하는 기술] 대규모 데이터 처리를 지탱하는 서버/인프라
엔터프라이즈 vs 웹 서비스 트래픽 트래픽의 경우 엔터프라이즈에서는 극히 거대한 규모가 되는 경우는 드물지만, 웹 서비스의 경우는 특히 글로벌하게 전개되고 있는 서비스에서는 어마어마한 트래픽이 발생할 가능성이 있다. 성장성 엔터프라이즈에서는 실제 비즈니스와 연계되어 있으므로 그다지 급격하게 성장하는 것은 아니다. 반면, 웹 서비스의 경우는 폭발적으로 성장할 가능성이 있어서 전년대비 100%, 200%, 300% 증가와 같은 일도 드물지 않다. 신뢰성 엔터프라이즈에서는 사수라고 적혀있는데 장애가 발생해서 데이터가 없어지거나 하면 실제로 돈이 사라지기도 한다. 이처럼 굉장히 높은 신뢰성을 요구한다. 그러나 웹 서비스는 신뢰성에서는 대부분 비교적 그렇게 높은 레벨이 요구되지 않는다는 특징이 있다. 트랜잭션 엔..
[대규모 서비스를 지탱하는 기술] 알고리즘 실용화
알고리즘 실용화 알고리즘과 평가 속도를 중시하는 프로그램을 작성할 경우에 알고리즘과 데이터 구조의 선택은 중요하다. 이때 대상이 되는 데이터가 크면 클수록 선택에 따른 차이가 현저해진다. 예를 들어서 데이터 내에서 필요한 데이터를 처음부터 순차적으로 찾아가는 선형 탐색(Linear Search)은 1,000건의 데이터가 있을 때 원하는 데이터를 찾기까지 탐색을 반복하면서 최대 1,000번을 탐색하는 알고리즘이다. n건에 대해 n번의 탐색이 필요하므로 O(n)의 알고리즘이라고 한다. 반면에 이분탐색은 (Binary Search)은 n건의 데이터에서 log n번 만에 목적 데이터를 찾는 알고리즘으로, O(log n)이다. 이분 탐색에서는 1,000건에 대해 최대 10번 만에 탐색이 완료된다. 이는 데이터의 ..
[대규모 서비스를 지탱하는 기술] DB 스케일아웃 전략
DB 스케일아웃 전략 1. 인덱스의 효과 인덱스는 색인으로 저장 공간과 쓰기 성능을 희생하면서 검색 속도를 높이기 위한 자료구조이다. MySQL에서는 기본적으로 B-Tree를 인덱스 알고리즘으로 사용한다. B-Tree는 이론적으로 탐색 계산량이 O(log n)으로 보장되므로 선형 탐색에서 O(n)으로 찾는 것보다 B-Tree로 찾는 것이 더 빠르다. 이러한 이유로 인덱스로 탐색하면 검색 속도가 빨라지는 이유이다. 이처럼 계산량 측면에서 개선될 뿐만 아니라 디스크 구조에 최적화된 인덱스를 사용해서 탐색함으로써 디스크 Seek 횟수면에서도 개선된다. 책에서 인덱스 및 실행계획에 대해서 간단하게 다루고 있는데.. 이 부분은 Real MySQL 정리한 것이 더 유용하다고 생각해서 이정도만 정리하였습니다. cf)..