KT 에이블스쿨 59일차(1)

박기범·2023년 4월 24일
0

에이블스쿨

목록 보기
65/95

오늘은 긴 미니프로젝트의 여정이 끝나고 다시 이론 학습을 시작으로 Step2의 여정이 시작되었습니다.



IT인프라

금일 수업은 IT인프라에 전반적인 내용을 학습했습니다.



서버

▶서버와 클라이언트

서버란 클라이언트에게 네트워크를 통해 정보나 서비스를 제공하는 장치를 의미하고 클라이언트는 네트워크를 통해서 서버에 접속해서 정보나 서비스를 이용하는 장치를 의미합니다.

클라이언트가 서버에세 요청을 보내고 서버는 해당 요청에 맞는 정보나 서비스를 응답해줍니다.

▶서버의 역할과 종류

웹 서버는 정적 콘텐츠를 클라이언트에게 전달해줍니다.
애플리케이션 서버는 동적 콘텐츠를 클라이언트에게 전달해줍니다.
DB서버는 애플리케이션이 정보 조회를 요청하면 애플리케이션 서버에 응답을 해줍니다.
리복시 프록시 서버는 클라이언트와 서버가 서로 데이터를 주고받을 수 있도록 전달해주는 역할을 합니다. 요청이 너무 많은 경우 리복시 프록시 서버가 할당량을 제어해줍니다. 즉, 부하분산이 가능하게 해줍니다.

포워드 프록시(캐시) 서버는 미리 데이터를 저장해두었다가 요청이 오면 데이터를 전달해줍니다.

서버의 역할은 즉, 클라이언트의 요청을 수행하기 위해 다양한 서버들끼리 통신한 후 결과를 클라이언트에게 전달합니다.

▶서버 하드웨어와 소프트웨어

서버 하드웨어의 폼팩터는 랙 마운드형 서버, 줄여서 이라고 부르는데 랙에 밀어 넣는 형태의 서버를 의미합니다. 블레이드형 서버는 랙 마운트형 서버를 더 얇게 만들고 케이스가 없는 형태의 서버를 의미합니다.

타워형 서버는 데스크탑과 유사한 형태이며, 고사양의 CPU를 꽂을 수 있습니다.

Main Frame은 금융권 같은 대기업에서 사용하기 위한 서버 하드웨어 유형중 하나이며 경향화 버전으로 UNIX가 있습니다. 중소기업에서 대기업까지 가장 많이 사용하는 유형은 x86입니다.

서버 소프트웨어는 오픈소스와 상용 소프트웨어로 나눌 수 있습니다. x86에서 가장 흔하게 사용되는 os는 리눅스입니다.
웹 서버로는 아파치, 마이크로소프트 IIS가 있습니다.
기타 서버 소프트웨어로는 FileZillaExchange가 있습니다.



네트워크

▶네트워크 개념

네트워크의 시작은 여러대의 단말기로 처리하기 위해 메인 프레임과 단말기들을 전화선으로 연결하는 것이 네트워크의 시작입니다
회선 교환 방식은 데이터를 교환하기 위해 1:1로 연결된 데이터 통로를 만들고 데이터 교환이 롼료될 때까지 회선을 계속 사용하는 방식입니다.
패킷 교환 방식은 필요한 만큼만 회선을 이용하며 회선을 다른 사용자도 사용이 가능합니다.
프로토콜이란 패킷을 전송하기 위한 정해진 규칙입니다.

▶네트워크 프로토콜과 계층

송신 기기와 수신 기기 사이에서 주고 받는 데이터는 각 계층별로 처리가 이루어지는데 TCP/IP 참조 모델, OSI 참조 모델이 있습니다.

현업에서는 주로 5계층을 사용하면 L1, L2, L3, L4, L7 이라고 각 계층을 부릅니다.

TDU는 Protocol Data Unit의 약자로 네트워크 계층에서 처리하는 데이터 단위입니다. 각 계층별로 PDU명칭이 다릅니다.

▶네트워크 기기, 형태

L1은 물리 계층으로 PC나 서버를 네트워크에 연결해주는 하드웨어 기기들이 사용됩니다.
대표적인 기기로는 허브가 있는데 전달받은 비트의 복사본을 포트에 연결된 다른 모든 기기에 전송을 합니다.

L2는 MAC Address로 컴퓨터들이 서로 데이터를 전송하기 위해서 사용하는 물리적 주소로 NIC에 내장되어 있습니다. 해당 기기만의 고유번호는 사람의 주민번호라고 생각하면 됩니다. 이더넷을 사용하며 네트워크 환경에서 데이터를 주고 받기 위한 가장 대표적인 기술의 규격입니다. 대표적인 기기로는 스위치가 있으며 단맑디가 보낸 프레임의 헤더에 있는 MAC Adress를 보고 같은 네트워크의 다른 단말기로 프레임을 전송합니다.

L3는 IP Address로 서로 다른 네트워크에 연결되어 있는 컴퓨터들이 데이터를 전송하기 위해 사용하는 논리적인 주소로 OS상에서 설정한 주소입니다. 공인 IP주소는 네트워크와 외부의 네트워크가 통신하기 위해 사용되는 주소입니다. 사설 IP 주소는 같은 네트워크 안에서 통신하기 위해 사용되는 주소입니다. 대표적인 기기로는 라우터가 있으며 단말기가 보낸 패킷의 헤더에 있는 IP Address를 보고 다른 네트워크의 다른 단말기로 패킷을 전송하는 것입니다.

L4 스위치는 IP주소와 포트번호를 참조하여 트래픽을 분산해 서버로 전송하는 로드 밸런싱 기기를 의미합니다. 로드 밸런싱이란 들어오는 트래픽을 둘 이상의 서버로 분산 전송을 해서 부하를 분리해주는 것을 의미하면 트래픽은 서버와 네트워크 장치에서 일정 시간 내에 흐르는 데이터의 양을 의미합니다. 방화벽 기능도 존재하는데 IP주소와 포트번호를 참조하여 통신을 허가하거나 차단하는 기능입니다.

L7 스위치는 IP주소와 포트번호 + 애플리케이션 콘텐츠 정보를 참조해서 로드 밸런싱을 하는 기기입니다. 웹 방화벽이라는 기능이 있는데 웹 애플리케이션 서버를 안전하게 보호하는 기능을 수행합니다. 블랙리스트, 화이트리스트, 웹 트랙칙 분석 등 다양한 보안을 수행하는 계층입니다. 블랙리스트는 리스트에 있는 IP를 제외하고 모든 IP에 대해 통신을 허용하고 화이트리스트는 리스트에 있는 IP만 통신을 허용합니다. 웹 트래픽 분석은 사용자가 서버로 보내는 트래픽을 분석하여 정책에 따라 조치가 이루어집니다.

네트워크의 형태에는 여러 종류가 있습니다. LAN은 근거리 통신망으로 가정이나 기업 내부 등 한정된 범위의 네트워크를 의미합니다. WAN은 원거리 통신망으로 물리적으로 거리가 매우 떨어진 곳의 네트워크를 연결하는 것을 뜻합니다. 인터넷은 다수의 WAN이 연결된 것을 의미합니다. LAN환경에서 L3의 스위치를 추가해서 구성합니다. VPN은 인터넷 상에서 가상의 전용선을 만들어 통신할 수 있게 하는 기술을 뜻합니다. 예를들어 기업 본사 LAN과 지사의 LAN을 연결할 때 인터넷을 거치지 않고 이 두 네트워크만의 전용선을 만들어 통신을 합니다. DMZ는 외부 네트워크와 내부 네트워크의 중간 지점을 뜻합니다. 내부망에는 존재 하지만 외부망에서 접근할 수 없는 영역으로 외부망에 있는 해커의 공격으로부터 기업의 중요한 서버와 클라이언트를 보호하기 위해 사용됩니다.



스토리지

▶스트로지 개념 및 종류

스토리지는 저장장치를 다수 장착한 대용량 고속 저장 장비로 서버 및 클라이언트와 연결하여 사용합니다. 주 목적은 데이터 공유에 목적이 있으며, 데이터 관리와 보를 위해 별도의 소프트웨어도 존재합니다. 스토리지에서 저장하는 방식을 RAID라고 합니다. 여러개의 기스크 중 일부에 데이터를 중복 저장하는 기술입니다. 즉, 복구를 위해 중복저장하는 기술을 RAID라고 합니다.
JBOD는 2개 이상의 디스크를 하나의 디스크처럼 만들어줍니다. 기존에 사용하던 스트뢰지의 용량을 늘리고자 했지만 더 디스크를 꽂을 수 없을 때, 스토리지 하드웨어를 추가해서 기존의 스토리지와 연결해주는 역할을 수행합니다.

스토리지의 종류에도 여러가지가 있습니다. DAS는 직접 연결한 스토리지로 전송속도가 빠르고 스토리지와 연결된 서버에서 개별적인 파일 시스템을 사용해서 관리가 가능합니다. NAS는 스토리지 전용 OS로 데이터를 관리하는 독립적 다기능이 가능한 스토리지입니다. SAN은 NAS의 느린 속도를 해결하고자 나왔으며 대용향의 데이터를 전용 네트워크를 통해 빠른 전송이 가능합니다. 스토리지 단독으로 데이터 저장만 가능하며 읽기/쓰기 작업이 불가능함으로 서버와 연결이 되어 있어야 합니다.

스토리지 유형에는 파일 스토리지, 블록 스토리지, 오브젝트 스토리지가 있습니다. 파일 스토리지는 데이터가 파일과 폴더로 이루어진 계층 구조로 저장되어 있으며 데이터가 많을수록 성능이 떨어진다는 단점이 있으며 NAS가 주로 사용됩니다. 블록 스토리지는 데이터를 일정한 크기의 블록으로 나눠서 분산 저장을 합니다. 비용이 많이 들고 메타 데이터 처리에 한계가 있어 비정형 데이터 처리에 단점이 있습니다. 주로 SAN이 사용됩니다. 오브젝트 스토리지는 오브젝트라는 개별 데이터 단위로 분산 저장되며 오브젝트 수정이 불가능해 잦은 수정이 필요한 정형 데이터와는 맞지 않으며 AWS가 주로 사용됩니다.



백업 개념 및 종류

백업은 데이터를 임시로 다른 저장장치에 저장했다가 문제가 발생시 복구할 수 있도록 준비해둔 것을 의미합니다.
Full-Backup은 백업 주기마다 데이터 전체를 백업하는 것입니다.
Incremental-Backup은 첫째 날에 데이터를 전체를 백업하고, 그 다음일은 증가된 데이터만 백업을 진행합니다.
스냅샷이란 특정 시점의 스토리지 파일 시스템을 포착해서 보관하는 기술이면 Copy-On-Write(cow)스냅샷은 쓰기 작업 발생 시 복제 후 해당 복제본을 새로운 공간에 덮어쓰는 기술로 데이터가 변경될 때 한번 복제 후 데이터 쓰기가 수행됨으로 읽기 1번에 쓰기 2번이 발생합니다. Redirect-On-Write(row)스냅샷 기술은 쓰기 작업 발생시 새로운 공간으로 쓰기 위치를 재지정하는 기술로 쓰기 수행 한번에 쓰기 1번만 발생합니다. 따라서 row는 cow보다 부하가 적어서 작업이 빠릅니다.

백업을 위한 하드웨어와 소프트웨어도 존재합니다.



데이터베이스

여러사람들이 공유해서 데이터를 사용하고 관리하는 집합을 의미합니다. DBMS는 데이터베이스 하드웨어에 저장된 데이터 정보를 보여줍니다. 관계형 데이터베이스는 테이블 형태의 데이터로 쉽게 excel과 같이 표 형태로 저장된 데이터들의 저장소라고 생각하면 됩니다.

데이터베이스의 주요 용어가 몇 개 있는데, OLTP는 온라인 트랜잭션 처리를 의미하고, DW는 Data Warehouse의 약자로 거대한 데이터 저장소를 의미합니다. Data Mart는 용도별로 구분하여 저장한 데이터 저장소를 의미합니다. OLAP는 Oline Analytical Processing으로 온라인 분석 처리를 의미합니다.
NoSQL은 대용량 데이터를 분산 처리하기 위한 SQL이 아닌 또 다른 기술을 채택하여 사용한 오픈소스 데이터베이스입니다.
DB IDE는 DB엔지니어 혹은 개발자가 사용하는 DB 개발 도구입니다.



온프레미스

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

온프레미스는 기업이 자체 시설에서 보유하고 유지 관리하는 프라이빗 데이터 센터를 의미합니다. 3Tier 아키텍처는 애플리케이션 운영 환경이 컴퓨팅, 네트워크, 스토리지로 구성된 전통적인 아키텍처를 말합니다.
가상화는 물리적인 하드웨어가 보유한 자원 효율성을 향상시키기 위해 사용하는 기술을 말합니다.
서버 가상화란 하이퍼 바이저를 통해 가상머신을 생성하고 여러개의 OS를 운영하는 기술입니다.
데스크탑 가상화란 데이터는 서버에 저장하고, 서버에서 클라이언트에 업무 환경만 제공해줍니다.
네트워크 가상화란 다수의 물리적 네트워크를 하나의 가상 네트워크로 구성해서 사용하는 기술을 말합니다.
스토리지 가상화란 물리서버의 디스크와 스토리지를 하나의 가상 스토리지 풀로 묶어서 사용하는 기술을 의미합니다.
HCI는 컴퓨팅, 스토리지, 네트워크를 가상화시켜 단일 시스템으로 운영하는 것을 의미합니다. 기존 3-Tier대비 병목구간을 제거하여 자원 확장 시 성능이 선형적으로 늘어납니다.
SDDC는 데이터 센터 구성 요소의 모든 것을 소프트웨어로 통합관리하는 것을 말합니다. SDC+SDS+SDN+Management Platform 이 4가지를 모두 포함해서 가상화하는 것이 진정한 SDDC입니다.



클라우드

IT 인프라 자원을 직접 보유한 것이 아니라 다른 기업의 IT인프라 자원을 빌려쓰는 것을 의미합니다. 클라우드 비용이란 빌려 쓴 만큼 사용료를 지불하는 것으로 예시로는 AWS난 코랩이 있습니다.

호스팅은 자원 일부를 빌려쓰는 것을 의미하고 코로케이션은 특정 서버 자체를 빌려서 사용합니다. 클라우드는 특정 서버의 자원 혹은 서버 자체를 빌려 사용하는 것을 의미합니다.

IaaS는 IT인프라 전체를 빌려다 사용하는 것을 의미합니다. 각종 소프트웨어를 직접 설치해야합니다. PaaS는 이미 설치된 OS를 빌려다 사용하지만 애플리케이션은 직접 설치해야합니다. SaaS는 소프트웨어를 빌려다 사용합니다.

온프레미스는 기업이 직접 IT인프라를 운영하고 퍼블릭 클라우드는 다른 기업의 IT인프라를 빌려 사용하는 것입니다. 프라이빗 클라우드 기업이 보유한 IT인프라를 클라우드 서비스처럼 기업 내에서 사용하는 것을 의미합니다.
하이브리드 클라우드는 프라이빗 클라우드 + 퍼블릭 클라우드이며, 멀티 클라우드는 퍼블릭 클라우드 + 퍼블릭 클라우드를 의미합니다.

컨테이너는 리눅스 기반으로 애플리케이션 운영을 위한 프로세스 격리 기술입니다. 도커는 컨테이너 기술을 누구나 쉽게 사용할 수 있도록 만든 컨테이너 런타임 중 가장 유명한 오픈소스 프로젝트 입니다. 컨테이너와 가상머신의 차이는 컨테이너는 앱 별로 가상화가 이루어지지만 VM(가상머신)은 OS별로 가상화가 진행됩니다.
쿠버네티스는 다수의 컨테이너를 효율적으로 운영 관리하기 위한 도구입니다.
파드는 앱이 운영되는 컨테이너들의 모음을 의미합니다.
노드는 파드의 집합을 의미하며 워커 노드라고도 불립니다.
클러스터는 노드들의 집합입니다.
머스터는 다수의 워커 노드들 및 그 하위의 파드와 컨테이너를 관리하는 노드입니다.



IT인프라 운영 및 관리 기술

모놀리식 아키텍처는 에플리케이션 계획, 설계, 개발, 테스트, 배포의 모든 과정을 한번에 수행하는 모델이고 마이크로 서비스 아키텍처는 애플리케이션의 각 기능 별로 계획, 설계, 개발, 테스트, 배포를 진행하는 모델입니다.

개발방법론 중 워터폴은 순차적으로 과정을 진행합니다. 애자일방법론은 변화하는 고객의 요구사항을 빠르게 대응하기 위한 개발 방법론입니다.

데브옵스는 개발 및 테스트부터 배포 및 운영까지의 업무를 통합해서 앱 개발 및 배포 속도를 높이려는 방법입니다. 개발자가 직접 IT인프라를 활용해서 직접 만드는 것입니다.

CI/CD(연속적인 통합/ 연속적인 배포)방법론은 애플리케이션 개발 및 배포 단계를 자동화하여 짧은 주기로 빠르게 애플리케이션을 제공하는 방법론입니다.

No Code는 코딩 경험이 전혀 없는 사람의 접근 방식으로 GU환경에서 앱 개발을 합니다.

Low Code는 No Code와 동일하게 GUI를 사용하지만 커스텀 코딩이 가능해서 더 높은 수준의 개발이 가능합니다.

시민 개발자는 개발자가 아니지만 업무영 소프트웨어를 직접 개발하는 임직원입니다.



앱 운영 관련 기술

고가용성(HA)는 High Availability의 약자로 시스템이 긴 시간동안 장애 없이 안정적인 운영이되도록 취하는 조치를 의미합니다.
클러스터링은 여러대의 컴퓨터를 병렬로 연결한 시스템으로 여러대의 서버를 가상의 하나의 서버처럼 사용하는 기술입니다.
Failback은 실패상태에서 정상으로 되돌리는 기술로 실제 운영 시스템을 장애 발생 전 단계로 전환합니다
모니터링은 지속적인 감시, 감찰을 통해서 대상의 상태나 가용성, 변화등을 확인하고 장애가 발생하지 않도록 미리 막는 방법입니다.
서버 모니터링은 서버 하드웨어가 가진 자원가 상태를 지표로 보고 확인하는 것입니다.
애플리케이션 모니터링은 자원사용 현황 트랜잭션의 상태를 지표로 보는 것입니다.
네트워크 모니터링도 네트워크의 전반적인 상태를 보고 분석해서 안정적인 네트워크가 진행되도록 유지하는 것입니다.
클라우드 모니터링은 클라우드 제공하는 회사에서 최소한의 관리만 해주기 때문에 모니터링을 통해서 애플리케이션 상태를 보고 자원 현황을 확인해야합니다.
클라우드 비용 모니터링 플랫폼은 자원 사용량에 따라 과금되는 클라우드 서비스 비용을 상세히 볼 수 있으므로 과금이 예산보다 초과되지 않도록 확인하는 것이 중요합니다.
옵저버빌리티는 관측 가능성 혹은 관측 능력이라고도 불리며 전통적인 모니터링이 가진 한게를 극복한 가시성 확보 방안을 세웠습니다.



자동화

자동화는 사람이 개입하는 것을 최대한 줄이고 임무를 수행하는 기술을 의미합니다.
IaC는 개발자가 직접 코드를 만들어 IT인프라를 생성, 배치, 관리하는 기술입니다. 반복적인 작업을 코드로 처리함을써 업무시간을 획기적으로 단축시키고 오류를 사전에 방지할 수 있습니다.
AIOps는 AI + Ops로써, IT운영의 자동화 및 관리를 위해 빅데이터 분석에 머신러닝을 적용하는 것을 의미합니다.



보안관련 기술

엔드포인트 보안은 AV에서 진화된 보안 솔루션으로 악성코드를 실시간으로 감지하고 분석 및 대응해서 피해확산을 막는 솔루션입니다. 앤드포인트는 기업 네트워크에 연결된 최종단계의 기기를 의미합니다.(ex_ 노트북, 핸드폰)
방화벽은 네트워크 상의 패킷을 모니터링하고 허용되지 않은 접근을 차단하는 보안 장치입니다.
IDS/IPS는 네트워크 침입 탐지 및 방지 시스템입니다.
NAC은 유무선 환경에서 내부에 있는 네트워크망으로 접근하는 다양한 단말기를 통제하는 솔루션입니다. 허가한 기기만 접근할 수 있도록 하는 것입니다.
DB 접근제어는 보안을 위해 DB에 접근을 통제하는 솔루션입니다.
데이터 거버넌스는 데이터의 보안과 개인정보 보호능력 정확성을 보장하기 위해 수행하는 모든 작업을 통틀어서 데이터 거버넌스라고 합니다.
RBAC는 권한이 있는 사용자에게 한해 시스템 접속을 허용하는 접근 제어 방법입니다.

IAM은 기업에서 오직 적합한 사람과 디바이스만 필요할 때 원하는 애플리케이션 리소스 및 시스템에 접근할 수 있도록 허용하는 구조입니다. IAM이 필요한 이유는 기업의 데이터를 안전하게 보장하기 위함과 IT관리자의 업무 부담을 줄이고 실수를 방지하기 위함입니다. 예를들어 퇴사자가 발생했을 때 IAM에서 퇴사자 계정을 삭제한다면 IAM에 연계된 모든 시스템에서 퇴사자의 계정이 삭제되어 시스템이 접속을 거부할 수 있습니다. 또한, 다수의 SaaS및 서비스를 사용하는 사용자의 생산성을 향상할 수 있습니다. SSO는 Single Sign On의 약자로 계정 하나만으로 IAM에서 계정정보가 일치 한다면 다른 서비스들을 접속할 수 있게 합니다.

IAM의 발전 개요를 보면 사용자가 직접 관리하는 거에서 디바이스 별로 개별 관리하는 것으로 발전했다가 IAM 플랫폼을 통해 통합관리 하는 것으로 발전했습니다.

Zero Trust는 말 그대로 아무도 믿지 못한다라는 컨셉의 보안 모델로 기업에서 요구하는 보안 검증을 통과하기 전까지 접속을 허용하지 않습니다. 기존에는 방화벽만 뚫으면 정보를 모두 열람할 수 있었지만 Zero Trust는 계속해서 질문함으로써 권한 여부를 확인하고 허용 혹은 차단을 합니다. Zero Trust는 5가지 원칙을 기반으로 보안 모델을 만듭니다.

클라우드를 사용하는데 보안을 중요시 해야되는지에 대해 의문이 들겠지만 클라우드 책임 공유 모델이라고 있습니다. 이를 통해 IaaS, PaaS, SaaS에 따라 클라우드를 제공해주는 서비스 사에서 일부분만 책임을 지기 때문에 나머지 부분에 있어서는 사용자가 책임을 져야하므로 클라우드를 사용하더라도 보안은 중요합니다.

자주 발생되는 에러로 404 Not Found가 있는데 대처 방안으로 호스팅하고 있는 서비스의 DNS정보가 변경이 되었는지 확인할 필요가 있습니다. 503에러는 서비스를 일시적으로 이용할 수 없는 상태로 서버의 과부화가 걸렸다라고 생각하면 됩니다.

일반적으로 장애 유형 파악 및 프로세스는 장애를 인지 -> 긴급도 및 비지니스 영향도 판단 -> 장애처리 및 대응 -> 이슈해결 및 보고 순으로 진행합니다. 이런 과정을 걸친 후 같은 에러가 발생하면 더 빠르게 대응할 수 있습니다.







오늘 약 한달간 진행한 미니프로젝트의 주간이 끝나고 STEP2의 시작과 동시에 이론을 배웠는데 많은 양을 배우다보니 용어 중점으로 정리하게 되었습니다. 다만 깊게 배우지 못한 아쉬움이 남았습니다.




※공부하고 있어 다소 틀린점이 있을 수 있습니다. 언제든지 말해주시면 수정하도록 하겠습니다.
※용어에 대해 조금 공부 더 해서 수정하겠습니다.

profile
개발자가 되기 위한 한걸음

0개의 댓글