TIL - 클라우드 컴퓨팅 2

이동근·2021년 2월 28일
0

cs 지식

목록 보기
1/4

AWS

1.Region

단어 그대로 지역이라는 의미로 AWS의 데이터 센터가 있는 지역을 Region이라고 한다. 그리고 사용하고자 하는 Region고 잘 골라야 하는데 그 이유로 3가지가 있다.

1) 리전간 네트워크 속도의 차이
사람과 서버 간의 거리가 멀어질수록 네트워크 전송 속도가 더 느려진다는 것은 당연한 사실이다. 그래서 그 거리를 줄이기 위해서 전 세계 곳곳에 리전을 설치하고 있다.

2) 법 제도적 규제
법/제도적으로 특정 리전을 써야만 할 때도 있기 때문이다. 고유식별정보 또는 개인 신용정보와 같은 중요한 정보를 처리하기 위해 클라우드 서비스를 사용할 때는 해당 서버를 국내에 두어야 한다고 규정하고 있습니다. 단순이 그런 이유로 물리적이 리전이 중요한가 라고 생각할 수도 있지만 만약 정보유출사건이나, 경찰에 협조해야할 상황이 생겼을 경우 까지 생각해 본다면 리전이 멀리있는 것 보다는 가까이에 있는것이 더욱 이득이다.

3) 제공되는 서비스의 차이
리전마다 제공되는 AWS의 서비스가 다르기 때문에 리전을 잘 선택해야 한다.

2. Availability Zone(가용영역) as AZ

하나의 리전에는 보통 2~3개의 가용 영역들이 있습니다. 가용역역은 여러 개의 물리적인 데이터 센터들을 결합해서 논리적으로 하나로 만든 데이터 센터 입니다.

하나의 리전안에 여러개의 AZ가 있는 이유는 AZ의 이름인 가용영역에 있습니다. 가용성이란 어떠한 특정 서비스를 이용하는데 어려움이나 불편함이 없는 성질을 의미합니다. 예를 들어 명절에 카카오톡을 사용한는데 트레픽이 몰려 갑자기 사용이 안된다던지 하는 것은 가용성을 100% 유지하지 못한 것입니다. 그래서 이 가용성을 보장해주기 위해서 하나의 리전에 여러개의 AZ가 있는 것입니다.

AWS의 대표적인 서비스

EC2(Elastic Computer Cloud)

컴퓨터 기능을 갖고 있는 자원을 할당 받는 서비스 입니다. 쉽게 말해서 OS만 설치되어있는 가상머신 하나를 빌려주는 서비스하고 생각하면 쉽다. IaaS세계에서는 이런 가상 머신 하나하나를 보통 '인스턴스'라고 합니다. EC2sms AWS를 사용할 때 첫 번째로 알아야하는 기초 서비스이자 가장 많이 사용되는 핵심 서비스이기도 하다. EC2 인스턴스에 고객이 무슨 프로그램을 설치하고, 어떻게 설정하는지에 따라 그 인스턴스가 웹 서버나 DB서버 등 다양 종류의 서버가 될 수 있다.

RDS(Relational Database Service)

이 서비스는 데이터를 저장할수 있는 DB 서버를 제공해 주는 서비스 입니다. 처음부터 완성된 DB서버를 바로 제공해 주는 것이 RDS이다. 굳이 RDS를 사용하지 않아도 EC2에서 인스턴스에 데이터베이스 프로그램으 설치하고 필요한 설정을 하면 db서버를 만들 수도 있으나, RDS를 쓰면 복잡한 과정을 모두 생략하고 이미 모든 준비가 다 된 DB서버를 바로 쓸 수 있기 때문에 편하다

Auto Scaling

AWS 같은 클라우드 서비스를 사용하는 이유는 필요 할때 만다 유연하게 서버의 수를 늘릴 수 있기 때문입니다. 이 서비스는 AWS가 인프라의 실시간 상황에 맞게 자동으로 인스턴스 개수를 늘리거나 줄여줍니다.

클라우드의 미래

1. 게임 - 스트리밍 컴퓨터

동영상 스트리밍은 동영상 파일을 전부 다 다운로드하고 재생하는 방식이 아니라, 동영상에서 보고 있는 시점마다 필요한 프레임들을 실시간 다운로드 해서 재생하는 방식이다.

일반적인 게임이 실행되는 과정은
1. 사용자가 키보드나 마우스로 입력을 한 입력값은 그대로 혹은 가공해서 게임 서버로 보낸다.
2. 게임서버는 입력값들과 다른 값들을 포함한 채 필요한 처리를 한다.
3. 처리한 결과값은 컴퓨터로 보내고 그 것들을 계산해서 화면의 모니터에 그려준다.

하지만 스트리밍 게임은 3번 단계에서 차이가 있습니다. 일반게임 처럼 단순히 텍스트 형식의 응답을 주는 것이 아니라 그냥 사용자가 봐야할 게임 화면 자체를 보내버립니다. 게임 내용과 관련된 연산, 그래픽과 관련된 연산을 서버에서 알아서 처리하고 화면 자체를 매번 사용자의 컴퓨터로 보내준다. 이런 구조라면 사용자 컴퓨터에서 해야할 작업이 훨씬 줄어들게 된다.

장점

  1. 게임 프로그램을 설치할 필요가 없다. 사용자의 입력값을 서버에 보내주고, 화면을 모니터에 보여줄 수 있는 웹 브라우저 정도의 프로그램만 있으면 게임을 할 수 있다.
  2. 컴퓨터 사양이 좋지 않아도 고사양 게임을 할 수 있다.
  3. 게임 핵의 문제가 최소화 됩니다.

클라우드와 연관

  1. 일반게이머 입장에서는 마치 지금 구글 드라이브를 쓰는 것처럼 접속만 하면 게임을 할 수 있다는 점에서 일종의 새로운 SaaS가 생긴 것 과도 같다.
  2. 스트리밍 게임이 불편함 없이 서비스 되도록 하려면 글로벌 기업들이 전세계 데이터 센터를 기반으로 최첨단의 클라우드 기술을 적용해야 한다는 점이다.

한계

장점만 보자면 스트리밍 게임에 대한 아무런 문젝 없어 보일 수도 있다. 하지만 꼭 그렇지는 않다 '지연시간' 이라는 문제가 있기 때문이다.

지연시간이란
사용자가 입력한 값을 나의 컴퓨터로 보내고 서버처리를 한 후 보낸 응답을 내 컴퓨터로 받아 모니터에 화면을 그려줄 때까지의 시간을 의미한다.

속도감이 중요하지 않은 캐쥬얼 게임은 상관이 없지만 격투형 게임 FPS 게임은 이런 사소한 속도 하나가 게임의 결과를 엎을 수도 있기때문에 이 문제에 대해 민감합니다.

그리고 내 게임 장소와 서버 간의 거리도 중요한 영향을 미치게 된다. 기존 게임은 단순히 화면을 그리기 위한 최대한의 데이터만 받아 내 컴퓨터의 게임 프로그램이 그에 맞게 화면을 그려주는 방식이었기 때문에 지연시간 문제가 덜했다고도 할 수 있다. 오늘날 4K, 8K와 같이 점점 사람들이 원하는 화면의 해상도 수준이 올라가는 가운데 스트리밍 게임처럼 영상을 그대로 받는 방식이라면 지연 시간은 더욱 문제가 될 수 밖에 없습니다.

2.머신러닝과 클라우드

머신러닝이란 어떤 데이터를 바탕으로 미래의 결과를 예측하기 위한 모델을 만드는 학문 이다. 그리고 딥러닝이라고 하는 것은 모델을 만들기 위해 필요한 수학적 계산을 할 때 신경망 이라는 새로운 기법을 도입한 분야 입니다. 그래서 사실 딥러닝은 크게 보면 머신러닝 안에 속해있는 개념 입니다.

클라우드에서 제공하는 머신러닝 서비스

1. 사용자가 입력 데이터를 넣으면, 이미 존재하는 최적화된 모델을 바탕으로 적절한 결과 값을 돌려주는 서비스
2. 사용자가 입력 데이터를 추가해서 기존의 모델을 간접적으로 수정할 수 있거나, 머신러닝 라이브러리를 사용하여 직접 모델을 만들 수 있게 해주는 서비스 즉 머신러닝 모델을 직접 만들기 위해 필요한 툴 자체를 클라우드가 제공해주는 구나
3. 머신러닝 전용 인스턴스를 제공하는 서비스 입니다.

3. 자율주행차와 클라우드

자율주행차가 자율 주행을 하기 위해서 처리해야 하는 데이터는 상당히 많습니다. 이렇게 자동차가 그 주변의 모든 것과 통신한다는 의미로 V2X 통신이라고 합니다. 자율주행차가 상용화 되려면 주변환경을 더 정밀하게 감지하는 센서들, 더 나은 주행 머신러닝 모델을 만들기 위한 데이터 축적 뿐만 아니라 다른 기기와 통신하는 능력도 중요합니다.

클라우드의 역할

1. 수 많은 자율주행차로부터 획득한 주행 데이터에 기반하여 더 향상된 주행 머신러닝 모델을 만들고 이것을 나중에 각 차량에 업데이트 해줄 수 있다.\
2. 수 많은 자율주행차로부터 획득한 현재 교통 상황 데이터에 기반하여 실시간으로 더 최적의 경로를 안내받을 수도 있다. 주행 도중에 교통량을 고려하여 다른 경로로 변경 후 안내 하는 기능은 많은 네비게이션 앱에 이미 탑재되어 있습니다.

클라우드 컴퓨팅과 엣지 컴퓨팅

자율주행차에는 클라우드 컴퓨팅 말고 하나가 더 필요합니다.
1. 클라우드가 많은 용량의 데이터를 한꺼번에 처리하게 됨으로써 생겨나는 처리 속도의 지연 문제
2. 클라우드와 자율주행차의 물리적 거리에 따른 네트워크 속도 지연의 문제

이렇게 자율주행차에서 지연문제는 교통사고와 직결될 수 있기 때문에 이럳한 단점을 해결하기 위해 빠른 판단이 필요한 영역의 데이터 처리는 자율주행차에 맡기고, 당장 급하지 않은 데이터 처리는 클라우드에 맡기는 방식이 적절하다. 이 방식을 '엣지 컴퓨팅' 이라고 한다. 엣지 컴퓨팅은 모든 데이터 처리를 중앙의 클라우드에 맡기는 것이 아니라 일부 데이터 처리는 각 단말 기기가 처리하는 방식을 의미한다.

출처 : codeit 4차산업 혁명 생존 가이드

profile
하루하루 1cm 자라는 개발자

0개의 댓글