[GCP] Cloud 개요: H/W (하드웨어)

서경·2024년 9월 3일
post-thumbnail

9월부터 GCP 기반 AI 인재 양성 프로그램에 참여하게 되었다.
클라우드는 처음이라 잘할 수 있을지 모르겠지만.., 열심히 해봅시다~ 아자아자

오늘 선생님께 허락도 받았고 ㅎㅎ 여기에 앞으로 배운 내용을 차근차근 정리해갈 예정이다.
참고로 복습하며 추가로 덧붙이는 내용도 있다..!

파이팅탱통~!






Cloud 개요


컴퓨터 시스템

현재 사용하는 컴퓨터 시스템은 프로그램 내장 방식(노이만(Neumann)형 컴퓨터 시스템) 을 기반한다.


TIP!

컴퓨터 시스템에서는 모든 데이터를 컴퓨터 내부에 내장(기억)한다.

컴퓨터의 전원을 켜면, 일정 시간 동안 환경이 세팅되며 이 과정에서 OS(운영체제)가 시작된다.
스마트폰도 마찬가지로 전원을 껐다가 켜면 환경 설정이 시작된다.
이때 컴퓨터나 스마트폰은 필요한 데이터를 불러오고, 프로그램을 실행하며 환경을 구축한다.

따라서, 컴퓨터 내부에 데이터를 저장하는 시간, 프로그램으로부터 데이터를 불러오는 시간 등
내부적으로 데이터를 처리하고 프로그램을 실행하는 데 시간이 필요하며,
이러한 이유로 초기 가동 시간이 소요된다.

이 과정은 컴퓨터가 프로그램 내장 방식이기 때문이다.


컴퓨터 구성요소에는 하드웨어 그리고 소프트웨어 가 있다.
기계 장치와 기계 장치를 제어해 주는 프로그램이다.

현재는 소프트웨어를 운영하는데 초점이 맞춰져 있지만, 프로그램을 동작하기 위해서는 하드웨어가 필요하다.







H/W (Hardware, 기계 장치)

하드웨어에는 CPU, Memory, I/O Device 가 있다.






1. CPU

연산 / 제어 기능

CPU에는 ALU, CU, Register가 있으며, 세 가지를 합쳐서 CPU core라고 한다.
CPU는 연산이 핵심이다.



1.1. ALU (Arithmetic Logic Unit, 연산 장치)

ALU는 연산 을 담당한다.


○ 산술 연산

사칙연산, 더하기 빼기 등


○ 관계 연산

대소비교, 크거나 작냐, 같거나 같지 않냐


○ 논리 연산

and, or, 참, 거짓 등



1.2. CU (Control Unit, 제어장치)

프로그램의 명령어를 해석하고 장치가 어떤 작업을 수행할지 결정한다.


○ 명령 해석 (IR, Instruction Register)

연산에 필요한 명령을 해석하는 것을 IR이라고한다.


○ 연산 결과에 대한 제어 신호 관리



1.3. 특징

○ CPU는 기억기능이 없다.

2 + 3 = 5
덧셈 = 이항 연산자 = 명령
숫자 = 데이터 = 항

CPU는 기억 기능이 없으며, 연산을 목표로 한다.
기억이 목적이 아니기 때문에 연산할 데이터를 가지고 있지 않다.

즉, CPU만 있다면 컴퓨터 시스템이 정상적으로 작동하지 않는다.
기억 기능이 없기 때문에 CPU에 의해 처리되는 명령도 CPU는 가지고 있지 않고
명령 해석 결과에 의해 처리되는 데이터도 없다.

CPU는 연산에 의한 제어가 주 기능이며,
대량의 데이터를 저장하고 있지 않는다.



○ CPU가 동작하기 위해서는 명령코드와 데이터가 필요

  1. CPU 명령/데이터 크기
    1byte(8bit), 2byte(16bit), 4byte(32bit),8byte(64bit)

    byte는 2진수로 이루어진 8자리 숫자다.
    1byte는 쉽게 말하면 알파벳 하나라고 볼 수 있다. (숫자 1자리 = 1byte, 알파벳 a = 1byte)

    1byte로 표현할 수 있는 값의 범위는 0부터 255까지의 256까지다.

    영어를 기준으로 데이터 사이즈가 정해지는데, 한글은 1byte로 표현할 수 없다.
    영어는 26자에 대문자가 있으므로, 총 52자로 표현된다.
    그리고 숫자 10개와 특수문자를 표현해도 128가지로 2의 7승이 되며, 7bit만 있어도 표현이 가능하다.

    하지만 한글은 자음, 모음이 있으며 쌍자음, 이중모음이 있으므로 256가지가 넘어가게 된다.
    따라서, 한글을 기본적으로 2byte를 사용한다.

    byte가 커질 수록 CPU가 가져오는 데이터 크기에 차이가 생기며
    이는 CPU의 처리 속도(동작 속도)를 결정한다.
    CPU 명령과 데이터 크기가 커질수록 처리속도가 느려진다.

    요즘 많이 사용되는 컴퓨터 환경은 64bit이다.
    데이터 크기를 한 번에 64bit 씩 처리하여 처리 속도가 빠르다.
    우주선 등은 안정적으로 동작하는 환경이 필요하여 검증이 최소한으로 완료된 32bit 등을 사용한다.
    속도가 빠르지 않아도 안정적으로사용해야 하기 때문이다.

  1. CPU 명령/데이터 크기가 가변식 - X86 계열 CPU
    주로 PC, 노트북, 서버 등에 사용되며 보통 X86을 사용한다.
    특히, 대용량 데이터를 처리하는 고정 환경이면 X86을 사용한다.
    전력을 많이 소비한다.

  1. CPU 명령/데이터 크기가 고정식 - ARM core CPU
    ARM 코어는 주로 스마트폰, TV, 냉장고 등의 임베디드 시스템에서 사용된다.
    애플 MAC은 실리콘이라는 ARM 아키텍처를 기반으로 한 커스텀 칩을 사용한다(M1, M2).
    맥북은 x86을 사용하는 기종이 있었으나 단종되고, 자체적으로 만든 ARM을 사용중이다.

    암코어의 장점은 저전력으로 전력 소비가 낮다.
    휴대성을 강조하고, 임베디드 환경(일반 환경이랑 다른 유형의 시스템)에서 암코어를 사용한다.
    임베디드 환경(Embedded Environment): 특정 기능이나 작업을 수행하기 위해 설계된 시스템
    예를 들어, 자동차의 엔진 제어 장치, 가전 제품의 제어기, IoT 기기 등이 이에 해당한다.



Tip!

컴퓨터 시스템이라고 말하려고 하려면, 반드시 CPU가 있어야 한다.
즉, CPU가 있다면 컴퓨터 시스템이라고 볼 수 있다(그 외 하드웨어도 필요).
컴퓨터, 스마트폰, 냉장고, 전기 자동차 등 대부분의 최신 전자기기에 CPU가 내장되며 컴퓨터 시스템으로 볼 수 있다.

CPU 플랫폼을 구성할 때 아키텍처를 X86 또는 ARM 등 중에 선택 할 수 있다.
후에 클라우드에서 아키텍처를 어떤 기반으로 쓸지 결정할 수 있으므로 중요하다.



1.4. Register

CPU가 사용하는 임시 데이터 저장

Register(레지스터)는 임시 기억장치이다.
CPU는 기억장치가 없지만, 동작하기 위해 명령어와 데이터가 필요하다.
예를 들어, 숫자를 연산하면 올림이나 내림이 필요하며, 두 자릿수부터는 올림이 발생한다.
그래서 이 올림수를 어디선가는 저장을 해야하는데, 임시적으로 데이터를 저장하는 역할을 Register가 담당한다.


근데 CPU에 저장 장치가 없다고 외부에서 가져다가 쓰면 속도가 느려지기 때문에 임시기억 장치를 만들었다.
하지만, Register는 우리가 말하는 Memory라고 보기는 어렵다.



1.5. CPU Core - ALU/CU

CPU는 ALU, CU, Register가 있고, 이것을 CPU core라고 한다.
그래서 어떤 코어를 쓰는지에 따라 X86 core, ARM core라고 정해진다.


참고로, X86의 core와 ARM core는 다르므로, 명령 호환이 안된다.
가상 환경을 만들어 사용은 가능하나, 직접적인 호환은 어렵다.
컴퓨터와 핸드폰 core가 다르기 때문에 호환이 안된다.


○ X86 계열 (개인용 PC, 서버)

X86 - 32 bit Data bus, X86_X64 - 64 bit Data bus


○ ARM 계열 (Embedded 용)

최근에는 ARM core 노트북도 나오고 있다.
Qualcomm(퀄컴)은 스마트폰 CPU를 제조하는데, 노트북용 CPU도 생산하기 시작했다.

때문에, ARM에서 동작하는 윈도우가 있고, X86에서 동작하는 윈도우가 있다.
같은 윈도우여도 호환이 안된다. 파편화 된 것이다(같은 os를 사용하는 데 호환이 안되면 버전 문제).

ARM core는 X86 보다 성능이 더 뛰어나진 않지만, 최근에는 X86에 가까운 CPU가 됐다.



1.6. Bus System

CPU와 Memory간의 통신을 수행하는 통로

CPU는 기본적으로 기억기능이 없다.
register은 임시 저장소일 뿐이라 크기가 크지 않으므로,
큰 크기의 프로그램이나 데이터를 저장할 수 없다.

CPU는 연산에 집중하도록 하고 기억을 외부에다가 하는데,
CPU와 외부를 연결하는 장치, 즉 통로를 BUS라고 한다.


○ Address bus

메모리 주소 지정을 위해 사용는 통로, Address bus 크기에 따라 메모리 최대 크기 결정

CPU가 데이터를 읽어오거나 저장할 메모리의 주소를 지정할 때 사용된다.
주소 버스의 크기에 따라 CPU가 접근할 수 있는 메모리의 최대 용량이 결정된다.


○ Data bus

데이터가 이동하는 통로, CPU 종류 결정시 사용하는 크기

데이터 버스는 CPU와 메모리 또는 I/O 장치 간의 데이터 전송을 담당하는 통로다.
데이터를 실제로 읽어오거나 저장할 때 사용된다.

데이터 버스의 크기(32비트, 64비트 등)는 한 번에 전송할 수 있는 데이터의 양을 결정한다.


○ Control bus

제어 신호가 이동하는 통로

메모리 및 I/O 장치에 대한 제어 신호를 전달하는 통로다.
이 버스는 CPU가 수행해야 할 동작(읽기, 쓰기 등)을 지시한다.



1.7. CPU 작동 과정

X86, ARM 모두 동작 과정은 동일하다.
단, 구조나 명령 형태는 다르다.


  1. CU의 명령 해석기(IR)에 명령을 읽어서 저장

  2. 명령 해석기에 의해 명령 해석 - 연산 수행, I/O 수행

  3. 명령 해석 결과에 따라 메모리에서 데이터 읽기 - 명령에 따라서 동작

  4. 명령 처리 - 연산 (ALU 사용), I/O (I/O device 사용)

  5. 명령 처리에 따른 결과를 메모리에 저장



1.8. 메모리 접근 방법

  1. 메모리 주소 지정 (Address bus)

  2. 읽기 또는 쓰기 명령 (Control bus)

  3. 실제 데이터 읽기 쓰기 (Data bus)



TIP!

클라우드 쓸 때 어떤 cpu를 결정 해야 된다.






2. Memory

CPU만 있으면 작동이 안 되는 이유는 CPU 자체에 기억 기능이 없기 때문이다.
그래서 반드시 메모리가 필요하다.

컴퓨터 구매 시 CPU core를 결정하고 메모리 용량을 결정하게 된다.



2.1. I/O Buffer

프로그램 코드와 데이터 저장, 일시적인 저장, I/O 장치를 위한공간

무언가를 저장하는 장치를 메모리라고 하며,
보통 메모리라고 하면 을 뜻한다.
4기가 메모리, 8기가 메모리 등.. = RAM을 뜻한다.



2.2. Memory 구성 소자

○ ROM (Read Only Memory)

시스템의 기본 동작을 위한 불변 데이터를 저장하고, 주로 부팅 시 사용된다.
(예시: 소프트웨어의 초기 부팅 관련 부분, 프린터 작동에 관여하는 펌웨어 명령 등)


  1. 읽기 전용 메모리
    한 번 저장을 하면, 저장된 내용이 지워지지 않는 메모리를 ROM 이라고 한다.

  1. 종류
  • Mask ROM
    임베디드 장치에서 많이 사용되며, 데이터를 영구적으로 저장할 수 있는 비휘발성 메모리다.
    제조 시에 프로그램이나 데이터를 저장하고 밀봉한다(데이터 수정 불가).

  • PROM, EPROM, EEPROM (Flash Memory)
    최근에 ROM의 내용을 수정해야 하는 경우가 있어 수정 가능하게 하는 형태가 나타났다.

  • PROM
    사용자가 데이터를 한 번만 프로그램할 수 있는 읽기 전용 메모리

  • EPROM
    자외선(UV)으로 데이터를 지우고 다시 프로그램할 수 있는 읽기 전용 메모리(정기적 수정)

  • EEPROM
    EEPROM은 전기적으로 데이터를 지우고 다시 쓸 수 있는 읽기 전용 메모리

  • Flash Memory
    EEPROM의 발전된 형태로, 데이터가 전기적으로 지워지고 다시 쓸 수 있는 비휘발성 메모리
    USB 플래시 드라이브, SSD, 메모리 카드 등 다양한 저장 장치에서 사용되고 속도가 빠르다.


  1. 비휘발성

  1. 속도가 느린 메모리

  1. 보관 목적으로만 사용하고 실제 사용시에는 RAM에 복사 하여 사용

ROM은 비휘발성 메모리로, 전원이 꺼져도 데이터가 유지되므로 데이터를 영구적으로 저장할 수 있다.

RAM은 휘발성 메모리로, 전원이 꺼지면 데이터가 사라지며, 데이터는 임시로 저장되고, 빠른 접근이 가능하다.

부팅 시 ROM의 데이터를 RAM으로 복사하여, 빠르게 접근할 수 있도록 한다.



○ RAM (Random Access Memory)

자유롭게 읽기와 쓰기가 가능하다.


  1. 읽기/쓰기 가능 메모리

  1. 휘발성

  1. 종류
  • SRAM (Static RAM)
    속도가 빠르다. 가격이 비싸다.
    Cache memory

  • DRAM( Dynamic RAM )



일반적으로 가격이 저렴한 DRAM을 사용하지만, 속도가 느리다.
SRAM은 가격이 비싸지만, 속도가 빠르다.

CPU와 RAM은 bus로 연결되는데, 보통 CPU 보다 RAM의 속도가 느리다.
따라서, 처리 결과를 RAM에 받아서 처리하기 때문에 CPU가 아무리 빨라도 전체적인 속도는 RAM에 맞춰진다.

그래서 Cache memory (켈시 메모리)라는 것이 나왔다.
CPU와 RAM 사이에 임시 저장공간을 생성한다.

L1 캐시는 가장 빠르고 CPU 내부에 위치하며, L2 캐시는 L1 캐시보다 크고 다소 느리지만 여전히 빠르다.
캐시 메모리는 CPU와 메모리(RAM) 사이의 데이터 전송 속도를 최적화하기 위해 설계되었으며, 이로 인해 캐시 메모리는 RAM보다 속도가 더 빠르다.

주 메모리는 대부분 DRAM을 사용하며,
SRAM은 가격이 높기 때문에 Cache memory 용도로 많이 사용된다.



2.3. CPU와 Memory만 연결 되어 있다.

CPU는 우리가 사용하는 I/O 장치(카메라, 마이크 등 외부장치)와 직접적으로 연결되어 있지 않고,
메모리와만 연결이 되어 있다.


메인보드를 확인하면, CPU가 연결되는 소켓과 메모리가 연결되는 소켓이 분리되어 있다.
하지만, 스마트폰과 같은 기기는 노트북, 데스크탑에 비해 콤팩트가 작기 때문에
CPU 따로 메모리 따로 구성하면 하드웨어를 구성하는데 어려워진다.

그래서 스마트폰은 CPU와 메모리를 원칩으로 만든다(ASIC 주문형 반도체).
일반적인 임베디드기기는 하나의 반도체 형태인 원칩을 사용한다.

애플리케이션 프로세서(Application Processor)는 특정 애플리케이션을 실행하기 위해 설계된 프로세서인데,
애플 실리콘(M3)이 AP 범주에 들어온다.


RAM은 휘발성(휘발유가 기화되는 것과 같다)으로 전원을 켜면 기억을 쌓지만,
전원을 끄면 RAM이 기억하는 모든 내용이 사라져 영구 보관이 불가하다.






3. I/O Device (입출력 장치)

I/O Device는 Memory와만 연결되어 있고, Memory와 I/O Device의 속도 차이를 줄이기 위하여 Memory 영역에 각 I/O Device를 위한 공간(I/O Buffer)을 설정하여 관리


표준 입/출력 장치에 해당하지 않는 장치는 I/O Device를 사용하기 위한 별도의 프로그램이 필요하고 해당 프로그램을 디바이스 드라이버라고 한다.

입출력 장치에는 키보드, 마우스, 모니터 등이 있다.
CPU가 가장 빠르며, 메모리, I/O 디바이스 순으로 빠르다.
그래서 전체적인 컴퓨터 속도는 I/O 디바이스에 의해 결정된다.

키보드 입력 > 키보드 퍼버 저장 > 프로그램 코드 입력 시 코드로 이동 or 데이터라면 데이로 이동
버퍼는 각 디바이스 마다 존재하며, 마우스 버퍼, 모니터 버퍼 모두 따로 존재한다.
모니터는 화면 크기를 갖는 버퍼다.

애플이 원칩으로 만든 목적이 바로 속도 때문인데,
외부장치로 연결하게 되면 발열이 심하고 속도가 느려진다.
원칩으로 만들면 CPU 코어와 메모를 결합하기 때문에 속도를 개선할 수 있다.
스마트폰은 콤팩트 자체가 작기 때문에 PC 처럼 만들기 어려워 ARM core라는 저전력 core를 사용한다.



3.1 Input 전용 Device

Keyboard - 표준 입력 장치 (stdin, 0)

○ Mouse

○ Mic

○ Camera


특별한 장치 지정 없이도 입력을 받을 수 있는 장치를 표준입력장치라고 한다.
마우스 등은 표준입력장치가 아니며, 따로 지정하지 않으면 쓰지 못 한다.

standard input = stdin
숫자 0으로 써두면 표준입력장치로 인식한다.
python input() 함수를 사용할 때, 장치를 따로 지정하지 않는다.



3.2. Output 전용 Device

Monitor - 표준 출력 장치 (stdout, 1), 표준 에러 표시 장치 (stderr, 2)

○ GPU (Grapic Proces Unit)

  • Monitor에 출력하는 처리를 담당하는 전용 H/W
  • Deep Learning 학습을 수행할 때 사용하는 H/W → 병렬 연산 수행

○ Speaker

○ Printer


standard out = stdout = 1 = 정상,
standard errorr = stderr = 2 = 에러
python print() 함수를 사용할 때, 장치를 따로 지정하지 않는다.

프로그래밍이나 서버 설정 시 해당 숫자를 많이 사용한다.
경우에 따라 장치를 바꿔야 할 때가 있으니 숫자를 기억해두자!


CPU는 ALU를 사용하여 연산하고,
GPU는 모니터에 결과를 출력 내용을 제어하는 전용 프로세서다.

과거에는 화면 색상이 흑백이었기 때문에 정보의 양이 많지 않은데,
최근에는 컬러(RGB) 방식을 사용하여 모니터에 출력해야 하는 양이 많아졌다.
컬러 기반의 게임이 활성화 되고, 2D에서 3D로 넘어가는 등 반응 속도가 중요해졌다.

점의 집합으로 모니터에 컬러를 출력하게하는 GPU는 고사양이 될 수록 점의 개수가 많아진다.
가로, 세로 점이 얼마나 있는지에 따라 픽셀이 정해지고 해상도로 이어진다.
1240px = 1240개 점 = 해상도
표준 RGB 보다 4배 높으면 4K, 8배면 8K


GPU는 단순 연산만 하며, 점을 찍기 위해 좌표를 필요로 한다.
이러한 구조가 딥러닝에 굉장히 적합하다.

머신러닝은 GPU 보다 CPU가 더 중요한데(메모리에 맞춰져도 CPU가 빠를 수록 좋다),
딥러닝은 단순 반복 연산이 필요하기 때문에 GPU가 필요한 것이다.

CPU는 명령을 하나 밖에 처리하지 못하지만(명령 10개 동시 진행 시 CPU 10개 필요, 하지만 비싸다),
GPU는 색상 정보와 좌표만 있으면 되기 때문에 단순 연산이 가능해지고,
GPU는 점을 하나하나 찍기 때무에 코어가 많아 병렬 연산이 가능하다.

딥러닝 프로그래밍할 때 프레임워크에 텐서플로우, 파이토치 중 사용하게 되는데,
텐서플로우가 지원하는 GPU는 엔디비아만 가능하다.
인텔은 연계가 되어 있지 않다(일반화가 안 됨).

LMN 대규모 언어 모델 훈련에서는 GPU가 몇 백장이 필요하다.
그래서 최근 딥러닝 전용 NPU (뉴럴 프로세스)가 등장했다.
GPU 보다 저렴하며, GPU는 목적이 딥러닝이 아니지만,
NPU는 딥러닝을 위한 용도로 목적이 하나다(아니면 추론 목적으로 사용).



TIP!

딥러닝에서 기본적으로 GPU를 사용하지만, 연산 내용이 많지 않으면 CPU를 사용할 수 있다.
연산 내용이 많다면 GPU를 사용한다.



3.3. Input/Output 전용 Device

○ HDD / SSD - 보조 기억 장치 (storage, 스토리지)

  • 프로그램 (프로그램 코드/ 실행 가능 binary)/데이터 보관

  • O/S, Application, Data

  • HDD - 용량, 가격 장점

  • SSD (Solid State Drive) - 속도 장점


○ Touch Screen


Network device - NIC (Network Interface Card)

  • 속도(대역폭) 중요

CPU 속도는 클럭 속도(헤르츠, 기가헤르츠)로 측정되며, 이는 초당 수행할 수 있는 연산의 수를 나타낸다.
반면, 네트워크의 속도는 대역폭에 의해 결정되며, 이는 네트워크를 통해 동시에 저장할 수 있는 데이터 양을 말한다.

클라우드를 사용한다면 기본적으로 네트워크가 필요하다,
네트워크를 구성하고 데이터 송수신을 처리하기 위해서는 NIC와 같은 하드웨어 디바이스가 필요한다.
NIC는 네트워크에 연결되고 데이터를 입출력하는 데 중요한 역할을 한다.


Memory는 휘발성이 있어 영구 보관이 안되므로,
보관을 목적으로 하는 보조 기억 장치(Storage, 스토리지)를 사용한다.

CPU와 I/O Device는 연결이 되어있지 않아 Memory를 거쳐야 한다.
하드웨어 중 I/O 디바이스가 가장 느려 I/O 디바이스에 의해 속도가 결정될 수 있으므로,
I/O 디바바이스도 속도가 빠른 것을 선택해야 하는데(마우스 등 은 상관 없음),
메모리 속도가 빠르더라도 용량이 적으면 속도가 저하될 수 있다.

특히, USB 장치에 속도차이가 있다.
현재 기준 썬더 볼트가 가장 빠르며, 썬더 볼트를 지원하는 컴퓨터에 해당 장치를 쓰면 빠른 성능을 지원할 수 있다.

HDD는 대용량 데이터를 저렴한 가격에 저장할 수 있지만, 속도가 SDD 보다 느리다.
SSD는 MAND 플래시 메모리를 지원하며, 속도가 빠르나 비용이 비싸다.
응용 프로그래매 데이터는 모두 보조 기억 장치에 저장된다.

OS 설치는 메모리가 아닌 스토리지에서 설정을 하며, 스토리지에 있는 OS가 메모리에 로드되어 실행된다.
컴퓨터 부팅 시 하드를 체크하고 메인 스토리지로 가서 OS를 찾는데, 이때 OS가 없다면 부팅이 되지 않는다.
그래서 ROM으로 부트로더를 읽어 운영체제를 찾고 RAM이 로드하여 운영체제를 실행한다.



TIP!

입출력을 하지 않고 대용량 데이터를 오래 보관하고 싶다면 HDD를,
자주 읽거나 쓰기를 하면 SDD를 선택하는 것이 좋다.

스토리지는 중요하며, 스토리지 속도가 빠를 수록 좋다.


앞으로 클라우드 서버 구성에서 CPU 메모리 스토리지를 결정해야 한다.
클라우드는 사용 만큼의 비용이 책정되기 때문에 기본 비용을 어떻게 책정할 것인지 고민을 해야 한다.
즉, 어느정도의 속도와 금액을 타협해야 한다.

대용량 데이터 오래 보관하고 싶으면(입출력 안할거면) HDD
자주 읽기도하고 쓰기도 하면 SSD를 선택하는게 좋음






4. Infrastructure 구성

4.1. Infrastructure(Infra) 구성(Server) 시 H/W적으로 중요한 요소

○ CPU

○ Memory

○ Storage

○ NIC

○ 확장성 고려 → 처리 속도

  1. Scale up
  • H/W 성능을 높이는 과정 → 높은 성능의 H/W로 교체

    스케일 업은 서버 하나의 하드웨어 성능을 향상시키는 것이다.

    클라우드 환경에서는 자동 확장 기능을 사용하여 자원을 유동적으로 조정할 수 있지만, 온프레미스 환경에서는 서비스를 중단하고 스케일 업을 해야되는 단점이 있다.
    스케일 업은 사양을 높이는 작업이기 때문에 실제로는 많이 활용되지 않는다.

    예를 들어, 일시적으로 방문자 수가 증가하여 스케일 업을 하였는데,
    접속자가 다시 줄어들면 과잉 프로저닝이 발생하여 잉여 자원이 생긴다.
    한 번 스케일 업을 하면 다시 스케일 다운이 어렵기 때문다(하드웨어 업그레이드).

    온프레미스 초기 비용이 많이 잡히지만, 한번 구축하면 추가 사용 비용이 발생하지 않는다.
    반면, 클라우드는 초기 비용이 적게 나가지만, 사용한 만큼 비용이 발생하는 종량제이다.

  1. Scale out → 다중처리
  • 동일 사양의 H/W를 병렬로 구성하는 과정

    스케일 업의 문제 때문에 대부분 자원에서 수평 확장과 축소 방식의 스케일 아웃을 한다.
    먼저, 분산 처리 로드 밸런싱을 하고 오토 스케일링이 일어나도록 한다.
    해당 기능들은 클라우드 서비스에서 모두 제공된다.

    · Auto Scaling → 자동 증가
    자원 사용량에 따라 자동으로 서버를 추가하거나 제거한다.

    · Load Balancing → 분산처리

TIP!

  1. 스케일 업
  • 하드웨어 확장 (한계 有)
  • 온프레미스는 교체가 어렵지만, 클라우드는 가상환경으로 쉬움
  • 하지만, 종량제기 때문에 비용에 한계가 있으므로 감당가능할 정도로 스케일 업을 진행해야 함

  1. 스케일 아웃 (다중처리)
  • 같은 성능의 하드웨어로 동시에 처리 (병렬처리)
  • 다중처리로 속도가 빠르다.
  • 스케일 아웃은 성능 다운이 가능하다.

인프라를 구성하는데 하드웨어가 중요하고 향후 확장성을 고려해야 한다.
하드웨어 구성 시 CPU, 메모리, 스토리지, NIC(속도 중요)를 고려하여 인프라를 구축한다.
환경 구성에는 하드웨어를 중심으로 결정해야 한다.

스케일 업과 스케일 아웃은 동시에 진행하지 못한다.

클라우드는 온프레미스를 조금 더 유연하게 쓰기 위함이며, 소유 개념이 아니다.
클라우드는 비용이 가장 중요하며, 온프레미스 구성에 비해 클라우드 사용 요금이 더 나올 수 있다.

0개의 댓글