( 참고 : “당신이 지금 알아야 할 AWS” )

[ Data Engineering ]

2장. AWS 서비스와 선택

Contents

  1. AWS 시작
    1. AWS, 아마존 웹 서비스
    2. AWS 클라우드 인프라
  2. AWS 서비스
    1. 컴퓨팅
    2. 스토리지
    3. 데이터베이스
    4. 네트워크
    5. 인공지능
    6. 데이터 분석
  3. 내게 맞는 AWS 컴퓨팅 선택
    1. EC2 : 모든 것을 다 관리
    2. 빈스톡 & ECS : 운영 체제 관리 필요 X
    3. Lambda & LightSail : 완전 관리형
    4. 비교


2.1. AWS 시작

2.1.1. AWS, 아마존 웹 서비스

아마존포비아(Amazon-phobia)

  • 인터넷 상거래로 전 세계 유통업계를 공포로 몰아넣은 것!
  • Not only 상품 판매, But also 모든 것!
  • 자신의 전자 상거래 플랫폼을 이용하고 있는 수 많은 작은기업들에 웹을 기반으로 하는 기술 플랫폼 환경을 제공하고 여기에 익숙해지도록 하면서, 자연스레 일반 PC의 웹 환경 플랫폼까지 장악하고자! AWS의 탄생!
  • (초기 서비스) EC2 & S3
    • EC2 ( Elastic Compute Cloud ) : 가상 서버
    • S3 ( Simple Storage Service ) : 스토리지 서비스
  • 수 많은 초기 스타트업 회사들이 고정 비용에 대해 투자 하지 않아도 되도록!
  • AWS의 웹 사업 매출은 AWS 매출의 9%, but 영업 이익은 74%


2.1.2. AWS 클라우드 인프라

a) 리전 (Region)

  • 물리적으로 떨어진 지역에 여러 개의 클라우드 인프라를 운영하는데, 이 물리적 지역을 리전(Region)이라고 함

    ( 여러 곳에 두는 이유 : Network 속도 )

  • 주요 지역에 리전을 위치 시키고, 가까운 리전에 접속해야 속도 UP

  • AWS 인프라는 (a) 리전(Region), (b) 가용 영역(Availability Zone), (c) 에지 로케이션 (Edge Location)으로 나뉨

  • 전 세계 20 여곳의 리전을 제공 ( + 매년 계속 추가 중 )

  • 각 리전은 물리적으로 완전히 분리! ( 전혀 다른 리소스로 구분 )


리소스?

  • 가상 서버 EC2 생성 시, EC2에 대해 ARN 번호가 부여되며 접근 가능! ( 람다 함수를 생성해도 ARN 번호 생성 )

  • AWS 상에서 생성하는 모든 것은 “리소스”


b) 가용 영역 (Availability Zone)

  • 가용 영역 (Availability Zone) = “데이터 센터”

  • “가용 영역”들이 모여서 “리전”을 구성

    & “리전”들이 모여서 “AWS 서비스”를 구성

  • 각 가용영역은 물리적으로는 독립, but AWS 콘솔에서 리소스별로는 구분 X

  • ex) 서울 Region

    • 그 안에 여러 개의 데이터 센터, Availability Zone

      • 하나의 AZ가 고장나도 OK ….”가동률(가용성)”
    • AWS는 1년에 99.999999999%의 가용성 보장!

      ( 2개 이상의 가용영역을 사용하기 때문에 )


.


c) 에지 로케이션 (Edge Location)

  • Region에 속한 “리전 에지 캐시”를 통해 데이터 속도를 개선

  • CDN (Content Delivery Network)을 이루는 캐시 서버

    ( 캐시 = 데이터 임시 저장소 )

  • ex) 미국에서 오는 데이터…상당히 먼 거리! 미리 데이터를 어딘가에 저장해두면 어떨까? via CDN 서비스!

  • CDN은 웹 콘텐츠를 전달하기 위해 최적화된 네트워크

    • 웹 콘텐츠가 저장된 서버 외에, 다른 서버에 콘텐츠를 캐시해두고, 사용자와 가까운 위치에 있는 서버가 대신 전달하면, 접속량 분산 & 안정적 서비스 제공
  • 대표적인 클라우드 CDN 서비스 ex) AWS의 클라우드 프론트, MS의 Azure CDN


2.2. AWS 서비스

2.2.1. 컴퓨팅

  • 컴퓨팅 서비스 = “가상 서버를 중심으로 컴퓨터 인프라를 이용하는 서비스”


a) EC2 (Elastic Compute Cloud)

  • 종량제 형태로 과금되는 “가상 서버”
  • 컴퓨터 리소스에 대한 전반적 관리를 도와주며, 단 몇분만에 새로운 서버 구축 OK
  • 인스턴스(Instance) = AWS에 구축된 1대의 가상 서버


b) 람다 (Lambda)

  • 특정한 “이벤트”를 통해 입력 인자 발생시, 연산 과정으로 출력 인자를 바꾸는 “이벤트 기반의 컴퓨팅 서비스”
  • EC2와 다르게, 오직 “소스 코드”만 사용!
  • 인프라에 대한 별도의 관리 불필요! “완전 관리형” 컴퓨팅 서비스


c) ECS

  • 도커 컨테이너 서비스


d) 라이트 세일 (Lightsail)

  • “완전 관리형” 가상 서버 서비스
  • AWS에서 가상 서버를 구축할 수 있는 가장 손 쉬운 서비스
  • 별도의 소스 코드 X, 몇 번의 click만으로 OK


e) 빈스톡 (Beanstalk)

  • EC2의 설정을 매우 쉽게 돕는 서비스


2.2.2. Storage

Storage vs DataBase

  • Storage : 물리적 & also 비정형 데이터
  • Database : 논리적 & 정형/반정형 데이터


a) S3

  • 가장 역사가 오래된 서비스
  • 이미지, 동영상, 오디오 파일 OK


b) 글래시어

  • 언제든 빠른 시간 내에 트래픽을 처리할 수 있게 만들어짐

  • 만약을 위해 저장하지만, 사용 빈도가 낮은 경우 적합

    ( 저렴한 저장 비용, S3에 비해 높은 트래픽 요금 )


c) 스토리지 게이트웨이

  • (기존의) 온프로미스 환경 & AWS를 연결해주는 gateway 서비스

  • 기존 데이터를 클라우드 환경으로 옮기지 X도 적용 가능!


d) EBS (Elastic Block Storage)

  • EC2와 연결할 수 있는 저장 장치 서비스


2.2.3. 데이터 베이스

  • 데이터베이스 = 체계화된 데이터들의 모임
  • AWS : not only RDBMS, but also No-SQL


a) RDS

  • 전통적인 관계형 DB (RDBMS)를 구축
  • 6개의 RDBMS 데이터베이스 엔진 선택 가능
  • 높은 가용성


b) DynamoDB (다이나모 디비)

  • No-SQL 기반의 완전 관리형 서비스
  • 저렴한 비용
  • 네트워크의 로그 데이터, 게임,IoT처럼 대량의 데이터 발생 시!


c) ElastiCache (엘라스틱 캐시)

  • RDS & DynamoDB : SSD 영역에서 입출력이 수행
  • ElastiCache : 메모리에 데이터를 저장하여 더욱 빠르게 입출력 가능!


d) RedShift

  • 완전 관리형 SQL 데이터 웨어하우스
  • “대용량”의 “정형 데이터”를 처리하는 데 사용


2.2.4. 네트워크

아키텍처 3계층에 대한 서비스를 다룸

a) VPC (Virtual Private Cloud)

  • AWS에서 “가상 네트워크 망 (VPN)” 구축 지원 서비스


b) RouteS3

  • AWS에서 제공하는 DNS(Domain Name System) 서비스
  • 도메인을 AWS 리소스와 연결할 때 사용
  • ex) xxx.xxx.xxx.xxx로 입력 안하고, naver.com와 같은 도메인 주소로 접속할 수 있도록 해주는 서비스


c) 클라우드 프론트

  • CDN (Content Delivery Network) 서비스
  • 엣지 로케이션 서버를 이용하여 콘텐츠 배포


2.2.5. 인공지능

  • 폴리) TTS(Text To Speech) 서비스
  • 렉스) 대화형 챗봇 서비스
  • 레코그니션) 이미지 인식.분석 서비스


2.2.6. 데이터 분석

a) 퀵 사이트 (QuickSight)

  • (태블로와 같이) 데이터 시각화 서비스


b) 아테나 (Athena)

  • Severless 기반 SQL 쿼리 서비스

    ( 따로 구축해야할 서버 필요 X )

  • S3에 저장된 데이터를 SQL문을 통해 원하는 결과 얻을 수 있음


c) 클라우드 서치 (CloudSearch)

  • 완전 관리형 검색 서비스
  • 30개 국어 이상의 언어별로 처리


d) EMR

  • 빅데이터 분석 플랫폼인 Hadoop 프레임워크를 AWS의 다른 서비스들과 연동


e) 키네시스 (Kinesis)

  • 실시간 데이터 처리를 위한 서비스


2.3. 내게 맞는 AWS 컴퓨팅 선택

2.3.1. EC2 : 모든 것을 다 관리

  • 활용 범위가 가장 높은 컴퓨팅 서비스
  • 네트워크/스토리지/서버/가상화 등을 고객이 신경 쓸 필요 X

  • 운영체제, 애플리케이션은 직접 관리해야


2.3.2. 빈스톡 & ECS : 운영 체제 관리 필요 X

  • ECS : 도커 컨테이너 서비스

  • EC2 ) 운영 체제 직접 관리

    빈스톡 & ECS ) 운영 체제 관리 필요 X


2.3.3. Lambda & LightSail : 완전 관리형

  • Lambda : 어떻게 동작하는지 “코드”로만 정의해주면, 별도의 데이터 없이 바로 사용 OK


2.3.4 비교

( 컴퓨팅 소요 시간 ) Lambda > ECS > EC2 ( 짧은 순 )

  • (상) Lambda : 수 분
  • (주) ECS : 수 시간
  • (하) EC2 : 수 시간 이상

( 상세 기능 설정 & 서비스 다양성 ) EC2 > ECS > Lambda