📚
대규모 서비스를 지탱하는 기술 - 효율 향상 전략
September 28, 2021
다음은 웹 개발자를 위한 대규모 서비스를 지탱하는 기술을 읽고 정리한 내용입니다 🙌
- 다중화로 어느정도 문제를 해결할 수 있지만 규모가 작으면 다중화를 했을 경우 전체적인 리소스 사용률이 떨어지면서 효율이 떨어진다.
- 가상화로 전체적인 리소스 사용률을 높일 수 있다.
[강의36] 가상화 기술
가상화 기술의 도입
왜 가상화 기술을 사용하나
- 확장성 → 오버헤드 최소화
- 비용대비 성능 → 리소스 사용률 향상, 운용의 유연함
- 고가용성 → 환경 격리
가상화 기술의 효용
- IPMI를 대체하는 하이퍼바이저
- 호스트 OS : 서버에서 최초에 기동하는 OS
- 하드웨어 간 차이 흡수 → 환경 추상화
- 준 가상화 사용
- 리소스 소비 제어
- 과부하 경고
- 부하 조정
가상화 서버 구축정책
- 하드웨어의 이용효율을 높이기 위해 남아있는 리소스를 사용하는 게스트 OS를 투입하는 것이다.
- 예를 들어 CPU 리소스가 남이있으면 웹 서버, I/O 리소스가 남아있으면 DB 서버, 메모리 용량이 남아있으면 캐시 서버를 투입한다.
- 리소스 소비경향이 비슷한 게스트 OS는 서로 점유하려고 하므로 같이 두지 않는다.
가상화로 얻은 장점 정리
- 물리적인 리소스 제약에서 해방 → 동적으로 변경 가능
- 게스트 OS의 마이그레이션 및 복제가 용이 → 서버 증설이 용이 + 확장성 확보
- 소프트웨어 레벨에서 호스트 리소스 제어가능
- 비정상 동작 시 문제를 국소화, 호스트를 쉽게 제어
- 효율이 향상, 시스템 안정화 가능
- 비용대비 성능 향상, 고가용성으로 발전
가상화 도입 시 주의할 점
- 성능상 오버헤드가 있다.
- CPU에서 2% - 3%
- 메모리 성능에서 1할정도
- 네트워크 성능 절반
- I/O 성능 5% 정도
- 상황에 따라서 가상화를 하는 것이 좋을수도 있고, 아닐수도 있다.
- 지금은 가상화 기술이 더 안정되었을 것이다 → docker