[인프라 엔지니어의 교과서] 10장 대규모 인프라

버버니야·2022년 3월 31일
0

36. 대규모 인프라 관리

시스템 구성의 결정 포인트

시스템 구성을 결정하는 포인트는 크게 다음과 같이 나눌 수 있다.

업체 지원의 필요성

업체의 지원이 필요 없으면 관리 비용이 불필요 한 것을 이용하고, 업체의 지원이 필요하면 유지 보수 서비스가 있는 것을 이용해서 구성한다. 예를 들어 웹서버는 CentOS 등의 오픈 소스로 구축하고, 데이터베이스 서버는 위도우나 레드햇 엔터프라이즈 리눅스 + 오라클로 구축하는 구성을 볼 수 있다.

사용 언어

자바, 펄, PHP, 닷넷, 루비 등 사용 언어에 따라 시스템 구성이 달라진다.

액세스 양

대규모라면 예상되는 부하를 산정해서 하드웨어 자원을 충분히 확보하고 적절히 부하를 분산해주어야 한다.

가용성

어느 정도 서비스를 멈춰선 안 되는 지를 나타내는 말로서 '가용성'이라는 말이 있다.
가용성을 높이기 위해서 스케일 아웃 구성에서는 저렴한 서버를 여러 대 준비해서 중복 구성한다. 반면 스케일 업 구성에는 비싸도 잘 고장이 안난느 엔터프라이즈 서버 등을 이용

외부 업자 이용

대규모 인프라 운영에서 적은 사원 수로 업무를 꾸미려면, 외부 업자를 적극적으로 이용해야 한다.

37. CDN

대규모 사이트에서는 이미지나 실행 파일 같은 정적 콘텐츠 배포에 CDN을 사용한다.
CDN - Contents Delivery Network

CDN은 서비스 제공 회사의 서버를 대신해 CDN 업체가 제공하는 캐시 서버에 접속해서 사용자가 정적 콘텐츠를 받아가는 구조의 콘텐츠 전송망이다.
사용자는 자신의 단말에서 가장 가까운 캐시 서버에 접속해서 빠르게 콘텐츠를 가져올 수 있다.

CDN의 구조

CDN을 이용해 원서버의 부하를 줄일 수 있다.


사용자는 가까운 캐시 서버에 접속해 빠르게 컨텐츠를 받을 수 있다.

CDN 사업자 선택법

품질

서비스 중단은 없는지, 응답 속도가 충분한지 등을 확인해야 한다.

서비스는 국내 한정인지 글로벌인지

서비스가 국내만 대상으로 할 때는 어느 업자를 선택해도 큰 문제가 없지만,
세계를 대상으로 할 때는 CDN 사업자에 따라서 중국만 예외로 하는 등의 옵션이 붙는다.

38. DSR 구성을 이용한 부하 분산

DSR - Direct Server Return
L4 스위치 (로드 밸런서)에서 이용되는 부하 분산 기법

일반 웹사이트에서 부하 분산을 할 때 DSR 구성은 거의 채용되고 있지 않지만, 네트워크 트래픽이 대량으로 발생하는 대규모 웹사이트에서는 DSR 구성을 이용하는 것 상식으로 되어 있다.

일반적인 구성과 DSR 구성의 차이

일반적인 구성에서는 스위치와 서버 사이에 L4 스위치를 두는 구성을 한다.
반면에 DSR 구성에서는 상위 스위치 등에 직접 L4 스위치를 연결한다.

일반적인 구성에서는 들어오는 패킷도 L4 스위치를 통해서 서버에 도달하고, 돌아가는 패킷도 L4 스위치를 통해 나간다.

DSR 구성에서는 들어오는 패킷은 L4 스위치를 통과하지만 돌아가는 패킷은 L4 스위치를 거치지 않고 서버에서 직접 되돌아간다.

DSR 구성의 장점

요청에 대한 L4 스위치의 수용력 증가

일반적으로 웹 서버에서는 인바운드와 아웃바운드 트래픽 사이에 큰 차이가 있다.
보통 웹 서버는 요청된 트래픽의 몇 배에서 몇 십배나 되는 트래픽을 응답으로 반환한다.

일반적인 구성일 때는 L4 스위치가 들어오고 나가는 트래픽을 모두 처리한다.

반면에 DSR 구성에서는 인바운드 양과 아웃바운드 양이 거의 같아진다.
아웃바운드의 트래픽을 큰 폭으로 절약할 수 있기 때문에 요청에 대한 L4 스위치의 수용량이 많이 늘어난다.

네트워크 구성이 비교적으로 자유로워진다.

일반적인 구성에서는 스위차와 서버 사이에 L4 스위치를 넣어야 하는 제약이 있었다.
이 제약은 서버 구성을 변경할 때나 L4 스위치가 고장날 때마다 네트워크 구성까지 변경해야만 한다는 것을 의미한다.

반면 DSR 구성에서는 기본적으로 어느 스위치에 L4 스위치를 연결해도 부하 분산이 가능해지므로, 네트워크 토폴로지가 단순해지고 고장났을 때의 처리가 쉬워진다.

한 포트만 사용한다.

일반적인 구성에서는 L4 스위치에 많은 스위치나 서버가 연결되기에 포트가 많이 필요해진다. 하지만, 포트가 많은 L4 스위치는 매우 고가이므로 일반적으로 L4스위치 아래에 L2 스위치를 연결하고 거기에 서버를 달아서 구성한다.
반면 DSR 구성에서는 상위 스위치에 포트 하나만 사용하면 되므로 매우 경제적이다.

DSR 구성이 일반적이지 않은 이유

일반적인 구성에서는 L4 스위치의 설정만 변경하면 부하 분산 설정이 끝난다.
반면 DSR은 L4스위치에 DSR 설정을 하고, 추가로 부하 분산을 하는 모든 서버에 루프백이라고 불리는 가상 네트워크 인터페이스 설정을 해야 한다. 루프백에는 VIP라고 불리는 부하 분산용 IP 주소를 기술한다.

DSR은 일반적인 구성과 비교하면 설정 항목이 늘어났고 일반적인 구성이 아니라서 DSR 구성 설정에 익숙하지 않은 사람이 많다.

39. 리소스 부족 대책

인적 리소스 부족

코어 멤버를 채용하기는 어렵다.
대규모 인프라 경험자 자체가 많지 않다.
반면 오퍼레이터의 채용은 이직 시장에 후보가 될만한 좋은 인재가 많다. 서버와 네트워크 기초를 전체적으로 배운 사람이라면 실무 경험이 없어도 비교적 단기간에 키울 수 있다.

데이터 센터 스페이스 부족

대규모 인프라에서는 랙 단위나 스페이스 단위, 혹은 룸 단위로 계약한다.
성장세가 두드러진 웹사이트는 엄청난 기세로 랙 스페이스를 잠식해 들어가고 결국 데이터 센터 자체의 수용 가능량을 넘는 일이 자주 있다.
이런 때는 다른 데이터 센터를 추가로 계약해야 하지만, 시스템 자체를 여러 데이 센터로 분리할 수 없을 때도 있다. 그러면 모든 서버를 새로운 데이터 센터로 이전하는 것도 검토할 필요가 있다.

새로운 데이터 센터의 계약에는 보통 몇 개월이 걸린다. 무사히 새로운 데이터 센터를 확보할 수 있다고 해도 그 후로 서버 이전, 오퍼레이터 재배치 시스템 분리등에 상당한 부하가 걸린다.

장비 부족

단기간에 장비를 증강해야 할 때, 마침 재고가 있으면 다행이지만 재고가 없다면 새로 사야한다. 대규모 사이트에서는 대량 발주하는 일이 많지 않으므로 업체 측과 생산 조절이 필요하다.

네트워크 대역 부족

자사의 라우터나 상위 회선 업체의 라우터가 트런킹이나 10Gbps를 지원하지 않는다면 그것이 수용량의 한계가 되기 때문에 상위 회선을 바꾸어야 한다. 불가능하면 데이터 센터 자체를 변경해야한다.

트런킹 : 통신에서 트렁킹은 각 클라이언트에 대해 개별 회로 또는 채널을 제공하는 대신 일련의 회로, 캐리어, 채널 또는 주파수를 공유하여 여러 클라이언트에 동시에 네트워크 액세스를 제공하는 기술입니다 (출처 위키백과)

profile
안녕하세요

0개의 댓글