( 참고 : “당신이 지금 알아야 할 AWS” )
[ Data Engineering ]
2장. AWS 서비스와 선택
Contents
- AWS 시작
- AWS, 아마존 웹 서비스
- AWS 클라우드 인프라
- AWS 서비스
- 컴퓨팅
- 스토리지
- 데이터베이스
- 네트워크
- 인공지능
- 데이터 분석
- 내게 맞는 AWS 컴퓨팅 선택
- EC2 : 모든 것을 다 관리
- 빈스톡 & ECS : 운영 체제 관리 필요 X
- Lambda & LightSail : 완전 관리형
- 비교
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