IT

On-Premise / Cloud Services

jeonganWkd 2020. 9. 29. 11:23

1. 온 프레미스(On Premise) 란?

  • 기업이 자체적으로 보유한 전산실 서버에 직접 설치해서 운영하는 방식
  • 클라우드 컴퓨팅 기술이 나오기 전 까지 기업 인프라 구축의 일반적인 방식이었다
  • 정보의 보안성이 높다는 장점이 있고, 시스템을 증설하거나 구축하는데에 시간과 비용이 많이 든다는 단점이 있다

2. 가장 기본적인 서버의 구조

  • API 서버와 데이터베이스로 구축한다
  • API 서버에는 웹 프레임워크를 설치한다
  • 데이터베이스에는 RDBMS를 설치한다

(필자는 Node.js/MySQL, API명세서는 GitBook을 사용)

3. 스토리지 서버(Storage Server)가 필요한 이유?

  • 스토리지 서버는 파일을 처리하는데 사용
  • 데이터베이스에는 파일을 저장하지 않고, 파일의 경로(주소, 이름, URI, Path)를 저장

4. NoSQL 을 사용하는 이유?

  • 기존의 데이터베이스는 데이터의 수 가 늘어남에 따라 확장이 어려웠다. 페이스북이나 인스타그램과 같이 데이터가 무제한으로 발생하는 경우 데이터를 저장하기 위해선 확장성이 중요하므로 확장성을 고려한 데이터베이스인 NoSQL을 사용한다
  • NoSQL은 샤드(Shard)라는 기법으로 확장

5. 캐시 서버(Cache Server)를 사용하는 이유?

  • 예를들면 프로필 사진과 같이 자주 이용되는 데이터이고, 변경이 잘 안이루어지는 데이터이다. 
  • 데이터베이스나 스토리지 서버에서 억세스하면 속도가 느리다(데이터베이스나 스토리지 서버는 파일이기 때문) 따라서 이 데이터를 메모리에 올려놓으면 클라이언트가 요청 할 때 마다 빠르게 응답할 수 있다. 이러한 메모리 서버를 캐시서버 라고 한다
  • 메모리 서버로는 Redis를 많이 사용한다(AWS의 경우 Elastic Cache에 해당)

6. 메세지 큐(Message Queue) 란?

  • 예를들어 사진의 썸네일을 만드는 것과 같이 오래 걸리는 일이 있으면 유저가 기다리게 된다. 따라서 유저가 기다리지 않도록 따로 리시버에게 일을 시킬 수 있게 하는 것이 메세지 큐 이다.
  • 메세지 큐 는 먼저 들어온 메세지(일)를 먼저 처리해주는 큐 자료구조를 사용한다

7. 로드 밸런서(Load Balancer)의 역할

  • 유저가 늘어날수록 서버가 감당할 수 있는 CPU와 메모리는 제한되어있다. 따라서 유저가 늘어나면 API 서버를 증설해야 하므로 늘어난 API 서버에 유저의 요청을 분배해주는 것 이 로드 밸런서 이다. 즉, 부하는 분산시켜주는 역할을 한다

8. On Premise - AWS Cloud 에서의 서비스 구성 방법

  • API Server - EC2
  • Load Balancer - ELB(Elastic Load Balancer)
  • 데이터베이스 - RDS
  • NoSQL - DynamoDB
  • Storage Server - S3
  • Cache Server - Elastic Cache
  • Message Queue - SQS(Simple Queue Service)

 

'IT' 카테고리의 다른 글

VCS(Version Control System) - Git  (0) 2020.10.06
RDBMS 와 NoSQL  (0) 2020.10.05
자바의 클래스와 객체 Class/Object / Instance  (0) 2020.09.29
Data Structure(JAVA Collections) Stack, Queue ...  (0) 2020.09.25
REST API  (0) 2020.09.25