개발일기장

Chapter 11. 대규모 데이터 처리를 지탱하는 서버/인프라 입문 (강의29 ~ 30) 본문

책 정리/대규모 서비스를 지탱하는 기술

Chapter 11. 대규모 데이터 처리를 지탱하는 서버/인프라 입문 (강의29 ~ 30)

게슬 2021. 8. 3. 11:41
728x90

강의29. 엔터프라이즈 vs. 웹서비스

응용범위로 보는 차이(엔터프라이즈[상용 application])

1. 트래픽의 경우 웹서비스의 경우 특히 글로벌하게 전개되고 있는 서비스에서는 어마어마한 트래픽이 발생할 가능성이 있다.

 

2. 성장속도도 웹서비스가 압도적이다.

 

3. 신뢰성에서는 엔터프라이즈는 장애가 발생해서 데이터가 없어지거나 하면 실제로 돈이 사라지기도 하고, 사람의 목숨과도 연관이 있는 경우도 있다. 그런 의미에서 굉장히 높은 신뢰성이 요구되지만, 웹 서비스에서는 신뢰성이 그렇게 높은 레벨이 요구되지 않는다는 특징이 있다.

 

4. 트랙잭션의 경우(DB) 엔터프라이즈에서는 데이터 간 정합성을 정확히 유지해야한다.(ex 은행 인출, 입금) 트랜잭션 처리를 이용해서 정합성을 명확히 담보하면서 처리해야한다. 그러나 웹서비스에서는 일시적으로 정합성이 일치하지 않는 경우도 허용된다.

 

이와 같이 애초에 응용분야가 달라서 시스템에 요구되는 조건도 달라지게 된다.

웹 서비스의 인프라 세 가지 포인트

1. 저비용 고효율이 중시된다. 100%의 신뢰성은 목표로 하지 않도록 한다. 이 부분은 과감히 접고 오히려 비용을 낮춰서 효율을 높이는 방향으로 추진하고 있다.

 

2. 확장성이나 응답성 등에 대한 설계를 중요시한다. 서비스의 성장속도를 모르거나 사용자 경험을 위해 서비스의 응답성이 중요한 경우도 있다. 99%의 시간대에서 양호한 응답이 이루어지도록 하는 등 기술적으로 중점을 둔 설계가 중요하다.

 

3. 웹 서비스에서는 서비스 사양이 이리저리 바뀌는 경우가 있다. 여기에 유연하게 대응할 수 있는 인프라여야만 한다. 개발속도를 중시한 인프라로 구성해가는 것이 매우 중요한 점이다. 애플리케이션 배포를 가능한 한 간편하게, 또한 배포할 때 마침 처리 중인 요청에 영향이 없도록 하고, 서버를 즉시 추가할 수 있도록 해 두며, 코드에 문제가 발견됐을 때에는 곧바로 이전 상태로 돌아갈 수 있도록 대처해야 한다.

강의30. 클라우드 vs. 자체구축 인프라

클라우드 컴퓨팅

웹서비스는 저비용 고효율이 중시되는 영역이라 클라우드를 고려해야한다.

저가로 사용하면서 확장해갈 수 있다는 특징이 있다. 하지만 서비스마다 독자적인 사양에 대응할 필요가 있다는 점이다. 획일적인 호스트 사양, 애매한 로드밸런서, 때때로 멈춘다는 점이 있다.

소규모 서비스를 하거나 학생들이 사용해보는 등의 트라이얼 용도로는 클라우드 컴퓨팅이 아주 좋은 분야일 것(근대 이거 책이 예전 내용이라서 지금은 모르겠음. 대기업들도 AWS, AZURE같은거 사용하고 있고)

자체구축 인프라

1. 하드웨어 구성을 유연하게 할 수 있다. 메모리를 얼마든지 추가할 수 있다 거나, SSD등 다양한 선진적인 하드웨어를 투입해서 서버 한계를 점점 높일 수 있다.

 

2. 서비스로부터의 요청에 유연하게 대응할 수 있다. 단순히 대수를 늘리는 것뿐 아니라, 데이터를 대량으로 쌓을 수 있도록 하는 등의 요청에 대한 대응이 있을 수 있다.

 

3. 병목현상을 제어할 수 있다. 시스템 규모가 커지면 무시할 수 없는 영역이 된다. 클라우드를 사용할 경우 병목이나 지연에 대해 클라우드 환경을 제공하는 측의 기술에 의존할 수 밖에 없게 된다. 이 부분을 직접 제어할 수 있다는 점은 자체구축 인프라의 최대 장점이다.

 

자체구축 일프라와 수직통합 모델

수직통합 모델이란 물리적 계층부터 서비스 설계까지 모든 것을 한 회사에서 구축하는 모델

수평분산 모델은 각 계층마다 다른 기업이 시스템을 제공하는 것으로, 각각이 모여 전체 시스템이 구축되는 모델이다.

728x90
Comments