인터넷을 통해 IT 리소스와 애플리케이션을 온디맨드로 제공하는 서비스를 의미.
온디맨드 서비스 엑세스
대규모 사전 투자 방지 (초기 구축 비용이 저렴)
필요에 따라 컴퓨팅 리소스 프로비저닝
사용한 만큼 비용을 지불하는 방식
클라우드 배포 시 기업은 원하는 클라우드 애플리케이션 구성 요소, 선호하는 리소스 관리 도구, 레거시 IT 인프라 요구 사항 등의 요소를 고려해야한다.
클라우드 컴퓨팅 배포는 클라우드 기반 배포, 온프레미스 배포, 하이브리드 배포 세가지가 존재한다.
애플리케이션의 모든 부분을 클라우드에서 실행.
기존 애플리케이션을 클라우드로 마이그레이션.
클라우드에서 새로운 애플리케이션 설계 및 구축.
기업 자체적으로 데이터 센터에 서버를 유지•관리
가상화 및 리소스 관리 도구를 사용하여 리소스 배포
애플리케이션 관리 및 가상화 기술을 사용하여 리소스 사용량 증가
클라우드 기반 리소스를 온프레미스 인프라에 연결
클라우드 기반 리소스와 레거시 IT 애플리케이션이 통합된 형태이다.
초기 비용을 가변 비용으로 변경 가능
비용 최적화 가능
용량 추정 필요 x
거대 규모의 경제 활용 가능
속도 및 민첩성 향상
배포 효율성 증대
AWS에서 제공하는 가상 컴퓨팅 환경을 의미한다.
사용한 만큼 비용을 지불한다.
안전하고 크기 조정이 가능한 컴퓨팅 용량을 EC2 인스턴스로 제공한다.
범용(General Purpose)
컴퓨팅, 메모리, 네트워킹 리소스를 균형있게 제공한다.
다양한 워크로드에 적합하다.
컴퓨팅 최적화 (Compute Optimized)
고성능 프로세서 제공
컴퓨팅 집약적 애플리케이션 및 배치 처리 워크로드에 적합하다.
메모리 최적화 (Memory Optimized)
대규모 데이터 세트를 처리하는 워크로드를 위한 빠른 성능 제공을 위해 설계되었다.
메모리 집약적 워크로드를 위한 빠른 성능을 제공한다.
고성능 데이터베이스에 적합하다.
가속 컴퓨팅 (Accelerated Computing)
하드웨어 액셀러레이터를 사용하여 데이터 처리를 가속화 한다.
그래픽 애플리케이션, 게임 스트리밍, 애플리케이션 스트리밍 같은 워크로드에 적합.
스토리지 최적화 (Storage Optimized)
대규모 데이터 세트에 대한 순차적 읽기 및 쓰기 액세스가 많이 필요한 워크로드를 위해 설계.
낮은 지연 시간 및 높은 초당 입출력 작업 수(IOPS - 초당 입/출력 작업 수) 제공
분산 파일 시스템 및 데이터 웨어하우징 애플리케이션, 빈도가 높은 온라인 트랜잭션 처리(OLTP) 시스템에 적합하다.
온디맨드
초기 선결제 비용이나 최소 약정이 없다.
불규칙한 단기 워크로드에 적합.
스팟 인스턴스
시작 및 종료 시간이 자유로운 워크로드에 적합.
온디맨드에 비해 비용이 저렴하다.
중단이 되어도 괜찮은 애플리케이션에 적합.
예약 인스턴스
온디맨드 요금에 비해 결제 할인 제공
장기 워크로드에 적합.
1년 또는 3년 약정이 필요하다.
Computing Savings plans
컴퓨팅 사용량이 일정할 경우 온디맨드에 비해 최대 66프로 비용 절감.
1년 또는 3년 약정이 필요하다.
전용 인스턴스
단일 고객 전용 하드웨어의 VPC(Virtual Private Network)에서 실행되는 EC2 인스턴스이다.
표준 Amazon EC2 인스턴스에 비해 더 높은 비용이 발생한다.
전용 호스트
단일 고객용 EC2 인스턴스 용량을 갖춘 물리적 서버이다.
가장 비용이 많이드는 EC2 옵션이다.
컴퓨팅 요구 사항의 변화에 따라 용량을 조정해주는 서비스
변화하는 애플리케이션 수요에 따라 Amazon EC2 인스턴스를 자동으로 추가하거나 제거하여 가용성을 높일 수 있다.
동적 크기 조정 및 예측 크기 조정 사용.
동적 크기 조절
CloudWatch 특정 지표를 추적하여 CloudWatch 관련 경보가 ALARM에 있을 때 조절한다.
예측 크기 조절
과거 데이터를 분석하여 예측된 수요에 따라 적절한 수의 Amazon EC2 인스턴스를 자동으로 예약한다.
여러 리소스에 자동으로 트래픽을 분산해주는 서비스.
Auto Scailing 그룹과 함께 사용할 수 있다.
단일 리소스가 전체 워크로드를 혼자 처리하는 것을 방지.
게시/구독 서비스이다.
메시지가 주제에 게시된다.
구독자는 자신의 주제에 대한 메시지를 즉시 수신할 수 있다.
구독자는 웹 서버, 이메일 주소, AWS Lambda 함수 등이 될 수 있다.
메시지 대기열 서비스이다.
애플리케이션 구성 요소 간에 메시지를 전송, 저장, 수신
다른 서비스를 사용할 필요 없이 메시지를 대기열에 넣는다.
- 서버리스란?
코드가 서버에서 실행되지만 서버를 프로비저닝하거나 관리할 필요가 없다는 의미이다. 즉, 서버를 관리할 필요가 없다는 것을 의미한다.
- 서버리스 컴퓨팅의 장점
서버리스 애플리케이션을 자동으로 확장하거나 처리량(through) 및 메모리와 같은 소비 단위를 수정하여 용량을 조정할 수 있다.
서버를 프로비저닝하거나 관리할 필요 없이 코드를 실행할 수 있는 서비스이다.
컴퓨팅 시간에 대해서만 비용을 지불한다. 즉, 코드를 실행하는 동안에
다른 AWS 서비스를 사용하여 코드를 자동으로 트리거한다.
AWS Lambda에 코드를 업로드 -> 이벤트 소스에서 트리거되도록 코드 설정 -> 코드는 트리거될 떄만 실행됨 -> 사용한 컴퓨팅 시간에 대해서만 비용 지불.
모놀리스 애플리케이션
구성 요소가 밀결합된 애플리케이션을 의미한다.
해당 애플리케이션의 구성 요소에는 데이터베이스, 서버, 사용자 인터페이스, 비즈니스 로직 등이 포함될 수 있다.
한 구성 요소에서 장애가 발생하면 다른 구성 요소에도 장애가 발생할 수 있다.
마이크로서비스
구성 요소가 느슨히 결합된 애플리케이션을 의미한다.
단일 구성 요소에 장애가 발생해도 다른 구성요소들은 서로 통신하기 때문에 정상 작동한다.
애플리케이션의 코드와 종속성을 하나의 객체로 패키징하는 표준 방식을 제공한다.
필수적인 보안, 안정성, 확장성 요구 사항이 있는 프로세스와 워크플로에 자주 사용된다.
규모가 커진 컨테이너식 애플리케이션을 컨테이너 오케스트레이션 서비스를 사용하면 배포, 관리, 확장이 용이해진다.
AWS에서 컨테식 애플리케이션을 실행하고 확장할 수 있는 확장성이 뛰어난 고성능 컨테이너 관리 시스템이다.
컨테이너화된 애플리케이션 실행 및 크기 조정
Docker 컨테이너를 지원한다.
간단한 API 호출을 사용하여 Docker 지원 애플리케이션을 제어할 수 있다.
AWS에서 Kubernetes를 실행하는 데 사용할 수 있는 완전 관리형 서비스이다.
Kubernetes 애플리케이션 실행 및 크기 조정
Kubernetes 애플리케이션의 새로운 기능이 릴리스 되면 EKS로 관리되는 애플리케이션에 업데이터를 적용할 수 있다.
컨테이너용 서버리스 컴퓨팅 엔진이다. ECS와 EKS에서 작동된다.
컨테이너 호스팅 플랫폼이다. 즉, 자동으로 서버 인프라를 관리한다.
컨테이너를 실행하는 데 필요한 리소스에 대해서만 비용을 지불하면 된다.
리전은 세개 이상의 가용영역으로 구성된다.
데이터 거버넌스 및 법적 요구 사항 준수, 고객과의 근접성, 요금, 리전 내에서 사용 가능한 서비스를 고려하여 리전을 결정한다.
데이터 거버넌스 및 법적 요구 사항 준수
회사의 위치에 따라 특정 영역에서 데이터를 실행해야 하는 지 고려한다. 또는 회사의 위치 기반 데이터 규정을 고려한다.
고객과의 접근성
고객에게 콘텐츠를 더 빠르게 제공하기 위해 고객과 가까운 리전을 선택하는 것을 고려한다.
리전 내에서 사용할 수 있는 서비스
리전에 따라 제공하는 서비스가 다를 수 있음을 고려한다.
요금
서비스 비용이 리전마다 다를 수 있음을 고려한다.
각 가용영역에는 하나 이상의 데이터 센터가 포함된다.
리전 내의 단일 데이터 센터 또는 데이터 센터 그룹이다.
사고로 인해 가용영역 간의 영향을 덜 받기 위해 서로 수십 마일이 떨어져 있다.
가용영역 간은 프라이빗 링크로 연결되어 있다.
애플리케이션에서 리전을 선택한 후 여러 가용 영역에서 애플리케이션을 실행하는 것이 모범 사례이다.
AWS에서 제공하는 CDN(Content Delivery Network) 서비스이다.
콘텐츠 요청이 오면 엣지 로케이션의 캐시에서 해당 파일을 검색하여 고객에게 전송한다.
- Edge Location
Amazon CloudFront가 고객에게 더 빨리 콘텐츠를 전송하기 위해 콘텐츠 사본을 저장하는 데 사용하는 사이트이다.
온프레미스 위치 내에서 하이브리드 방식으로 AWS 인프라, 서비스, 도구를 실행하는데 사용할 수 있는 서비스이다.
Outpost가 온프레미스 위치에 설치되면 가장 가까운 AWS 리전에 연결된다.
애플리케이션이 클라우드에서 실행되고 있는 것처럼 계속 AWS 서비스에 액세스하고 모니터링 및 관리할 수 있다.
AWS 관리콘솔, AWS Command Line Interface(AWS CLI), 소프트웨어 개발 키트(SDK) 등 세가지 방법으로 AWS 서비스에 액세스하고 상호 작용할 수 있다.
AWS 관리콘솔
AWS Command Line Interface(AWS CLI)
소프트웨어 개발 키트 (SDK)
논리적으로 격리된 섹션을 프로비저닝하여 가상 사설 클라우드를 제공하는 상용 클라우드 컴퓨팅 서비스이다.
서브넷 수준에서 인바운드 및 아웃바운드 트래픽을 제어하는 가상 방화벽이다.
상태 비저장 패킷 필터링을 수행한다.
Amazon EC2 인스턴스의 가상 방화벽이다.
기본적으로 모든 인바운드 트래픽을 거부하고 모든 아웃바운드 트래픽을 허용한다.
상태 저장 패킷 필터링을 수행한다.
도메인 네임 시스템은 호스트의 도메인 이름을 호스트의 네트워크 주소로 바꾸거나 그 반대의 변환을 수행해주는 서비스이다.
블록 스토리지
물리적 하드 드라이브와 같다.
동일한 크기의 데이터 조각(블록)으로 구분된다.
파일이 수정되면 변경된 부분만 업데이트 된다.
EC2 인스턴스에서 사용할 수 있는 블록 스토리지 유형에는 인스턴스 스토어와 EBS 볼륨이 존재한다.
인스턴스 스토어
EBS 볼륨
EC2 인스턴스에서 사용할 수 있는 블록 수준 스토리지 볼륨을 제공하는 서비스이다.
EC2 인스턴스를 중지 또는 종료하더라도 연결된 EBS 볼륨의 모든 데이터를 사용할 수 있다.
EBS 볼륨 백업
증분 백업 방식을 사용한다.
객체 스토리지
Amazon Simple Storage Service(Amazon S3)
객체 수준 스토리지를 제공하는 서비스이다.
Amazon S3는 데이터를 버킷 내에 객체 단위로 저장한다.
모든 유형의 파일을 업로드 할 수 있다.
S3 스토리지 클래스
S3 standard
S3 Standard-IA
S3 One Zone-IA
S3 Intekigent-Tiering
S3 Glacier Instant Retrieval
S3 Glacier Flexible Retrieval
S3 Glacier Deep Archive
파일 스토리지
여러 클라이언트가 공유 파일 폴더에 저장된 데이터에 엑세스할 수 있다.
Amazon Elastic File System(Amazon EFS) 서비스가 존재한다.
관계형 데이터베이스
비관계형 데이터베이스
AWS 서비스와 리소스에 대한 엑세스를 안전하게 관리할 수 있다.
회사의 고유한 운영 및 보안 요구 사항에 따라 액세스 권한을 구성할 수 있다.
IAM 사용자 모음이다.
IAM 정책을 연결할 수 있다.
중앙 위치에서 여러 AWS 계정을 통합하고 관리할 수 있도록 지원한다.
서비스 제어 정책(SCP)을 사용하여 조직의 계정에 대한 권한을 중앙에서 제어할 수 있다.
AWS WAF 규칙
계정에 대한 API 호출을 기록한다.
API 호출자 ID, API 호풀 시간, API 호출자의 소스 IP 주소 등이 포함된다.
쉽게 말해 작업로그이다.
AWS CloudTrail 이벤트
AWS 환경을 검사하고 AWS 모범 사례에 따라 실시간 권장 사항을 제시하는 웹 서비스이다.
AWS Trusted Advisor 대시보드
사용한 컴퓨팅 시간에 대해서만 비용 지불
함수 요청 및 횟수에 따라 비용 지불
Compute Savings Plans에 등록하여 비용 절감
온디맨드 인스턴스가 실행된느 시간에 대해서만 비용 지불
권장 사용 사례에 스팟 인스턴스를 사용하여 비용 절감
Compute Savings Plans에 등록하여 비용 절감
다음 4가지 요소를 기준으로 과금된다.
스토리지
요청 및 데이터 검색
데이터 전송
관리 및 복제
7가지 마이그레이션 전략
재배치
리호스팅
리플랫포밍
리팩터링/리아키텍팅
재구매
유지
사용 중지
Snowball Edge Storage Optimized
Snowball Edge Compute Optimized