IT Infrastructure (1)

인철·2023년 10월 26일
0

programming

목록 보기
11/17
post-thumbnail

IT Infrastructure에 대해 알아보자

정의

애플리케이션을 가동시키기 위해 필요한 하드웨어나 OS, 미들웨어, 네트워크 등 시스템의 기반을 뜻한다.
시스템의 요구사항이라고 하면 먼저 해당 시스템이 어떤 기능을 하는지, 무엇을 할 수 있는지를 생각하게 된다.
이를 기능적인 요구사항이라고 한다. 이외에 시스템의 성능, 안전성, 확장성, 보안 등과 같은 요구사항을 비기능적인 요구사항이라고 한다. 인프라는 이런 비기능적인 요구사항과 관련이 있다.

왜 인프라를 알아야 할까?

예전에는 애플리케이션 개발은 업무 지식 그리고 프로그래밍과 테스트 스킬을 갖춘 애플리케이션 엔지니어가 담당하고 구축은 네트워크나 하드웨어를 잘 아는 인프라 엔지니어가 담당했다. 그런데 데이터센터나 서버실에 서버를 두고 직접 관리하던 온프레미스방식에서 가상의 서버를 여러 대 띄우는 클라우드 방식으로 옮기게 되었다.
이런 분산 환경에서는 인프라 엔지니어가 수동으로 관리하는대신 자동화된 툴을 사용해서 오케스트레이션한다. 따라서 인프라 엔지니어도 자동화를 위해 코드를 작성하는 능력이 필요하게 됬다. 또한 애플리케이션 엔지니어도 지금까지 인프라 엔지니어의 업무였던 환경에 대한 베포나 테스트 등을 직접 할 수 있게 되면서 인프라 관련 기초 지식이 필요하게 됬다.

인프라 구성 요소

- 하드웨어 : 서버 장비 본체나 데이터를 저장하기 위한 스토리지, 전원 장치 등, 넓은 의미에서는 이런 하드웨어를 설치하는 데이터 센터의 설비도 포함된다
- 네트워크 : 사용자가 원격으로 접근할 수 있도록 서버를 연결하는 도구들이이다. 라우터, 스위치, 방화벽 등 네트워크 장비와 이를 연결하는 케이블 배선 등이 있다. 사용자가 단말에서 무선으로 연결할 때 필요한 엑세스 포인트도 있다.
- 운영체제 : 하드웨어나 네트워크 장비를 제어하기 위한 기본적인 소프트웨어이다. 리소느나 프로세스를 관리한다.
- 미들웨어 : 서버 상에서 서버가 특정 역할을 하도록 기능을 제공하는 소프트웨어다.

온프레미스 ON-premises

온프레미스는 데이터 센터나 서버실에 서버를 두고 직접 관리하는 방식이다.
전통적이고 지금도 널리 사용되는 방식이고 집에 개인적으로 NAS나 서브 PC로 작은 서버를 돌리는 분들도 있는데 이런 것도 온프레미스라고 볼 수 있다.
이런 환경에서는 서버, 네티워크 장비, OS, 스토리지, 각종 솔루션 등을 직접 사서 설치하고 관리해야 했다. 물론 직접 관리하는 것의 장점도 있다. 하지만 이런 장비들은 상당히 고가이기 때문에 초기 투자 비용이 크고 이후 사용 예측량을 가늠하기가 힘들며 한번 구축해놓으면 사용량이 적어도 유지 비용은 그대로 나간다는 단점이 잇다.

퍼블릭 클라우드 Public Cloud

인터넷을 통해 불특정 다수에게 서비스 형태로 제공되는 시스템이다. AWS, Microsoft Azure, GCP 등 클라우드 프로바이더가 데이터 센터와 인프라를 보유하고 있다. 서비스 형태라는건 사용자가 원하는 옵션을 선택하고 사용한만큼 비용을 지불하면 된다는 것을 말한다.
제공하는 서비스에 따라 laaS는 원하는 사양의 가상 머신이나 스토리지를 선택하고 이용한 시간이나 데이터 양에 따라 비용을 지불한다.

프라이빗 클라우드 Private Cloud

퍼블릿 클라우드에서 이용자를 한정한 형태이다. 예를 들면 기업 내 서비스와 같은 것으로 보안이 좋고 독자적인 기능이나 서비스를 추가하기 쉽다.

클라우드가 유리한 경우

회사 직원용 시스템은 사용자가 한정되어 있고 트래픽을 예측하기가 쉬워 온프레미스도 큰 문제가 없다. 하지만 대외 서비스의 경우 트래픽을 예상하기가 쉽지 않다. 이렇게 트래픽 양에 따라 서버 사양이나 네트워크 대역을 가늠하는 것을 사이징이라고 하는데 상당히 어려운 작업이다. 크게 잡으면 낭비가 되고 적게 잡으면 단기간에 증설하기가 어렵기 때문이다. 이렇게 트래픽의 변동이 많은 시스템은 클라우드 시스템이 유리하다. 클라우드 시스템에는 트래픽에 따라 자동으로 증설해주는 오토 스케일링 있기 때문이다. 또한 클라우드 데이터센터는 전 세계에 퍼져있기 때문에 자연 재해로 인해 데이터 시스템이 다운되더라고 다른 곳에서 시스템을 운영이 가능하다. 그리고 빨리 서비스를 제공해야 하는 시스템이나 PoC도 클라우드가 용이하며 초기 투자금이 적은 스타트업이나 개인 개발자도 클라우드가 유리하다.

온프레미스가 유리한 경우

하지만 항상 클라우드가 좋은 것은 아니다. 무조건 클라우드가 좋으니까 옮기자!가 아니라 상황에 온프레미스가 맞는 경우도 있으니 제대로 검토해야 한다.
온프레미스와 클라우드는 모두 가용성을 보장합니다만 개념에서 차이가 있다. 온프레미스는 서버가 죽지 않는 것을 목표로 한다. 반면 클라우드는 많은 인스턴스로 이루어진 분산 환경에서 인스턴스가 죽으면 다른 인스턴스가 빠르게 대체하는 것을 의미한다. 즉 그냥 클라우드를 사용한다고 해서 가용성이 보장되는 것이 아니라, 가용성을 높이도록 직접 설계해야 한다. 따라서 잠시라도 끊어져서는 안되는 시스템이나 클라우드 업체가 보장하는 것 이상의 가용성이 필요한 시스템에서는 온프레미스가 유리한다.
또한 기밀성이 높은 데이터의 경우에도 온프레미스가 유리한다. 물론 자사의 보안보다 클라우드 프로바이더가 제공하는 보안이 더 좋을 수 있습니다만 물리적인 저장 장소를 명확히 알 필요가 있을 때는 온프레미스가 유리하다. 또한 멀티 클라우드를 사용한다면 각 클라우드 프로바이더마다 보안 정책이 다르기 때문에 보안 표준을 구축하기 어렵다.

하이브리드 클라우드

각자 장단점이 있기 때문에 온프레미스와 클라우드를 함께 사용하기도 하는데 각 시스템의 특성에 맞게 온프레미스와 클라우드를 함께 사용하는 것이다. 클라우드 프로바이더들도 각자의 장점이 달라서 여러 클라우드를 함께 사용하기도 한다. 이를 결정할 때는 특성을 잘 파악하고 있어야 하며 선택의 기준이 명확해야 한다

하드웨어

인프라에서 가장 low-level을 맡고 있는 것이 하드웨어와 네트워크입니다. 온프레미스 시스템은 여러 대의 서버 장비로 구성된다. 클라우드에서는 인스턴스의 하드웨어 성능을 필요에 따라 선택하게 된다

CPU

CPU의 성능은 코어와 캐시에 영향을 받는다. 코어가 많을수록 동시에 처리하는 연산이 늘어나고 메모리와의 처리속도를 완하하기 위해 캐시는 크기가 클수록 성능이 좋아진다. 그래픽을 처리하는데 특화된 프로세서이다. 직력 처리에 최적화된 몇 개의 코어로 구성된 반면 GPU는 병렬 처리에 최적화된 작고 많은 코어로 이루어져 있다.
따라서 딥러링니라 수치해석 등 대량의 데이터를 고속으로 처리해야하는 분야에서는 CPU와 GPU를 함께 사용해서 처리 성능을 높이는 GPU 컴퓨터 방식이 사용된다. 이 방식은 연산이 많이 필요한 부분을 GPU에게 넘기고 나머지 코드만을 CPU에서 처리하는 방식이다

메모리

주기억장치인 메모리는 데이터 용량이 크거나 전송 속도가 고속일수록 고성능이다. 서버용으로는 전력 소모가 적고 오류 처리가 탑재되어 있는 것을 주로 선정한다.

데이터 스토리지

데이터를 저장하는 디바이스다. 보통 스토리지의 속도가 제일 느리기 때문에 스토리지의 용량이나 읽기, 쓰기, 속도가 시스템 전체의 속도에 영향을 주는 경우가 많다. 하드디스크나 SSD 등으로 이루어져 있다.
IT에서 가장 중요한 것은 데이터라고 할 수 있는데요. 이런 데이터가 손실되면 안되기 때문에 대부분 고가용성(High Availability, HA, 오랜 기간 동안 지속적으로 운영될 수 있음)을 위해 이중화(redundancy) 또는 다중화로 구성합니다. 이중화란 같은 장비 또는 시스템이 장애가 나는 것을 대비해 같은 모듈을 2개(또는 그 이상) 준비하는 것을 말합니다.
아래 그림은 AWS의 RDS를 같은 리전 내 다른 가용 영역에 분산해서 이중화를 구성한 모습입니다. AWS에서는 이를 다중 AZ배포라고 하는데요. 같은 지역이라도 데이터가 나뉘어져 있어서 Master에서 문제가 생기면 Slave에서 이를 복구해서 데이터를 유지합니다.
이런 가동률은 퍼센트로 나타내는데 예를 들어 파이브나인스(99.999%)처럼 표시합니다. 소수점 한 자리를 늘릴 때마다 서버 장비 사양이 달라집니다.

profile
같은글이있어도양해부탁드려요(킁킁)

0개의 댓글

관련 채용 정보