12주차 IT 인프라

정지원·2024년 5월 12일
1

에이블 스쿨 복습

목록 보기
43/51
post-thumbnail

IT 인프라

1. 서버와 클라이언트

  • 서버: 클라이언트에게 네트워크를 통해 정보나 서비스를 제공하는 장치
    • 서버컴퓨터: 응용프로그램을 가지고 있다가 클라이언트 컴퓨터에서 요청하면 보냄
  • 클라이언트: 네트워크를 통하여 서버에 접속해 정보를 확인하거나 서비스를 이용하는 장치
    • 클라이언트 컴퓨터: 서버 컴퓨터에 응용프로그램을 요청한 뒤 서버에서 보내주면 실행

서버의 역할 및 종류

  • Client : 서버에 요청하는 주체
  • Request : 콘텐츠 요청
  • Server : 웹 서버, 웹 애플리케이션 서버, 캐시 서버, 리버스 프록시 서버, DB 서버에서 찾아서 응답을 함
  • Response : HTML, Css, JS, 텍스트, 이미지, 동영상 형태로 응답

웹 서버(정적 콘텐츠) 전달 과정

  1. 클라이언트가 콘텐츠 요청
  2. 웹 서버에서 콘텐츠 탐색
  3. HTML, Css, JS, 텍스트, 이미지, 동영상 형태로 전달 및 응답
  4. 클라이언트에서 응답 받은 콘텐츠 조회
  5. 웹서버에서 요청 내용 및 응답 내용을 기록 (Log)

애플리케이션 서버(동적 콘텐츠) 전달 과정

  1. 클라이언트가 동적 콘텐츠 요청
  2. 웹 서버에서 콘텐츠 탐색
  3. 웹 서버에서 애플리케이션 서버에 콘텐츠 요청
  4. 애플리케이션 서버에서 요청내용 확인
  5. 애플리케이션 서베에서 웹서버에 콘텐츠 전달
  6. 애플리케이션 서버에서 요청 내용, 응답내용 기록 (Log)
  7. 애플리케이션 서버에서 전달받은 동적 콘텐츠를 클라이언트에 응답
  8. 웹 서버에서 요청 내용, 응답내용 기록 (Log)

데이터베이스 서버 전달 과정

  • DB 서버: 애플리에키션의 정보를 저장해서 운영 관리할 수 있는 데이터 베이스를 구동하는 서버
  1. 클라이언트가 웹 서버에 콘텐츠 요청
  2. 웹 서버에서 콘텐츠 탐색
  3. 웹 서버에서 애플리케이션 서버에 콘텐츠 요청
  4. 애플리케이션 서버에서 클라이언트 요청 내용 확인
  5. 애플리케이션 서버에서 DB 서버에 데이터 조회 요청
  6. DB 서버에서 애플리케이션 서버에 데이터 조회 결과 전달
  7. 애플리케이션 서버에서 웹 서버에 콘텐츠 전달
  8. 웹 서버에서 클라이언트로 응답
  9. 클라이언트에서 콘텐츠 조회

리버스 프록시 서버 전달 과정

  • 리버스 프록시 서버: 클라이언트 요청을 처리할 수 있는 애플리케이션 서버 선택 후 전달
  • 뒤에 있는 서버가 클라이언트에게 요청을 할 수 있는 상태인지 확인 후, 요청을 함
  1. 클라이언트에서 리버스 프록시 서버에 요청
  2. 리버스 프록시 서버는 웹 서버A를 선택함
  3. 웹 서버 A는 애플리케이션 서버C에 요청
  4. 애플리케이션 서버C는 DB서버에 요청
  5. DB서버는 애플리케이션 서버C에 응답
  6. 애플리케이션 서버C는 웹 서버A에 응답
  7. 웹 서버 A는 리버서 프록시 서버에 응답
  8. 리버스 프록시 서버는 클라이언트에 응답
  9. 클라이언트에서 응답받은 콘텐츠 조회

포워드 프록시 서버 (캐시서버) 전달 과정

  • 포워드 프록시 서버: 미리 데이터를 저장해 뒀다가 요청이 오면 데이터 전달
  • 보통 기업에서는 한 서버가 아닌 다양한 서버로 관리하게 된다
  • 역할 별로 서버를 나눠 놓음
  1. 클라이언트에서 리버스 프록시 서버로 요청
  2. 리버스 프록시 서버는 웹 서버A를 선택
  3. 웹 서버 A는 애플리케이션 서버C에 요청
  4. 애플리케이션 서버C는 DB서버에 요청
  5. DB 서버는 애플리케이션 서버C에 응답
  6. 애플리케이션 서버C는 캐시 서버에 응답
  7. 캐시 서버에서 저장
  8. 캐시 서버는 웹 서버 A에 응답
  9. 웹 서버A는 리버스 프록시 서버에 응답
  10. 리버스 프록시 서버에서 클라이언트로 응답
  11. 클라이언트에서 콘텐츠 조회

2. 서버 하드웨어와 소프트웨어

  • 서버 하드웨어: MainFrame, UNIX, x86,
  • 서버 하드웨어 제조사: HPE, Dell Tech, Lenovo
  • 서버 소프트웨어: (오픈소스, 상용 소프트웨어)
    • 필요 조건: OS: UNIX, LINUX, Windows Server

서버 하드웨어 폼팩터

  • 랙마운트형 서버 (랙서버)
    • 1U 서버
      • 가장 작은 형태의 랙 서버
      • 공간을 효율적으로 활용하고 더 많은 서버를 한 랙에 설치할 수 있음
    • 2U 서버:
      • 1U에 비해 높이가 두배로 큼
      • 더 많은 하드웨어 구성요소를 수용할 수 있도록 하고 확장성을 제공
    • 4U 서버:
      • 더 큰 용량과 확장성 제공
      • 더 많은 하드웨어를 수용하고 높은 처리능력과 저장공간을 제공한다.
  • 블래이드형 서버: 랙마운트형 서버를 더 얇고 케이스가 없는 형태의 서버
  • 타워형 서버: 일반 데스크탑PC와 유사한 형태의 서버로 워크스테이션이라 부름

3. 네트워크

네트워크 개념

  • 회선 교환 방식: 데이터를 교환하기 위해 1:1로 연결된 데이터 통로를 만들고 데이터 교환이 완료될 때까지 회선으 계속 사용하는 방식

  • 패킷 교환 방식: 데이터를 패킷이라는 작은 단위로 나누고 헤더라는 정보를 붙여서 데이터를 교환하는 방식

  • 패킷은 손상될 경우, 전체가 아닌 손상된 것만 다시 보냄

    • 헤더: 송수신 포트번호, 패킷 순서 번호, 데이터 시작 위치, 한번에 전송할 수 있는 데이터 양
    • 패킷: 소포, 택배 물품에 헤더라는 송장을 붙여 보내는 개념

네트워크 프로토콜과 계층

  • 프로토콜: 패킷을 전송하기 위한 규칙, 정해진 규칙을 따르기 때문에 통신이 가능해짐
  • HTTP: 웹서버와 웹브라우저가 패킷을 교환할 때 사용하는 프로토콜
    이 외에도 DNS, FTP, SSL/TLS, UDP, SNMP, IEEE, ARP 등 매우 많은 프로토콜 존재
  • 계층: 송신기기와 수신기기 사이에 주고 받는 데이터는 각 계층 별로 처리됨
  • 계층별로 처리: 한 계층에서 처리가 완료되면 임무를 다음 계층으로 전달
  • 대표적인 2가지 계층 (OSI, TCP/IP
  • 주로 사용하는 계층 5단계

네트워크 기기, 형태

네트워크 기기: L1

  • NIC: PC나 서버를 네트워크에 연결해주는 하드웨어 (유선 / 무선)
    PC나 서버의 슬롯에 장착형, USB 포트형, 메인보드의 슬롯에 장착하거나 온보드로 부착된 형태가 있음
  • 허브: 전달받은 패킷의 복사본을 포트에 연결된 다른 모든 기기로 전송
  • AP: 패킷을 전파로 바꿔서 송출하느 기기, 무선과 유선 사이의 다리 역할을 수행함

네트워크 기기: L2

  • MAC adrress: 컴퓨터들이 서로 데이터를 전송하기 위해 사용하는 물리적 주소로 NIC에 내장
    기기만의 고유번호, 식별번호 등 기기를 구분하기 위한 주소로 사용됨

  • 이터넷: 네트환경에서 데이터를 주고받기 위한 가장 대표적인 기술 규격
    UTP 케이블로 단말기와 네트워크 기기를 연결함 (랜선)

  • L2스위치: 단말기가 보낸 패킷의 헤더에 있는 MAC Address를 보고 같은 네트워크의 다른 단말기로 패킷을 전송하고 이더넷 규격을 사용하기에 이더넷 스위치라고도 부름

네트워크 기기: L3

  • IP Address
    • 서로 다른 네트워크에 연결되어 있는 컴퓨터들이 데이터를전송하기 위해 사용하는 논리적 주소로 OS상에서 설정한 주소
  • Public IP Address
    • 공인 IP 주소
    • 네트워크와 외부의 네트워크가 통신하기 위해 사용
  • Private IP Address
    • 사설 IP 주소
    • 같은 네트워크 안에서 통신하기 위해 사용
  • 라우터: 단말기가 보낸 패킷의 헤더에 있는 IP Address를 보고 다른 네트워크의 다른 단말기로 패킷을 전송 (포트도 적음)

네트워크 기기: L4

L4 스위치: IP 주소와 포트 번호를 참조하여 트래힉을 분산해서 서버에 전송하는 로드 밸런싱 기기

  • 로드 밸런싱: 들어오는 트래픽을 둘 이상의 서버로 분산해서 전송하여 부하를 분산하는 것

  • 트래픽: 서버와 네트워크 장치에서 인정 시간 내에 흐르는 데이터 양

  • 방화벽: IP주소와 포트번호를 참조하여 통신을 허가하거나 차단하는 기기

네트워크 기기: L7

  • L7 스위치: IP 주소와 포트 번호 + 애플리케이션 콘텐츠 정보를 참조해서 로드 밸런싱하는 기기 (URL, 파일명, 콘텐츠 문자열)

  • 웹방화벽: 웹 어플리케이션 서버를 안정하게 보호하는 기기

    • 클라이언트와 서버 사이에 교환되는 데이터를 어플리케이션 레벨에서 상세히 검사하고 조치함
    • 블랙리스트, 화이트리스트, 웹 트래픽 분석 등 다양한 보안 기능 제공
      • 블랙리스트: 리스트에 있는 IP를 제외하고 모두 허용
      • 화이트리스트: 리스트에 있는 IP만 통신 허용

네트워크 형태

LAN

  • 근거리 통신망
  • 가정이나 기업 내부 등 한정도니 범위의 네트워크
  • 클라이언트 기기와 L2 스위치로 구성함

WAN

  • 원거리 통신망
  • 물리적으로 거리가 매우 떨어진 곳의 네트워크를 연결
  • LAN 환경에 L3 스위치를 추가해서 구성함
    • 인터넷, 월드와이드웹(WWW)

VPN

  • 인터넷 상에서 가상의 전용선을 만들어 통신할 수 있게 하는 기술
    • 한국에서 아르헨티나의 서비스로 접속할 수 있음
    • 집이나 카페에서 기업 내부의 어플리케이션에 접속 가능

DMZ

  • 비무장지대
  • 외부 네트워크와 내부 네트워크의 중간 지점
  • 내부망에는 존재하나 외부망에서 접근할 수 없는 영역으로 외부망에 있는 해커의 공격으로부터 기업의 중요한 서버와 클라이언트를 보호하기 위해 사용

4. 스토리지

스토리지 개념 및 종류

스토리지

  • 저장장치를 다수 장착한 대용량 고속 저장 장비
  • 서버 및 클라이언트와 네트워크로 연결해서 사용
  • 데이터 저장 뿐 아니라 데이터 공유 목적으로 사용됨
  • 서버에 장착된 디스크 용량이 부족할 경우, 다수의 사람들과 데이터를 공유할 필요가 있을 경우, 스토리지 활용
  • 데이터 관리 및 보호를 위한 별도의 소프트웨어 탑재

스토리지 저장 방식

  • RAID
  • 여러 개의 디스크 중 일부에 데이터를 중복 저장하는 기술
    • RAID 0
      • 데이터를 여러 디스크에 분산 저장
      • 같은 용량의 디스크로 구성
      • 빠른 성능 / 장애시 데이터 모두 손실됨
    • RAID 1
      • 데이터를 다른 디스크에 동일하게 중복 저장
      • 최소 2개 디스크 필요, 필요한 용량의 2배 준비
      • 장애 대비에 유리하나 비용이 비쌈
    • RAID 5
      • 디스크마다 패러티를 토대로 복구할 수 있음
      • 일정 수준의 성능과 안정성 확보
    • RAID 6
      • RAID 5 방식에 패러티를 하나 더 추가하여 안정성을 더욱 향상시킨 방법
      • 성능은 5보다 조금 떨어짐
      • 디스크 최소 4개 필요
    • RAID 1+0
      • RAID 0의 높은 성능과 RAID 1의 뛰어난 안정성을 합침
      • 최소 4개 디스크 필요

스토리지 종류

  • DAS: 직접 연결한 스토리지

    • 서버와 클라이언트가 전용 케이블로 연결한 스토리지
    • 전송 속도가 빠름
  • NAS

    • 데이터 공유를 위한 파일 서버 용도로 주로 사용
    • 독립적 다기능 스토리지
    • 클라이언트가 데이터에 접근하기 위해 네트워크 스위치를 거쳐 NAS에 접근 => DAS보다 전송 속도가 느림
  • SAN

    • 대용량의 데이터를 네트워크를 통해 빠른 속도로 전송할 수 있는 고성능 스토리지

스토리지 유형

  • 파일 스토리지

    • 데이터를 파일과 폴더로 이루어진 계층 구조에 저장
    • 전통적 방식
    • 양이 많을 수록 성능이떨어짐
  • 블록 스토리지

    • 데이터를 일정한 크기의 블록으로 나눠서 분산 저장
    • 비용이 많이 들고 메타데이터 처리에 한계가 있어 비정형 데이터 처리에 불리함
  • 오브젝트 스토리지

    • 오브젝트라는 개별 데이터 단위로 분산 저장
    • 오브젝트에 메타데이터가 포함되어 있어 신속한 검색 가능
    • 비정형 데이터 저장에 맞음
    • 오브젝트 수정이 불가능해 정형 데이터는 맞지 않음

저장장치

  • 컴퓨터의 데이터를 저장하기 위한 비 휘발성 기억장치
  • Tape, HDD, SDD

백업 개념 및 종류

백업

  • 데이터를 임시로 다른 장치에 저장하여 문제가 있을 때 복구할 수 있도록 준비해 두는 것
    • Full Backup: 백업 주기 마다 데이터 전체를 백업
    • Incremental Backup: 첫째 날에 데이터 전체 백업, 그 다음 부터 증가된 데이터만 백업

스냅샷

  • 마치 사진 찍듯이 특정 시점에 스토리지의 파일시스템을 포착해 보관하는 기술
  • copy-on-write 스냅샷: 쓰기 작업 발생시 복제 후 해당 복제본을 새로운 공간에 덮어씀
  • Redirect-on-write 스냅샷: 쓰기 작업 발생시 새로운 공간으로 쓰기 위치를 재지정

5. 데이터베이스

데이터베이스 개념 및 주요 용어

개념

  • 데이터베이스
    • 여러 사람이 공유하여 사용할 목적으로 체계화해 통합, 관리하는 데이터의 집합
    • 응용 시스템의 통합된 정보들을 저장하여 운영할 수 있는 공용데이터들의 묶음
  • DBMS: 사용자들이 DB안에 있는 데이터를 접근할 수 있도록 해주는 소프트웨어
  • RDBMS: 테이블이라는 최소 단위로 구성하며 이 테이블은 열과 행으로 이루어짐
    • 조회하기 위한 용어: SQL (질의 언어)

오픈소스 DB vs 상용 DB, DB Engine Ranking

데이터베이스 유형

  • 오픈소스 DB
  • 상용 DB
  • NoSQL
    • 대용량 데이터를 분산 처리하기 위한 SQL이 아닌 또 다른 기술을 채택한 오픈소스 데이터베이스

DB IDE

  • IDE
    • DB엔지니어, DBA, 개발자가 사용하는 DB 개발 도구
  • 상용 IDE
    • GUI 지원, 다중 DB 지원, Query 자동완성, 관리자를 위한 기본 모니터링 도구 제공

6. 온프레미스

온프레미스 개념과 3Tier 아키텍처

온프레미스

  • 기업이 자체 시설에서 보유하고 직접 유지 관리하는 프라이빗 데이터 센터

3 Tier 아키텍처

  • 애플리케이션 운영 환경이 컴퓨팅, 네트워크, 스토리지로 구성된 아키텍처

가상화 기술: 서버, 데스크탑, 네트워크, 스토리지

가상화

  • 물리적인 하드웨어가 보유한 자원 효율성을 향상시키기 위해 사용하는 기술
  • (서버 가상화, 데스크탑 가상화, 네트워크 가상화, 스토리지 가상화)
    • 서버 가상화: 하이퍼바이저를 통해 가상머신을 생성, 여러개의 OS를 운영하는 기술
    • 데스크탑 가상화: 데이터는 서버에 저장하고, 서버에서 클라이언트에 업무 환경만 제공해 주는 기술
    • 네트워크 가상화: 물리적 네트워크를 하나의 가상 네트워크로 구성해 사용하는 기술
    • 스토리지 가상화: 물리 서버의 디스크와 스토리지를 하나의 가상 스토리지 풀로 묶어 사용하는 기술

HCI, SDDC

HCI

  • 컴퓨팅, 스토리지, 네트워크를 가상화시켜 단일 시스템으로 운영
  • 기존 3-Tier 대비 병목 구간을 제거하여 자원 확장 시 성능이 선형적으로 늘어남
  • 병목현상이 발생하여 => 2-Tier로 데이터 분산 처리로 병목 구간 제거

SDDC

  • 데이터 센터 구성요소의 모든 것을 소프트웨어로 통합 관리
  • SCD + SDS + SDN + Management Platform 모두 포함되어야 진정항 SDDC임

7. 클라우드

클라우드 개념 및 종류

클라우드의 개념

  • IT 인프라 자원을 직접 보유해서 사용하는 것이 아닌, 다른 기업의 IT인프라 자원을 빌려서 쓰는 것
  • 자원을 빌려 쓴 것 만큼 사용료 지불 => 클라우드 비용
  • 호스팅
    • 웹 호스팅
      • IDC의 특정 서버 자원을 빌려씀 (남들과 공유)
    • 서버 호스팅
      • IDC의 특정 서버 자체를 빌려씀 (나만 쓰는 것, 장기렌트 개념)
  • 코로케이션
    • 내가 가진 서버를 IDC의 랙에 설치하고 IDC가 제공하는 네트워크 및 관리 서비스를 받는 것 -> IDC의 공간과 네트워크 자원을 빌리는 개념임

클라우드의 종류

  • IaaS: IT인프라 자원 전체를 빌려다 씀, OS 및 각종 소프트웨어 설치 필요
    • AWS, Azure, GCP, NCP, KT Cloud, NHN Cloud
  • PaaS: 이미 설치된 OS(플랫폼)을 빌려다 씀, 어플리케이션 설치 필요
    • AWS Elastic Beanstalk, Azure SQL DB, Google BigQuery
  • SaaS: 소프트웨어 빌려다 씀
    • Microsoft 365, Google Workspace, Adobe CC, Zoom, Groupware

클라우드 형태

  • 온프레미스: 기업이 직접 IT인프라를 운영
  • 퍼블릭 클라우드: 다른 기업의 IT인프라를 빌려다 씀
  • 프라이빗 클라우드: 기업이 보유한IT 인프라를 클라우드 서비스처럼 기업 내에서만 활용
  • 하이브리드 클라우드: 프라이빗 + 퍼블릭
  • 멀티 클라우드: 퍼블릭 + 퍼블릭

클라우드 기술 및 용어

  • 컨테이너: 리눅스 기반 애플리케이션 운영을 위한 프로세스 격리 기술
  • 컨테이너 런타임: 컨테이너를 다루는 도구
  • 도커: 컨테이너 기술을 누구나 쉽게 사용할 수 있도록 만든 컨테이너 런타임 중 가장 유명한 오픈소스 프로젝트
  • 쿠버네티스
    • 다수의 컨테이너를 효율적으로 운영, 관리하기 위한 도구
    • 구글이 오픈소스로 공개
    • 현재 기업 환경에 맞는 유료 쿠버네티스 서비스가 다수 존재
  • 파드: 컨테이너들의 모음
  • 노드: 파드가 운영되는 물리 서버 또는 가상머신, 워커 노드라고 부름
  • 클러스터: 노드의 집합
  • 마스터: 다수의 워커 노드들 및 그 하위의 파드와 컨테이너를 관리하는 노드
profile
뒤늦게 프로그래밍을 시작한 응애

0개의 댓글