ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Cloud Computing
    Back-end Developer/Cloud 2021. 4. 7. 14:13

    Cloud Computing 그중에서도 제가 많이 써본 AWS에 관련한 내용을 정리해보려 합니다.

    종류는.. AWS, GCP, NCP 등 많은데, 그나마 잘 아는 것으로 선택했습니다. ㅎㅎ

    이 글에선 여기저기서 '클라우드 클라우드..' 하는데 클라우드가 도대체 무엇인지부터 알아보겠습니다.

     

     


    Cloud Computing

    클라우드 컴퓨팅은 사용자의 직접적인 활발한 관리 없이 특히, 데이터 스토리지 컴퓨팅 파워와 같은 컴퓨터 시스템 리소스를 필요 시 바로 제공(on-demand availability)하는 것을 말한다.

     

     

    이해를 위해 일상생활에서 비교를 통해 설명을 드리겠습니다.

     

    코로나 때문에 여행을 못가니 친구들과 계곡으로 여행을 가는 상상을 해보겠습니다.

    계곡에 가기 위해 필요한 것들을 구매할 수 있겠지만, 대부분 대여료를 내고 빌려 쓰겠죠?

    제 경우엔 아래와 같은 것들을 대여할 것 같습니다.

    방(펜션), 자동차
    평상, 튜브(구명조끼), 아이스 박스
    토치, 그릴, 취사도구 등등..

     

    위 항목들은 있으면 가져다 쓸 수 있겠지만, 굳이 구매해서 사다 쓰진 않는 항목들이죠.

    예를 들어 계곡을 가는데 매번 새로운 펜션을 구매한다고 생각해보세요. 말도 안 됩니다. ㅎㅎ

    물론 뭐 아예 안 쓸 수도 있고요.

     

    개발의 관점으로 다시 넘어와서, 어떤 앱 서비스를 개발했을 때 우리에게 필요한 건 엄청 많겠죠?

    앱 서비스를 구동시켜 둘 컴퓨터, DB, 네트워크에 필요한 장비 등등..

     

    이 또한 마찬가지로 어떤 회사가 아닌 이상 저런 것들을 직접 갖다 놓고 사용하기란 어려울 것 같습니다.

    국내 서비스를 출시해서 국내용 on-premise 서버를 운영한다 해도, 해외로 나가면 각 나라별 서버를 계속 구매해야겠죠.

    따라서, 우리가 펜션을, 자동차를 빌려 쓰듯 개발에 필요한 컴퓨터 장비를 빌려 쓰자는 개념이 Cloud Computing입니다.

    그림 1. AWS

     

     

    종류가 상당히 많은데 그중 개인 프로젝틀 하는 경우 주로 보게 되는 인프라 위주로 그림을 구성해 봤습니다.

    이러한 인프라를 사용자가 요청하면 제공하고 사용 시간, 사용량 등에 따라 가격을 책정하고 지불받는 방식입니다.

     

    그림 2. AWS 방식

     

    위 그림과 같이 클라우드 컴퓨팅이란 인터넷을 통해 사용자가 원하는 만큼 인프라를 사용하고 사용한 만큼 지불하는 서비스입니다.

    특히, 가상화 기술의 발전으로 Cloud Computing은 크게 향상되었다고 합니다.

     

    다음으로 AWS의 특징과 단위를 간략히 보고 AWS가 제공하는 서비스 소개로 넘어가 보겠습니다.

     

    AWS의 특징

    • 다양한 서비스와 기능을 제공.
    • 사용자는 필요에 따라 IT 인프라 규모를 선택적으로 제어 가능. (여유 공간 확보 등의 작업이 필요 없음)
    • API 형태로 모든 요청이 만들어진 만큼 요청 즉시 구성 시작.

     

    AWS 물리 인프라 단위

    AWS의 인프라를 어디서든 사용할 수 있기 위해 제공될 자원이 실제로 배치되어 있어야합니다.

    AWS는 세가지 단위로 나누어 배치하고 이를 관리합니다.

     

    그림 3. AWS 물리적 IT 인프라

     

    AZ (Availability Zone)

    서버, 네트워크, 전원 등의 IT 인프라 기반 시설이 구성된 데이터 센터(IDC) 또는 이것의 묶음

    AZ는 물리적으로 독립된 객체이므로 AZ에 가용성 높은 서비스를 구성 가능

     

    Region

    두개 이상의 AZ로 구성된 동일 지역의 집합

    어떤 물리적/논리적 소스도 공유하지 않음 -> 독립적

    AWS API의 각 Region별 수신하는 Endpoint 분리

    각 Region: 단가 또는 제공 서비스 목록 등 차이 존재

     

    Edge

    응답 속도에 민감한 서비스를 전용으로 만든 Server farm

    Cloud Front, Route53 등

     

     

     

    AWS의 Core 서비스

    그림 4. AWS core services

    Compute

    • EC2 - OS를 기반으로 동작하는 가상 서버 지원 (하나의 컴퓨터 및 운영체제)
    • ELB - App 트래픽을 EC2, container, IP, Lambda 등 여러 대상에 자동으로 분산하는 Load Balancer
    • ECR - 컨테이너 이미지와 아티팩트를 손쉽게 저장/관리/공유/배포할 수 있는 완전 관리형 컨테이너 레지스트리
    • ECS - 완전 관리형 컨테이너 Orchestration
    • Elastic Beanstalk - EC2, ELB, AutoScaling 등 다양한 서비스가 Orchestration 된 app 배포 및 관리
    • Lambda - 이벤트 중심의 serverless platform

     

     

    Database

    • RDS - 관계형 DB 설치/운영/백업 등 DB 관리
    • DynamoDB - NoSQL DB, [key, value] 형식
    • ElastiCache - 캐시 노드(Redis/Memcache 등) 관리, 오픈 소스 호환 인 메모리 데이터 스토어 관리
    • RedShift - 관리형 Data warehouse

     

    Storage

    • S3 - 고 가용성/내구성 객체 스토리지
    • Storage Gateway - 수많은 클라우드 스토리지에 대한 *on premise 액세스 권한 제공
    • EFS - 단 한 번의 설정으로 스토리지 관리/감독 없이도 파일 데이터를 공유 가능한 Elastic serverless 파일 시스템
    • Glacier - 데이터 아카이빙 및 장기 백업
    • Snow ball - on premise <-> AWS 간 오프라인 대용량 데이터 수송

     

    Network

    • Cloud Front - 데이터, 동영상, APP 및 API를 전 세계로 빠르고 안전하게 전달하는 *CDN 서비스
    • VPC - 사설 IP 기반 네트워크 제공, 논리적 격리 네트워크를 제공 (사용자 별 독립된 공간)
    • Route 53 - DNS, 사용자(end point)를 인터넷 App 서비스로 라우팅
    • Direct Connect - on premise <-> AWS 전용 네트워크 연결

     

    4가지 핵심 서비스의 종류는 이와 같습니다.

    자주 사용되거나 차후 알아볼 서비스는 파란색으로 칠해두었습니다. ㅎㅎ

     

    물론 AWS 서비스가 여기서 끝나는 것은 아닙니다. (아래 영상과 같이 무수히 많습니다)

     

    그림 5. AWS all services

     

     

    다음 포스팅부턴 각 서비스의 특징이나 구성 방법 등을 좀 더 정확하게 파악해보도록 하겠습니다.

     

     

     

     

     

    * on-premise: 소프트웨어를 사용하는 개인 또는 조직의 구내 컴퓨터에 설치되고 실행되는 SW, 자체 보유

    * CDN: Contents Delivery/Distribution Network, 효율적인 콘텐츠 전달을 위해 여러 노드를 가진 네트워크에 데이터를 저장 및 제공

     

     

    참고 자료

    Wikipedia - Cloud Computing

    AWS - ECR

    AWS - ECS

    AWS - ELB

    AWS - ElastiCache

    AWS - Glacier

    AWS - DirectConnect

    반응형

    'Back-end Developer > Cloud' 카테고리의 다른 글

    EC2 :: Elastic Compute Cloud  (0) 2021.05.03
    VPC :: Virtual Private Cloud  (0) 2021.04.09

    댓글

Designed by minchoba.