Home 01. 알아두어야 할 시스템, 인프라 지식
Post
Cancel

01. 알아두어야 할 시스템, 인프라 지식

1-1. 인프라에 대한 기초 지식

이전에 개발에 폭포수 모델에 따르면, 애플리케이션 엔지니어, 인프라 엔지니어의 역할이 나뉘어 있었는데 클라우드에 등장으로 애플리케이션 엔지니어에게도 OS와 네트워크 같은 인프라 기초 지식이 필요하게 되었다.

인프라의 구성 요소

인프라는 애플리케이션 동작에 필요한 하드웨어와 OS 및 미들웨어 등을 의미한다.

  • 기능 요건 : 필요한 시스템 기능을 정의한 것을 의미
  • 비기능 요건 : 시스템 성능과 신뢰성, 확장성, 운영성, 보안 등과 관련된 요건

[인프라의 구성요소]

  • 하드웨어
  • 네트워크
  • OS
  • 미들웨어

인프라의 종류(클라우드와 온프레미스 환경)

  1. 온프레미스 : 시스템 구축에서부터 운영까지 자사에 데이터센터를 두고 수행하는 형태를 온프레미스라고 한다. 온프레미스 환경에서는 인프라 구성 요소인 서버와 네트워크 기기를 자사에서 조달하여 시스템 요건에 맞는 인프라를 구축한 뒤 자사에서 직접 운영한다.
  2. 퍼블릭 클라우드 : 인터넷을 통해 불특정 다수에게 제공하는 클라우드 서비스를 의미한다. 인프라 관련 초기 투자가 필요 없다.
  3. 프라이빗 클라우드 : 특정 기업 그룹에만 제공하는 클라우드 서비스를 의미한다. 보안을 확보하기 쉽고 독자적인 기능과 서비스를 추가하기에 용이하다.

[클라우드에 적합한 케이스]

  1. 트래픽 변화가 많은 시스템 : 시스템에는 직원용 시스템과 고객용 시스템이 있다. 상대적으로 트래픽을 예측하기 힘든 고객용 시스템의 경우 트래픽 양에 따라 쉽게 증설할 수 있는 클라우드에서 구성하는 것이 좋다.
  2. 재해에 대비하기 위해 해외에 백업을 구축하고자 하는 시스템
  3. 되도록 빨리 동작해야 하는 시스템

[온프레미스에 적합한 케이스]

  1. 높은 가용성이 요구되는 시스템
  2. 높은 기밀성이 요구되는 데이터를 다루는 시스템
  3. 특수 요건의 시스템
  4. 총 비용이 높은 시스템

인프라 구축 및 운영 프로세스

인프라의 경우 운영 단계에서 리소스 모니터링, 보안 대책을 위한 버전 업그레이드, 시스템 장애 발생시 복구 작업등의 많은 업무가 존재한다. Docker는 시스템 구축과 운영에 있어서 지금까지 사람이 수행해왔던 업무 중 많은 부분을 자동화하기 위한 플랫폼이다.

1-2. 네트워크 및 하드웨어에 대한 기초

인프라의 최하단 레이어를 구성하는 요소는 바로 네트워크와 하드웨어이다.

네트워크

네트워크에서는 각종 네트워크 장비등을 식별하기 위해 네트워크 Address를 사용한다.

  • MAC Address : 네트워크 인터페이스 카드와 무선 LAN 칩 등 네트워크 부품에 물리적으로 할당되어 있는 48bit 주소다.
  • IP Address : 인터넷과 인트라넷 등 네트워크에 접속하는 컴퓨터와 네트워크 장비를 구분하는 식별번호다.

OSI 7 Layer와 통신 프로토콜

서로 어떻게 통신할 것인가에 대해 정의한 규약을 통신 프로토콜이라 한다. OSI 7 Layer는 국제표준화기구(ISO)에서 정한 것으로 컴퓨터 통신를 계층 구조로 나눈 것이다.

  • Application Layer : 웹의 HTTP와 메일을 전송하는 SMTP 등 애플리케이션에 특화된 프로토콜이다.
  • Presentation Layer : 데이터 저장 방식과 압축, 문자 코드 등 데이터 표현 형식을 정의한다.
  • Session Layer : 커넥션이 이루어지는 타이밍과 데이터 전송 타이밍을 정의한다.
  • Transport Layer : 데이터 전송을 제어하는 계층으로 전송 중 오류를 감지하거나 재전송을 담당한다. 대표적으로 TCP, UDP가 있다.
  • Network Layer : 서로 다른 네트워크 사이에서 이루어지는 통신을 위한 계층이다. 다른 네트워크에 데이터 패킷을 전송하는 것을 라우팅이라고 한다.
  • Data Link Layer : 같은 네트워크 내에 있는 노드 사이의 통신을 위한 계층이다.
  • Physical Layer : 통신 장비의 물리적, 전기적인 특성에 대한 계층으로 데이터에 어느정도의 전압과 전류를 줄 것인가와 케이블과 커넥터 형태 등을 정한다.

방화벽

시스템이 동작할 때 가장 중요한 것은 보안이며 이를 확보하기 위해 불필요한 통신을 차단해야 한다. 방화벽은 내부 네트워크와 외부와의 통신을 제어하고 내부 네트워크를 안전하게 지키기 위한 기술이다.

  • 패킷 필터링 방식 : 통신하는 패킷을 포트 번호와 IP Address 기반으로 필터링하는 방법이다.
  • 애플리케이션 게이트웨이 방식 : 패킷 대신 애플리케이션 프로토콜 레벨에서 외부와 통신하며 제어하는 방법이다. (프록시 서버)

라우터와 L3 스위치

라우터는 서로 다른 네트워크를 연결하기 위한 통신 장비이다. Network Layer에서 동작하며 어떤 루트로 데이터를 전송할지를 판단하기 위한 경로 선택 기능을 가지고 있다.

L3 스위치는 라우터와 거의 같은 기능을 가지고 있고 라우팅을 하드웨어에서 처리하기 때문에 빠르게 동작한다는 특징이 있다.

서버

온프레미스에서는 여러 대의 서버로 인프라를 구성하고, 클라우드 서버에서는 온프레미스 서버 사양과 동급인 인스턴스를 선택해야 한다.

  • CPU : 프로그램 연산과 처리등을 수행하는 전자 회로 부품을 말한다. CPU의 주요 연산 회로를 Core라고 부르며 Core 수가 크면 클수록 동시에 처리할 수 있는 연산 처리 수가 증가한다. 또 CPU의 빠른 처리를 위하여 메모리와의 처리 속도 차를 줄이기 위한 동적 캐시를 사용한다.
  • 메모리 : CPU가 직접 액세스할 수 있는 기억장치를 메모리라 한다. 기억 영역이기 때문에 데이터 용량이 크고 데이터 전송 속도가 빠를수록 성능이 높다.
  • 스토리지 : 데이터베이스에 데이터를 저장하는 디바이스로 보조기억장치라고 불린다. 예) 하드디스크, SSD, 하드디스크에 장애가 발생한 경우 중요한 데이터가 분실될 수 있으므로 대부분 RAID 구성을 해야한다.

클라우드를 사용하는 경우 하드웨어 선택이 곧 서비스 선택이다. 안정적이고 효율적인 인프라를 구축하기 위해서는 클라우드 서비스의 조합이 포인트다.

This post is licensed under CC BY 4.0 by the author.

14. 분석함수

05. 행동문제