Everything as a Service
클라우드는 어떤 종류의 서비스를 제공합니까?
entire application, or just resources? If resources, what kind / level of abstraction?
일반적으로 구분되는 세 유형:SaaS PaaS IaaS
다른 XaaS 유형은 종종 DaaS(Desktop as a Service), MLaaS(Machine Learning as a Service)로 정의
CSP가 entire application 제공
Word processor, spreadsheet, calendar, ...
자신의 컴퓨터에서 설치하고 실행할 필요X
CSP가 모든 것을 관리
Real-world example: Google Docs, Google Calendar, Gmail
CSP가 사용자가 SaaS applications을 생성할 수 있도록 하는 일련의 도구(플랫폼)를 제공
CSP의 infrastructure에서 SaaS 애플리케이션 실행
CSP가 underlying hardware(기본 하드웨어) 및 requirements(요구 사항)을 관리
Real world examples: Google App Engine, Microsoft Azure
– App Engine API에 접속하려면 write application 필수
CSP가 servers 및 storage를 고객에게 제공
multiple customers를 위해 virtualization technology를 사용하여 각 server를 공유
버튼을 누르기만 하면 virtual machine(가상 머신) 생성 가능
physical Infrastructure을 제공하는게 아니라 인터넷 통해서 cloud 제공
server는 제한되어있고 user는 많음 - customers는 같은 server를 써도 각자 isolated되야 함: 가상 머신을 통해
사용자는 standard OS environment에 access가능, 그 위에 all the layers(모든 계층)을 설치 및 구성
Real world example: AWS EC2
누가 클라우드의 고객?
– Public cloud: commercial service(상용서비스), open to anyone
ex Amazon AWS, Microsoft Azure, Google Cloud, Naver Cloud
– Community cloud: shared by several similar organizations
ex Google’s “Gov Cloud”
– Private cloud: shared within a single organization(단일조직)
ex internal datacenter of a large company 대기업의 내부 데이터센터
AWS는 비즈니스 또는 조직의 요구사항에 맞게 조합하여 사용할 수 있는 다양한 클라우드 서비스를 제공 (tailored:맞춤의)
Elastic Compute Cloud (EC2)
– Infrastructure service for virtual servers 가상 서버용 인프라스트럭처 서비스
Simple Storage Service (S3)
– Storage service for web objects 웹 객체에 대한 스토리지 서비스
Elastic Block Store (EBS)
– Storage service for virtual storage volumes 가상 스토리지 볼륨을 위한 스토리지 서비스
– USB driver의 역할. 어떤 ec2서버에도 가져다가 붙이기(attach) 가능
Elastic Load Balancing (ELB)
– Service for virtual load balancers 가상 로드 밸런싱 장치 서비스
– 들어온 여러개의 request가 어떤 server에 해당하는 건지 handle
Auto Scaling
– Service for scaling EC2 capacities. EC2 용량 확장 서비스
– request많아지면 자동으로 ec2서버 하나더 만듦 scaling out
Lambda
– Serverless architecture
Etc…
2002년 7월: Amazon Web Services 시작
타사 사이트에서 아마존 웹 사이트의 제품을 검색 및 표시 가능, 아마존 장바구니에 제품을 추가
XML 및 SOAP을 통해 사용 가능
2006년 3월: Amazon S3 출시
현재 클라우드 컴퓨팅의 표준, 혁신적인 'pay-per-use' 가격 모델
여러 small/medium storage solutions보다 저렴한 가격: $0.15/GB/month of storage, $0.20/GB/month for traffic
더 이상 pure retailer(순수 소매업체) X, 기술 분야에 진출
2006년 8월: EC2 출시
– Core computing infrastructure 가용성 향상
2008-2013: Google App Engine, Windows Azure, Google Compute Engine 출시
Amazon은 cloud providers 중 하나
Microsoft Azure, Google Cloud 등 존재
Amazon 시장 점유율(market share) 약 33%
no common standard
처음에 MS와 구글은 PaaS를 지원
IaaS와 PaaS를 모두 지원할 수 있도록 점차 성장
AWS는 PaaS/IaaS, + broad menu of choices
resources는 geographic regions으로 구분
data sovereignty concerns(데이터 주권에 대한 문제) 제공
resources의 가격 다름
대부분 simple latency을 위한 것
각 지역에 여러 개의 Availability Zones(가용성 영역)(AZ)
– Independent failure domains 독립 장애 도메인
– Independent power grid and network connection 독립적인 전력망 및 네트워크 연결
– Zones within a region networked with low-latency connections → Clusters
– E.g., ap-southeast-2a, ap-southeast-2b
– ex ec2서버가 ap-southeast-2a에 속하면 시드니에서는 접속 불가
S3만 entire cloud로 글로벌화 가능
AWS offers Free Usage Tier
참고 사항:
– 당신의 AWS 계정은 완전한 기능을 하고 있으므로 프리티어 자격이 없는 자원을 사용하거나 Amazon이 제공하는 할당량 이상의 프리티어 자격이 있는 자원을 사용할 경우 요금이 발생합니다
– 비용이 발생하지 않도록 무료 계층의 리소스만 사용하고, 사용 중이 아닐 때는 EC2 인스턴스를 중단해야 합니다
Billing and Cost Management 콘솔에서 AWS 사용량 및 요금 확인 가능
AWS Management Console
– 온라인에서 액세스하는 graphic user interface
– AWS 시작이 fastest way
– Nothing to install
AWS Command Line Interface (CLI)
– 컴퓨터에 설치하는 텍스트 기반 도구
– 하나의 툴을 통해 여러 AWS 서비스를 관리
– web이면 message를 one-by-one 보내야 함. CLI쓰면 스크립트로 전달 가능
Software Development Kits (SDKs)
– AWS 리소스를 관리할 수 있도록 응용프로그램에 추가하는 class libraries and tool
– AWS를 관리하는 애플리케이션을 작성하는 가장 쉬운 방법
– ex import boto3
Query APIs
– service- and region-specific endpoints(서비스 및 지역별 엔드포인트)를 통해 온라인으로 노출되는 Low-level APIs
– HTTP 요청을 사용하여 API 작업을 호출
hypervisor에서 실행되는 virtual machines
Virtual machines based on:
– Amazon Machine Image(AMI): OS, 기본 소프트웨어, configuration, virtualization(가상화) 유형
– Instance 유형: vCPU(# of threads), memory, instance storage, network performance(성능)
Infrastructure as a Service (IaaS) 도입
– Rent a server on an hourly basis 시간 단위로 서버 대여
– 인스턴스 1개를 10,000시간 대여 = 1개를 10,000시간 대여
Prefix
– t#: the cheapest one, general purpose 가장 저렴한 것, 범용
– c#: compute optimized 계산 최적화
– m#, r#: memory optimized 메모리 최적화
– p#, f#: accelerated computing 가속 컴퓨팅
– h#, i#, d#: storage optimized 스토리지 최적화
– where # means generation number (the bigger, the newer) #는 세대 번호
Suffix
– no suffix: Intel Xeon series
– -a: AMD EPYC series (cheaper than Intel Xeon)
– -g: ARM Neoverse series (cheapest one, but it’s AArch64, not AMD64)
– -d: comes with NVMe storage
Levels
– nano, micro, small, medium, large, xlarge, 2xlarge, …
– metal: bare-metal server
EC2 Instance Types: c5d.xlarge
EC2 Instance Types: p3.16xlarge
On-demand: pay by the minute but price is fixed (분 단위로 지불하지만 가격은 고정)
Spot instance: pay by the minute
– 가격 depends on demand
– on demand price보다 적은 spare EC2 capacity을 사용하는 인스턴스를 얻을 수 있음
Reserved
– Pay by the year
– No upfront: 12 months installment
– Partial upfront
– All upfront: pay all the price in advance
Security group
– Firewall(방화벽)
– 기본적으로 인스턴스에 접근 불가
Configure ssh access
– public/private key pairs(공용/개인 키 쌍) 생성
EC2 인스턴스에 dynamic IP(동적 IP) 할당됨
정적 IP(Elastic IP) 할당 가능
– Elastic IP가 AWS 계정에 속함
– 인스턴스(instance)와 연결될 수 있음
요금:
– 1 per instance is free
– Additional address cost