기초 지식에 대한 이야기
시스템 개발에 관한 폭포수 모델에 따르면 애플리케이션 인프라 구축은 인프라 엔지니어가 담당하고, 애플리케이션 개발부분은 도메인지식이나 프로그래밍, 테스트 코드 작성등을 잘하는 애플리케이션 엔지니어가 담당한다.
하지만 클라우드 등장으로 이러한 흐름이 변하려고 하고 있다. 자사의 데이터 센터와 전산실에 있던 온오프레미스 환경의 서버는 클라우드의 가상 인스턴스로 옮기고, PaaS등의 개발 지원 기능과 여러 회사의 클ㄹ라우드 서비스를 활용하여 개발 범위를 축소한뒤, 짧은 사이클로 릴리즈스를 하는게 추세로 가고 있다. 점점 "애플리케이션 엔지니어" "인프라 엔지니어"의 업무 분담이 모호 해지고 있다.
인프라의 구성요소
크게 시스템은 아래와같이 구성될 수 있다
애플리케이션, 미들웨어, OS 하드웨어
하드웨어
인프라를 구성하는 물리적 요소로써 서버 본체, 스토리지 데이터센터를 말한다.
네트워크
시스템 사용자가 원격지에서 서버로 액세스할 수 있도록 연결하는 요소이다. 라우터, 스위치, 방화벽등 네트워크 기기와 이를 접속하기 위한 케이블 배선등도 해당된다. 또한 VPN, 스팸, 필터 침입탐지시스템등 보안기기도 포함한다.
OS
현재 운영체제로는 크게 윈도우, 맥, 안드로이드, IOS, LINUX등이 있다.
미들웨어
다양한 미들웨 소프트웨어가 있다. 메시지 시스템등이 미들웨어에 포함된다.
인프라의 종류(클라우드와 온프레미스 환경)
인플라 전체를 이해하고자한다면 다양한 사례를 아는것이 중요한다. 기업 시스템에 적용된 시스템의 형태는 다음과 같이 크게 3가지로 나뉜다.
온프레미스(on-premises)
지금 까지 대부분 기업에서 적용해온 방식으로, 시스템 구축에서부터 운영까지 자세에 데이터 센터를짓고 운영하는 형태를 온오프레미스라고한다. 온프레미스 환경에서 인프라 구성 요소인 서버와 네트워크 기기를 자사에 조달하여, 시스템 요건에 맞는 인프라를 구축한뒤 자사등에 직접 운영한다. 하드웨어 뿐아니라 운영체제, 미들웨어등 모두 자사에서 관리한다.
퍼블릭 클라우드
인터넷을 통해 불특정 다수에게 제공하는 클라우드 서비스를 의미한다. 자사에 데이터 센터를 뒤지 않기 때문에 서버와 네트워크 등 인프라 관련 초기 투자가 필요없다. 제공하는 서비스에 따라 IaaS, Pass, Saas등으로 나뉘며 인프라를 서비스 형태로 이용하는것을 IaaS라한다. IaaS는 사용하고자 하는 스펙의 가상서버와 스토리지를 선택하여 사용한 시간과 데이터 양에따라 요금을 부과하는 방식이다. 대표적으로는 AWS 클라우드 시스템이 있다.
프라이빗 클라우드(Private Cloud)
특정기업 그룹에만 제공하는 서비스를 말한다. 예를들어 그룹사 내에서 데이터센터를 공동으로 사용하는것도 가능하다. 퍼블릭 클라우드가 불특정 다수에게 제공하는 서비스인것에 비해 프라이빗클라우드는 특정한다 사용자아게만 제공하기 때문에 보안을 확보하기가 쉽고 독자적인 기능과 서비스를 추가하기에 용이하다.
클라우드에 적합한 케이스
- 트래픽 변화가 많은 시스템
- 고가용성 서비스가 필요한 경우
- 되도록 빨리 동작해야하는 시스템
온프레미스에 적합한 케이스
- 높은 가용성이 요구 되는 시스템
- 높은 기밀성이 요구되는 데이터를 다루는 시스템
- 높은 기밀성이 요구되는 데이터를 다루느느 시스템
- 특수 요건의 시스템
- 총비용이 높은 시스템
지금까지 간단하게 인프라 구성요소에대해 알아봤습니다. 그다음 글에서는 네트워크 및 하드웨어에 대한 기초지식에 대해 알아보겠습니다.
'Infra' 카테고리의 다른 글
Docker의 중요성 그리고 간단한 예제 (0) | 2020.07.07 |
---|