IT 인프라의 진화와 API의 기본 철학

서버를 추가 구축해야 하는 상황에서 물리적 장비와 가상화 장비의 차이

물리적 장비로 환경 구축하기

웹 서버 요구사항을 수행할 수 있는 물리 장비를 발주해야 한다.
장비가 도착하면 데이터 센터의 랙에 물리 장비를 장착해야 한다.
이 과정에서 빈 공간이 있는 지, 네트워크 스위치 포트가 비어 있는 지, 네트워크 스위치까지 배선이 가능한 지, 전원 용량이 허용 범위 안에 있는 지 등,,, 수많은 물리적 요소를 확인해야 한다.

랙에 장비를 장착하고 나서 OS와 어플리케이션, 환경설정을 한다. 그리고 개발팀에게 계정 권한 정보를 전달한다.

물리적 장비로 인프라 환경을 구축하면 OS와 어플리케이션을 설치하는 것 외에도 고려할 사항이 많다.

가상화 장비로 환경 구축하기

가상화 장비로 환경 구축하면 물리적 요소 고려가 줄어든다.

어떤 장비를 구입해야 할 지 고민하지 않고 필요한 스펙의 리소스만 가상 서버에 할당하면 된다.
장비를 데이터 센터 랙에 설치하는 작업은 가상 서버를 물리 서버에 할당하는 과정으로 대체된다.

랙 빈 공간을 찾거나, 네트워크 스위치 포트, 배선, 전원 용량 등 물리적 요소 고려를 하지 않아도 된다.
대신 가상화 장비로 환경 구축하면 소프트웨어 요구 사항만 고려하면 된다.

물리적 장비에 OS와 소프트웨어 설치 및 환경 설정할 때도 매번 비슷한 작업을 반복하게 된다.
가상화 장비로 환경 설정할 때는 환경 설정이 완료된 템플릿을 복제해오는 방식으로 대체된다.

서버 가상화의 한계

가상화 장비로 환경 구축해서 물리적 고려가 줄었다. 하지만 그 외 작업은 여전히 해야 한다.
가상 서버 리소스 구성 방식 정하기, 가상 서버를 물리 서버에 할당, IP 주소 확보, 시스템 설계 및 작업 계획서 작성 등 작업들은 가상 장비로 구축해도 동일하다.
이런 작업들은 사람이 판단하고 수작업한다는 특성이 있다.
시스템이 커지면 위와 같은 작업 때문에 인프라 운영이 번거로워 진다.

클라우드 API는 이런 작업을 더 쉽게 만든다.

클라우드 환경에서 인프라 구축 작업

서버 가상화 환경에서도 줄이지 못한 사람이 수작업해야 하는 작업을 클라우드 환경에서 어떻게 줄이는 지 확인하자

클라우드로 환경 구축하기

클라우드(오픈스택, AWS)에서 웹서버 추가는 세가지 단계로 나뉜다.

  • 인스턴스 유형 선택
  • 서버 설정 적용
  • 가상 서버 기동

클라우드 적용의 장점

가상 서버 스펙 선택

클라우드에서는 가상 서버 사양을 인스턴스 유형(플레이버)로 규격화했다.
유형이 있으면 재활용하기 쉬워진다. 스펙 결정할 때 고려해야 될 요소를 줄여준다.
다만 세밀한 부분까지 설정하지 못할 수 있다. 하지만 리소스 가격은 시간이 갈수록 낮아지고, 사양 고민할 시간을 줄이는 게 더 중요하다.
요구사항이 달라졌을 때도 스펙을 처읍부터 다시 정하지 않고 다른 인스턴스 유형을 선택하면 된다.

가상 서버를 배치할 호스트 결정

가상화 서버로 환경을 구축하면 가상 서버를 물리 서버에 배치해야 한다.
클라우드 환경에서는 가상 서버를 정하고 구축 요청을 하면 프로그램이 자동으로 적절한 물리 서버를 찾아 배치한다.
(일반적으로 물리 서버를 정하는 기준은 일반 사용자는 몰라도 된다. 오픈 스택에서는 기준을 사용자화할 수 있다.)
사람이 직접 가장 적절한 물리 서버를 찾는 것보다 약간의 리소스 손해를 보더라도 사람이 고민하는 시간을 줄여준다.

IP 주소 할당

클라우드 환경에서는 가상 서버가 접속할 네트워크를 정하면 사용 가능한 IP 주소가 자동으로 확보된다.
IP 주소는 가상 서버가 기동될 때 할당되고, 가상 서버가 제거되면 IP 주소를 회수한다.

클라우드에서는 대량의 가상 서버를 생성했다가 제거하기 때문에 수없이 IP 할당하고 제거한다.
만약 IP 할당 및 제거를 자동화하지 않았다면 매우 번거로운 수작업이 된다.

IP 주소가 자동 할당되면 가상 서버의 IP 주소를 예상할 수 없다.
대신 클라우드는 동적 DNS로 IP 주소를 추상화 한다.

설정 스크립트 작성

가상 서버가 구동될 때 설정을 적용하는 스크립트를 작성하면 실수 없이 여러 서버에 자동으로 적용된다.
그리고 클라우드에서는 이런 설정 스크립트가 잘 적용됐는지 검증하는 툴도 제공한다.

가상 서버 생성의 자동화

클라우드 환경에서 가상 서버 생성할 때 인스턴스 유형과 설정 스크립트만 준비되어 있다면 수많은 작업이 순서대로 자동 진행된다.
템플릿 복제, 스크립트 실행, 가상 서버 배치할 호스트, IP 주소 할당과 같은 일련의 작업을 클라우드 사용자가 고민하지 않아도 된다.

클라우드 환경에서는 HTTP/HTTPS로 통신하는 API를 제공한다. 다만 JSON 형식이 사람이 이해하기 어려워서 CLI나 웹 콘솔을 제공한다.

스토리지와 네트워크도 효율적으로

클라우드 환경에서는 스토리지와 네트워크도 웹 서버 추가하는 것과 비슷하게 효율적으로 수행한다.

스토리지를 추가할 때 디스크 영역을 확보하기 위해 RAID 구성이나 LUN 매핑하는 과정이 필요하다. 이 과정에서 장비나 제조사의 기능이나 설정을 사람이 수작업으로 하게 된다.
클라우드 환경은 스토리지 용량과 접속할 서버만 정하면 나머지는 알아서 자동으로 처리한다.

네트워크를 추가할 때 VLAN을 구성하고 포함되는 물리 호스트의 네트워크 설정과 네트워크 기기 설정 모두 맞춰줘야 하낟.
클라우드 환경에서는 사용할 네트워크 세그먼트나 가상 라우터를 정하면 다른 설정은 자동으로 설정된다.

Share