IT Infrastructure
: 애플리케이션을 가동시키기 위한 하드웨어 및 OS, 미들웨어, 네트워크 등의 시스템 기반
ㆍ기능적 요구사항
: 시스템에서 수행하는 기능 및 역할
ㆍ비기능적 요구사항
: 시스템의 성능, 안정성, 확장성, 보안
인프라의 구성요소
ㆍ하드웨어
: 서버 장비 본체 및 스토리지, 전원 장치 등
: 넓은 의미에서 데이터 센터의 설비도 포함
ㆍ네트워크
: 사용자가 원격으로 접근할 수 있도록 서버를 연결하는 도구
: 라우터, 스위치, 방화벽, 네트워크 장비, 케이블, 무선 연결을 위한 Access Point
ㆍ운영체제
: 하드웨어와 네트워크 장비를 제어하기 위한 소프트웨어로 리소스나 프로세스를 관리
: 클라이언트OS (Windows / macOS 등)
: 서버OS (Windows Server / Linux / Unix 등)
ㆍ미들웨어
: 서버 상에서 서버가 특정 역할을 하도록 기능을 제공하는 소프트웨어
서버의 형태
ㆍ온프레미스
: 데이터 센터나 서버실에 서버를 두고 직접 관리하는 방식
: 서버가 다운되지 않는 것을 통해 가용성을 유지
: 기밀성과 보안이 중요한 경우 유리함
: 초기 투자비용 크고 이후 사용 예측량을 가늠하기 힘들고 사용량이 적어도 유지 비용이 그대로 나간다는 단점 존재
ㆍ퍼블릭 클라우드
: AWS, GCP, MS Azure 등의 클라우드 서비스를 통해 서버를 대여 받는 방식
: IaaS (인프라를 클라우드로 제공)
: PaaS (인프라 생성이 필요없이 필요한 플랫폼을 제공)
: SaaS (소프트웨어 및 관련 데이터는 중앙에 호스팅되고 사용자는 클라이언트를 통해 이용)
: 트래픽을 조절하기 쉽고 비교적 안정적으로 가용성을 유지할 수 있음
: 빠른 서비스 제공이 필요하거나 초기 투자비용이 적은 경우 유리
ㆍ프라이빗 클라우드
: 클라우드 컴퓨팅 서비스와 인프라가 인트라넷이나 데이터 센터 내에서만 호스팅 되는 방식
ㆍ하이브리드
: 온프레미스와 클라우드를 함께 사용하는 방식
하드웨어
ㆍCPU
: 서버 내에서 실행되는 작업과 연산을 처리하는 중앙 처리 장치
: 코어가 많거나 캐시 용량이 클수록 높은 성능을 보이며, 서버용 CPU가 따로 있음
ㆍGPU
: 그래픽카드에 내장된 연산장치
: CPU에 비해 구조가 단순하여 머신러닝이나 딥러닝의 학습에 유리함
: 딥러닝을 사용하는 서버의 경우 필수
ㆍMemory
: 서버 내에서 작동하는 작업들을 임시로 보관하는 주기억장치
: 용량이 클 수록 좋으며, 램 타이밍, 클럭 등에 의해 성능이 좌우됨
: 서버용으로는 전력소모가 적고 오류 처리가 탑재된 메모리를 사용
ㆍStorage
: 데이터를 영구적으로 저장하는 보조기억장치
: 용량이 클 수록 좋으며, 읽기속도 및 쓰기속도에 의해 성능이 좌우됨
: 읽기 및 쓰기 속도가 중요하지 않은 데이터는 주로 HDD에 저장
: 자주 사용되는 데이터의 경우 읽기 및 쓰기 속도가 빠른 SSD에 저장
: 서비스가 끊기지 않게하는 HA (High Availability. 고가용성)을 유지하기 위해 RAID를 통해 백업 및 분산저장
: 클라우드 서비스에서는 Master-Slave 구조를 통해 고가용성을 유지
ㆍUPS (무정전 전원 공급 장치)
: 서버실 및 건물의 전원이 차단됐을 경우 서버의 전원이 꺼지지 않게 전원을 공급하는 장치
ㆍHub
: 여러 대의 네트워크 장비를 하나의 네트워크로 구성하기 위한 장치
: 데이터가 도착하면 네트워크 내 모든 장치에 전달
ㆍSwitch / MAC Bridge / Brdgeing Hub / Switching Hub 등
: 여러 대의 네트워크 장비를 하나의 네트워크로 구성하는 장치
: 허브와 달리 데이터를 필요로 하는 장치에만 데이터가 전송됨
: 전이중 통신방식을 통해 향상된 전송 속도를 가짐
ㆍRouter
: 데이터(패킷)의 경로를 지정하여 다음 장치로 전향시키는 장치
: 서로 다른 네트워크 간의 중계 역할
ㆍGateway
: 서로 다른 통신망 및 서로 다른 프로토콜을 사용하는 네트워크 간 통신을 가능하게 하는 장치 및 소프트웨어
: 다른 네트워크로 들어가는 입구 역할을 수행하는 네트워크 포인트
: 프로토콜의 경우 적절히 변환
ㆍServer Rack
: 라우터, 허브, 스위치 등의 장비를 보관하는 케이스 (주로 19인치를 사용)
ㆍ방화벽
: 보안을 위해 내부 네트워크와 외부 네트워크와의 통신을 제어하는 장치 및 소프트웨어
: 패킷 필터링 형 (포트번호나 IP주소를 바탕으로 패킷을 필터링)
: 애플리케이션 게이트웨이 형<프록시 서버> (응용계층에서 외부와의 통신을 제어 / 새로운 세션을 생성하여 역할 수행)
네트워크
ㆍOSI 7계층 및 TCP/IP 모델
ㆍ프록시 서버
ㆍ포트포워드 / DMZ / Twin IP
ㆍ로드밸런싱
ㆍ라우팅
ㆍ프로토콜
인프라 관리
ㆍ모니터링
ㆍImmutable Infrastructure
: 운영 환경을 이미지 파일로 생성하여 배포하는 것
ㆍInfrastructure as Code (IaC)
: 프로그램 코드를 기반으로 인프라를 구성하고 관리하는 방식
: 버전관리가 용이하며 다수의 서버를 관리하는데 있어 편리함
: 장애 발생시 효율적인 대처 가능
ㆍBootStrapping (부트스트래핑)
: OS 시작을 자동화하는 인프라 관리 도구
: OS 설치 및 가상환경 설정, 네트워크 구성 설정 등 수행
: Vagrant 등
ㆍConfiguration
: OS 및 미들웨어의 설정을 자동화하는 인프라 관리 도구
: Ansible / Chef / Puppet 등
ㆍOrchestration
: 여러 서버의 관리를 자동화
: Kubernetes / Docker Swarm / Mesos 등
ㆍCI/CD 및 자동화
ㆍ가상화
ㆍ컨테이너
Refference
https://www.vmware.com/kr/topics/glossary/content/private-cloud.html
'Development > Development' 카테고리의 다른 글
[소프트웨어 아키텍처] MVC / MVP / MVMM / Redux / VIPER 비교 (0) | 2022.02.26 |
---|---|
웹 개발자가 알아야 할 웹 아키텍처 (0) | 2022.02.25 |
웹 크롤링을 하기 전에 알아야 할 것 들 (2) | 2021.04.04 |
[백엔드 개발자 로드맵 2020] DNS (Domain Name Service) (0) | 2021.04.02 |
[백엔드 개발자 로드맵 2020] GraphQL (GQL) (0) | 2021.03.18 |