[KTAIVLE] 20230424기록 - IT인프라

최정윤·2023년 4월 24일
0

KTAIVLE

목록 보기
5/5

🌝 IT 인프라

🌍 서버

서버와 클라이언트

  • 서버: 클라이언트에게 네트워크를 통해 정보나 서비스를 제공하는 장치
  • 클라이언트: 네트워크를 통해 서버에 접속해 정보를 확인하거나 서비스를 이용하는 장치

서버의 역할 및 종류

  • 웹 서버: 정적 콘텐츠 (텍스트, 이미지 등) -> 안움직임
  • 애플리케이션 서버: 동적 콘텐츠 (소스코드, 텍스트, 이미지 등) 움직임

웹 서버에서 동적 콘텐츠를 이용하려면 애플리케이션 서버에 요청하여 사용한다.

클라이언트 - 웹 서버 - 애플리케이션 서버 - DB 서버

  • 리버시 프록시 서버
    • 클라이언트와 서버가 서로 데이터를 주고받을 수 있도록 전달
    • 클라이언트가 너무 많을 때 클라이언트 요청을 애플리케이션 서버 B와 C에 나누어서 분배해준다.

클라리언트 - 웹 서버A - 리버스 프록시 서버(다음에 어디로 보낼지 선택) - 애플리케이션 서버B/C - DB 서버

  • 포워드 프록시 서버: 미리 데이터를 저장해뒀다가 요청이 오면 데이터 전달

처음 요청이 올 때 :클라리언트 - 웹 서버 - 리버스 프록시 서버 - 애플리케이션 서버 - DB 서버 - 캐시 서버 - 웹서버 - 클라이언트

나중에 동일 요청이 올 때 : 클라리언트 - 웹 서버 - 리버스 프록시 서버 - 애플리케이션 서버 - 캐시 서버 - 웹서버 - 클라이언트

  • 랙마운트형 서버: 눕혀서 꽂는다. 보편적으로 많이 사용한다.

    • 1U(1unit) 서버 : 가장 작은 서버, 한칸만 있는 것
    • 2U 서버: 1U 서버의 두배 높이, 좀 더 높은 성능, 좀 더 많은 저장 장치를 갖는 서버
    • 4U 서버: 더 많은 cpu, 메모리를 사용
  • 블레이드형 서버: 세워서 꽂는다.

    • 특수 목적용 서버로 많이 사용한다.
  • 타워형 서버: 일반 데스크탑PC와 유사한 형태

    • 일반 데스크탑PC보다는 크다. 더 높은 성능

서버 하드웨어 유형

  • 메인 프레임
    • UNIX : Main Frame의 경량화 버전, 대형 업체에서 많이 사용
    • X86 : 중소기업부터 대기업까지 가장 많이 사용하는 서버 유형, 가장 흔하다

서버 하드웨어 제조사

서버 소프트웨어

  • 오픈소스 소프트웨어: 누구나 무료로 다운받아 사용할 수 있다. ex) git, python 등
  • 상용 소프트웨어: 유료 소프트웨어 ex) 포토샵, 일러, 한글 등

서버 OS

  • UNIX : Main Frame에서 가장 많이 사용
  • LINUX : X86에서 가장 많이 사용
    • 오픈소스 LINUX: debian, ubuntu, centos
    • 상용 LINUX : redhat, suse
  • Microsoft windows server: X86에서 사용, 무료

웹 서버

  • apache
  • nginx
  • microsoft IIS

기타 서버 소프트웨어

  • filezilla : 로컬에 파일이 없지만 공유를 통해 로컬에 있는 것처럼 사용할 수 있게끔 해준다.
  • exchange : 메일 서버

🌍 네트워크

네트워크 개념

  • 네트워크: 그물처럼 연결된 상태
  • IT 네트워크: 하나의 거대 메인 프레임에서 처리하던 것을 여러 대의 단말기로 나누어 처리하기 위해 메인 프레임과 단말기들을 전화선으로 연결한 것. (메인프레임이 다 처리하면 한번에 동시에 처리할 수 없기 때문에 비효율적이다.)

네트워크 방식

  • 회선 교환 방식: 데이터 교환하기 위해 1:1로 연결된 데이터 통로를 만들고 데이터 교환이 완료될 때까지 회선을 계속 사용하는 방식. 연결된 동안 그 회선에 누구도 침범할 수 없다. (회선점유)
  • 패킷 교환 방식: 데이터를 패킷이라는 작은 단위로 나누고, 헤더라는 정보를 붙여 데이터를 교환하는 방식
    • 헤더: 송수신 포트번호, 패킷 순서 번호, 데이터 시작위치, 한번에 전송할 수 있는 데이터의 양
    • 패킷: 소포
    • 패킷이라는 택배 물품에 헤더라는 송장을 붙여 보낸다.
    • 필요한 만큼만 회선을 이용하며 같은 회선을 다른 사용자도 함께 사용할 수 있음
    • 패킷이 손상될 경우 데이터 전체를 다시 보내지 않고 손상된 패킷만 보냄

네트워크 프로토콜과 계층

  • 프로토콜: 패킷을 전송하기 위한 규칙(정해진 규칙을 따르기 때문에 통신이 가능함)
    • HTTP: 웹 서버와 웹 브라우저가 패킷을 교환할 때 사용하는 프로토콜
  • 계층: 송신 기기와 수신 ㄱ기기 사이에서 주고 받는 데이터는 각 계층 별로 처리됨
  • 계층 별로 처리: 한 계층에서 처리가 완료되면 임무를 다음 계층으로 전달
    • TCP/IP 참조 모델
    • OSI 7 참조 모델

네트워크 기기: L1

  • NIC: PC나 서버를 네트워크에 연결해주는 하드웨어 (유선/무선)
  • 허브: 전달받은 패킷의 복사본을 포트에 연결된 다른 모든 기기로 전송
    • 연결된 PC가 많을수록 성능이 떨어진다.
    • 하나의 허브를 여러대가 나눠서 사용하기 때문
  • AP: 패킷을 전파로 바꿔서 송출하는 기기, 무선과 유선 사이의 다리 역할을 수행

네트워크 기기: L2

  • MAC Adress: 컴퓨터들이 서로 데이터를 전송하기 위해 사용하는 물리적 주소로 NIC에 내장되어 있음
  • 이더넷
  • L2 스위치(이더넷 스위치)

네트워크 기기: L3

  • IP Address
  • Public IP Address
  • Private IP Address
  • 라우터
  • FPGA
  • ASIC
  • L3 스위치

네트워크 기기: L4

  • L4 스위치
  • 로드 밸런싱
  • 트래픽
  • 방화벽

네트워크 기기: L7

  • L7 스위치
  • 웹방화벽
  • 블랙리스트
  • 화이트리스트
  • 웹 트래픽 분석
  • XSS
  • SQL

네트워크 형태

  • LAN: 근거리 통신망
  • WAN: 원거리 통신망
  • 인터넷: WAN을 여러게 모으면 인터넷
  • 월드와이드웹: 인터넷을 통해 사람들이 정보를 공유할 수 있는 공간
  • VPN: 인터넷 상에서 가상의 전용선을 만들어 통신할 수 있게 하는 기술
  • DMZ: 비무장지대, 외부네트워크와 내부 네트워크의 중간지점
    • 내부망에는 존재하나 외부망에서 접근할 수 없는 영역으로 외부망에 잇는 해커의 공격으로부터 기업의 중요한 서버와 클라이언트를 보호하기 위해 사용


🌍 스토리지

  • 스토리지: 저장장치를 다수 장착한 대용량 고속 저장 장비로 서버 및 클라이언트와 네트워크로 연결해서 사용
  • 저장장치: 컴퓨터의 데이터를 저장하기 위한 비휘발성의 기억장치
  • 스토리지 데이터 저장 방식 : RAID
    • 여러 개의 디스크 중 일부에 데이터를 중복 저장하는 기술
    • RAID 0: 데이터를 여러 디스크에 분산 저장하여 하나의 디스크처럼 사용, 성능이 좋지만 장애 시 데이터는 모두 손실됨.
    • RAID 1: 데이터를 다른 디스크에 동일하게 중복 저장하여 안정성이 높지만 비용이 많이 듬.
    • RAID 5: 디스크에 패러티 정보를 ㄹ저장해 장애 시 패러티를 토대로 복구할 수 있음. 일정 수준의 성능과 안정성 확보
    • RAID 6: RAID 5 방식에 패러티를 하나 더 추가하여 안정성을 더욱 향상시킨 방법.
  • JBOD: 2개 이상의 디스크를 하나의 디스크처럼 만들어 주는 것.
  • DAS
  • NAS
  • SAN
    • 대용량의 데이터를 네트워크를 통해 빠른 속도로 전송할 수 있는 고성능 스토리지

파일 스토리지

  • 하나의 파일을 하나의 공간에 저장
  • 데이터를 파일과 폴더로 이루어진 계층 구조에 저장
  • 전통적인 방식
  • 데이터 양이 늘어날 수록 성능이 떨어짐
  • NAS

블록 스토리지

  • 하나의 데이터를 일정한 크기의 블록으로 나눠서 저장
  • 대규모 트랜잭션이 필요한 환경에 주로 활용
  • 비용이 많이 들고 메타데이터 처리에 한계가 있어 비정형 데이터 처리에 불리
  • 정형데이터
  • SAN

오브젝트 스토리지

  • 오브젝트라는 개별 데이터 단위로 분산 저장
  • 비정형데이터
  • AWS S3

백업

  • 백업: 데이터를 임시로 다른 장치에 저장하여 문제가 있을 때 복구할 수 있도록 준비해 두는 것
  • 스냅샷: 마치 사진 찍듯이 특정 시점에 스토리지의 파일 시스템을 포착해 보관하는 기술
  • 백업 하드웨어: 백업을 위한 전용 스토리지

🌍 데이터베이스

  • 데이터베이스: 여러 사람이 공유하여 사용할 목적으로 체계화해 통합, 관리하는 데이터의 집합, 응용시스템들의 통합된 정보들을 저장하여 운영할 수 있는 공용 데이터들의 묶음.
  • DBMS: 사용자들이 DB안에 있는 데이터를 접근할 수 있도록 해주는 소프트웨어.
  • 관계형 DBMS: 테이블이라는 최소 단위로 구성하며 이 테이블은 열과 행으로 이루어짐.
  • SQL: 구조적 데이터 질의 언어, 데이터베이스에서 데이터를 조회하기 위한 언어
  • NoSQL: 대용량 데이터를 분산 처리하기 위한, SQ이 아닌 또 다른 기술을 채택한 오픈소스 데이터베이스
  • DB IDE: IDE, DB 엔지니어, DBA, 개발자가 사용하는 DB 개발 도구
  • 상용 DB IDE: GUI 지원, 다중 DB 지원, Query 자동완성, 관리자를 위한 기본 모니터링 도구 제공

🌍 온프레미스

  • 온프레미스: 기업이 자체 시설에서 보유하고 직접 유지 관리하는 프라이빗 데이터 센터
  • 3Tier 아키텍처: 애플리케이션 운영 환경이 컴퓨팅, 네트웤, 스토리지로 구성된 전통적인 아키텍처
  • 가상화: 물리적인 하드웨어가 보유한 자원 효율성을 향상시키기 위해 사용하는 기술
    • 서버 가상화: 하이퍼바이저를 통해 가상머신을 생성, 여러개의 OS를 운영하는 기술
    • 데스크탑 가상화: 데이터는 서버에 저장하고, 서버에서 클라이언트에 업무환경만 제공해 주는 기술 (컴퓨터에 저장 X, 다 서버로 바로 저장된다. -> 보안을 위해)
    • 네트워크 가상화: 다수의 물리적 네트워크를 하나의 가상 네트워크로 구성해 사용하는 기술
    • 스토리지 가상화: 물리서버와 디스크와 스토리지를 하나의 가상 스토리지 풀로 묶어 사용하는 기술
  • HCI: 컴퓨팅, 스토리지, 네트워크를 가상화시켜 단일 시스템으로 운영
  • SDDC 가상화: 데이터 센터 구성 요소의 모든 것을 소프트웨어로 통합 관리
  • SDC + SDS + SDN + Management Platform 4가지가 모두 포함되어야 진정한 SDDC라고 할 수 있음.

🌍 클라우드

  • 클라우드: IT인프라 자원을 직접 보유해서 사용하는 것이 아닌 다른 기업의 IT인프라 자원을 빌려서 쓰는 것
  • 클라우드 비용: 자원을 빌려 쓴 것 만큼의 사용료를 월 과금 형태로 지불

  • IaaS: IT인프라 자원 전체를 빌려다 씀, OS 및 각종 소프트웨어 설치 필요

    • AWS, AZURE, GCP, NCP, KT CLOUD, NHN CLOUD 등
  • PaaS: 이미 설치된 OS를 빌려다 씀, 애플리케이션 설치 필요

    • AWS ELASTIC VEANSTALK, AZURE SQL DB, GOOGLE BIGQUERY 등
  • SaaS: 소프트웨어를 빌려다 씀

    • MICROSOFT 365, GOOGLE WORKSPACE, ADOBE CC, ZOOM, GROUPWARE 등
  • 온프레미스: 기업이 직접 IT인프라를 운영

  • 퍼블릭 클라우드: 다른 기업의 IT인프라를 빌려다 씀

  • 프라이빗 클라우드: 기업이 보유한 IT인프라를 클라우드 서비스처럼 기업 내에서 활용

  • 하이브리드: 프라이빗 클라우드 + 퍼블릭 클라우드

  • 멀티 클라우드: 퍼블릭 클라우드 + 퍼블릭클라우드 (피치못한 장애가 발생한 경우를 방지하기 위해서, 서비스 안정성을 높임)

  • 컨테이너: Container, 리눅스 기반 애플리케이션 운영을 위한 프로세스 격리 기술

  • 컨테이너 런타임: Container Runtime, 컨테이너를 다루는 도구

  • 도커: Docker, 컨테이너 기술을 누구나 쉽게 사용할 수 있도록 만든 컨테이너 런타임 중 가장 유명한 오픈소스 프로젝트

  • 컨테이너 vs 가상머신: 컨테이너 앱 별로 가상화 vs VM은 OS 별로 가상화

  • 쿠버네티스: 다수의 컨테이너를 효율적으로 운영, 관리하기 위한 도구 (오픈소스, 무료)

    • 구글이 오픈소스로 공개, 현재 기업 환경에 맞는 유료 쿠버네티스 서비스가 다수 존재 (EKS, AKS, GKE 등)
  • 파드: 앱이 운영되는 컨테이너들의 모음

  • 노드: 파드가 운영되는 물리 서버 또는 가상 머신, 워커 노드라고 부름

  • 클러스터: 노드들의 집합

  • 마스터: 다수의 워커 노드들 및 그 하위의 파드와 컨테이너를 관리하는 노드


🌝 개발자가 알아야 할 IT인프라 운영 및 관리 기술

🌍 개발 모델 및 방법론

개발 모델

  • 모놀리식 아키텍처: 애플리케이션 계획, 설계, 개발, 테스트, 배포 모든 과정을 한번에 수행하는 모델
  • 마이크로서비스 아키텍처: 애플리케이션의 각 요소 별로 계획, 설계, 개발, 테스트, 배포하는 모델

개발 방법론

  • 워터폴: 요구사항 정의 -> 디자인 -> 개발 -> 테스트 -> 배포 과정이 수차적으로 진행
  • 애자일: 변화하는 고객의 요구 사항에 빠르게 대응하기 위한 민첩한 개발 방식으로, 작은 단위 별로 디자인 -> 개발 -> 테스트 과정을 반복
  • 데브옵스: 개발 및 테스트부터 배포 및 운영까지의 업무를 통합해서 앱 개발 및 배포 속도를 높이려는 접근방식
  • CI/CD: 연속적인 통합 / 연속적인 배포
    • 애플리케이션 개발 및 배포 단계를 자동화하여 보다 짧은 주기로 빠르게 애플리케이션을 제공하는 방법론
  • No Code: 코딩 경험이 전혀 없는 사람을 위한 개발 접근 방식, 코딩을 완전히 건너뛰고 GUI 환경에서 앱 개발 가능
  • Low Code: No Code와 동일하게 GUI를 활용하나 커스텀 코딩 가능, 좀 더 수준이 높음, 개발자 대상
  • 시민 개발자: 개발자가 아니지만 업무용 소프트웨어를 직접 개발하는 임직원

🌍 앱 운영 관련 기술

고가용성

  • 서버 하드웨어 구성요소: 다양한 부품이 서로 유기적으로 연결되어 있음
  • 서버 하드웨어 장애: 서버의 모든 요소 마다 장애가 발생할 수 있음
  • 서버 소프트웨어 구성요소: OS, OS 기본 프로그램, 다양한 애플리케이션이 함께 동작
  • 서버 소프트웨어 장애: OS 자체 버그, 보안 취약점, 애플리케이션 문제 등으로 인한 장애 발생
  • SPOF: 단일 장애 지점, 장애가 발생하면 전체 시스템이 다운되는 지점.
  • 고가용성: 시스템이 긴 시간동안 장애 없이 안정적으로 운영되도록 취하는 조치
  • 이중화: 서비스의 안정성을 위해 각종 자원(하드웨어, OS, 미들웨어, DB 등)을 이중 혹은 그 이상으로 구성하는 기술
    • 각 요소 별로 이중화 하는 방법이 다르며, 2대로 이중화 한다 하더라도 장애 발상 가능성을 완벽하게 배제하기 어려움
    • 두 서버를 모두 운영해야 하기에 비용 증가, 자원 낭비라는 단점이 있음.
  • 클러스터링: 여러 대의 컴퓨터를 병렬로 연결한 시스템으로, 여러 대의 서버를 가상의 하나의 서버처럼 사용하는 기술
  • Failover: 실패를 끝냄, 장애 대비 기능, 실제 운영 시스템에 이상이 생겼을 때 예비 시스템으로 자동 전환
  • Failback: 실패상태에서 정상으로 되돌림, 실제 운영 시스템을 장애 발생 전 단계로 전환

모니터링

  • 모니터링: 지속적인 감시, 감찰을 통해 대상의 상태나 가용성, 변화 등을 확인하고 대비하는 것
    • 시스템의 상태나 상황에 문제가 발생하면, 즉각 관리자에게 알림을 보내 빠르게 대처할 수 있도록 도와줌
  • 서버 모니터링: 서버 하드웨어 자원 보유 현황, 상태, 자원 사용 현황을 지표로 보여줌
  • 애플리케이션 모니터링: JAVA 애플리케이션의 사용자 수, 자원 사용 현황, 트랜잭션 상태 등을 지표로 보여줌
  • DBMS 모니터링: 데이터베이스 성능을 향상 최상의 상태로 유지할 수 있도록 도와줌
  • 네트워크 모니터링: 네트워크의 전반적인 상태를 분석해 안정적인 네트워크를 제공할 수 있도록 도와줌
  • 클라우드 모니터링: 클라우드 자원 사용 현황 및 운영하는 애플리케이션 상태를 보여줌
  • 클라우드 비용 모니터링 플랫폼: 자원 사용량에 따라 과금되는 클라우드 서비스 비용을 상세히 보여줌
  • 옵저버빌리티: 관측가능성 혹은 관측능력, 전통적인 모니터링이 가진 한계를 극복한 가시성 확보 방안
    • Metrics
    • Traces
    • Logs

자동화

  • 자동화: 정보 기술 서비스 및 솔류션을 제공하는데 사용되는 하드웨어, 소프트웨어, 네트워킹 구성 요소, 운영체제, 데이터 스토리지 구성 요소를 제어하기 위해 사람의 개입을 줄이면서 임무를 수행하는 기술을 사용하는 것
  • IaC: 개발자가 직접 코드를 만들어 IT인프라를 생성, 배치, 관리하는 기술
  • 업무 구성: playbook이라는 템플릿을 제공해 어떤 업무를 자동화할 것인지 손쉽게 구성 가능.
  • Job 워크플로우 생성: 업무 Playbook을 구한 다음, 구체적으로 어떻게 실행될 것인지 워크플로우 생성.
  • AIOps: AI + Ops, IT운영의 자동화 및 관리를 위해 빅데이터 분석에 머신러닝을 적용하는 것.

🌍 보안 관련 기술

엔드포인트 보안: 악성코드 종류

바이러스

  • 컴퓨터를 감염시키는 프로그램
  • 하드웨어 오작동을 유발하여 간접적으로 손상을 입힘.

  • 복제본을 네트워크를 통해 다른 컴퓨터로 전파시키는 악성 프로그램.
  • 독립실행 가능, 추가적인 악성프로그램 유포

트로이목마

  • 정상적인 프로그램으로 위장한 악성프로그램

랜섬웨어

  • 사용자 동의 없이 컴퓨터에 설치하고 무단으로 데이터를 암호화시켜 인질로 잡은 뒤 금품을 요구하는 악성 프로그램

엔드포인트 보안: 소프트웨어

  • Endpoint: 기업 네트워크에 연결된 최종 단계의 기기 / PC, 노트북, 스마트폰, 태블릿 등
  • AV: 컴퓨터의 악성코드를 찾아내고 치료, 방어하기 위한 소프트웨어
  • EDR: AV에서 진화된 보안 솔루션, 악성코드를 실시간으로 감지하고 분석 및 대응해서 피해확산을 막는 솔루션
  • 방화벽: 네트워크 상의 패킷을 모니터링하고 허용되지 않은 접근은 차단하는 보안 장비
  • IDS/IPS: 네트워크 침입 탐지 및 방지 시스템
  • UTM: 방화벽, 침입탐지 및 방지, VPN, AV, 필터링 등 다양한 보안기능을 제공하는 통합위협관리 솔루션
  • NAC: 유무선 환경에서 내부 네트워크망으로 접근하는 다양한 단말기기를 통제하기 위한 보안 솔루션
  • DB 접근제어: 보안을 위해 데이터베이스 접근을 통제하고 관리하는 솔루션
  • 데이터 거버넌스: 데이터의 보안, 개인정보 보호, 정확성, 가용성, 사용성을 보장하기 위해 수행하는 모든 작업
  • RBAC: 권한이 있는 사용자들에게 한해 시스템 접속을 허용하는 접근제어 방법
  • IAM: 기업에서 오직 적합한 사람과 디바이스만 필요할 때 원하는 애플리케이션과 리소스 및 시스템에 접근할 수 있도록 허용하는 구조.
    • 기업의 데이터를 안전하게 보호하기 위해 IAM을 사용한다.
    • IT관리자의 업무 부담을 줄이고 실수를 방지하기 위해 IAM을 사용한다.
    • 다수의 SaaS 및 서비스를 사용하는 사용자의 생산성 향상을 위해 IAM을 사용한다.

Zero Trust: Zero Trust 개념

  • Zero Trust: 신뢰가 없다, 아무도 믿지 않는다라는 컨셉의 보안 모델
  • IT인프라 보안 환경이 너무 복잡해 짐, 관리 포인트가 너무 많아진 것이 가장 큰 원인

🌍 자주 발생하는 IT인프라 장애 유형 및 대처 방안

404 Not Found

  • 웹페이지를 표시할 수 없다는 뜻
  • 서버 자체는 존재하나 해당 서버에 클라이언트가 요청한 데이터가 없을 때 나타남, 잘못된 정보를 요청해서 보여줄 게 없음
  • 대처방안: 호스팅하고 있는 서비스의 DNS정보가 변경되었는지 확인 필요

503 Service Temporarily Unavalilable

  • 서비스를 일시적으로 이용할 수 없습니다라는 뜻
  • 너무 많은 트래픽이 일시적으로 몰릴 때 생기는 오류
  • 서버에 있는 데이터에는 문제가 없으나 서버 과부하로 인해 서버의 데이터에 접속할 수 없는 상태
  • 대처방안: 웹서버 앞단에 로드밸런서를 두어 트래픽 분산
  • 대처방안: 웹서버와 애플리케이션 서버 사이의 설정 점검

IT인프라 장애유형 파악 프로세스

장애인지 - 긴급도 및 비즈니스 영향도 판단 - 장애 처리 및 대응 - 이슈 해결 및 보고

profile
[공부블로그] https://jeong-yooon.tistory.com/

0개의 댓글