작성일 댓글 남기기

[공유] 개발자를 위한 인프라 기초 총정리

IT Infrastructure 개념

애플리케이션을 가동시키기 위해 필요한 하드웨어나 OS, 미들웨어, 네트워크 등 전반적인 기반을 뜻합니다.

개발자는 왜 인프라를 알아야 할까?

온프레미스 방식에서 가상 서버를 여러 대 띄우는 클라우드 방식으로 옮기게 되었습니다. 점차 자동화가 됨에 따라 인프라 엔지니어도 자동화를 위해 코드를 작성하는 능력이 필요하게 되었습니다. 또한 애플리케이션 엔지니어도 지금까지 인프라 엔지니어의 업무였떤 환경에 대한 배포나 테스트 등을 직접 할 수 있게 되면서 인프라 관련 기초 지식이 필요하게 되었습니다.

인프라 구성 요소

  • 하드웨어(Hardware, HW) : 서버 장비 본체나 데이터를 저장하기 위한 스토리지, 전원 장치 등. 넓은 의미에서는 이런 하드웨어를 설치하는 데이터 센터의 설비(건물, 공조, 보안설비, 소화설비 등)도 포함된다.
  • 네트워크(Network, NW) : 사용자가 원격으로 접근할 수 있도록 서버를 연결하는 도구. 라우터, 스위치, 방화벽 등 네트워크 장비와 이를 연결하는 케이블 배선이 포함된다. 사용자가 단말에서 무선으로 연결할 때, 필요한 액세스 포인트(Access Poing, AP)도 해당한다.
  • 운영체제(Operation System, OS) : 하드웨어와 네트워크 장비를 제어하기 위한 기본적인 스프트웨어. 리소스나 프로세스를 관리한다.
  • 클라이언트 OS : 사용자가 사용하기 쉽도록 하는데 초점을 맞추고 있다(Windows, macOS 등).
  • 서버 OS : 시스템을 빠르고 안정적으로 실행하는데 초점을 맞추고 있습니다.(Linux, Unix, Windows Server 등).
  • 미들웨어(middleware) : 서버 상에서 서버가 특정 역할을 하도록 기능을 제공하는 소프트웨어.

온프레미스와 클라우드

온프레미스 On-premises
온프레미스는 데이터 센터나 서버실에 서버를 두고 직접 관리하는 방식을 뜻한다.
전통적인 방식이며 지금도 사용되고 있다.

퍼블릭 클라우드 Public Cloud
인터넷을 통해 불특정 다수에게 서비스 형태로 제공되는 시스템. AWS(Amazon Web Service), Microsoft Azure, GCP(Goole Cloud Platform) 등 클라우드 프로바이더가(제공자)가 데이터센터와 인프라를 보유하고 있다. 서비스 형태라는 건 사용자가 원하는 옵션을 선택하고 사용한만큼 비용을 지불하면 된다는 걸 뜻한다. 제공하는 서비스에 따라 Iaas, PaaS, SaaS 등으로 나눌 수 있다. 이 중 IaaS는 원하는 사양의 가상 머신이나 스토리지를 선택하고 이용한 시간이나 데이터 양에 따라 비용을 지불한다.

프라이빗 클라우드 Private Cloud
퍼블릭 클라우드에서 이용자를 한정한 형태.

클라우드는 자동으로 트래픽을 증설해주는 오토 스케일링(Auto Scaling)이 있어 유리하다.

출처 : https://futurecreator.github.io/2018/11/09/it-infrastructure-basics/