모듈 2 소개
가상화 : 단일 컴퓨터의 하드웨어 요소를 일반적으로 가상 머신(VM)이라고 하는 다수의 가상 컴퓨터로 분할할 수 있도록 해주는 기술
하이퍼바이저 : 가상 머신과 실제 하드웨어 사이에서 조정해주는 역할
멀티 테넌시 : 여러 가상머신이 기본적인 하드웨어를 공유하는 것
Amazon EC2 인스턴스 유형
범용 인스턴스
- 컴퓨팅, 메모리, 네트워킹 리소스를 균형 있게 제공
- 애플리케이션, 게임, 백엔드 서버에 적합
컴퓨팅 최적화 인스턴스
- 고성능 프로세서를 활용하는 컴퓨팅 집약적인 애플리케이션에 적합
- 고성능 웹 서버, 컴퓨팅 집약적 애플리케이션 서버 및 게임 전용 서버에 적합
- 많은 트랜잭션을 처리해야 하는 일괄 처리 워크로드에 사용 가능
메모리 최적화 인스턴스
- 메모리에서 대규모 데이터 집합을 처리하는 워크로드에 빠른 성능을 제공
- 많은 메모리가 필요한 워크로드에 적합
액셀러레이티드 컴퓨팅 인스턴스
- 하드웨어 액셀러레이터를 사용하여 일부 기능을 CPU에서 실행되는 소프트웨어보다 효율적으로 수행
- 그래픽 애플리케이션, 게임 스트리밍, 애플리케이션 스트리밍과 같은 워크로드에 적합
스토리지 최적화 인스턴스
- 로컬 스토리지의 대규모 데이터 집합에 대한 순차적 읽기 및 쓰기 액세스가 많이 필요한 워크로드
- 분산 파일 시스템, 데이터 웨어하우징 애플리케이션, 고빈도 온라인 트랜잭션 처리(OLTP) 시스템
- 초당 입출력 작업 수(IOPS) 요구 사항이 높은 애플리케이션
Amazon EC2 요금
온디맨드 인스턴스
- 중단할 수 없는 불규칙한 단기 워크로드가 있는 애플리케이션에 적합
- 1년 이상 지속되는 워크로드에는 권장 X
- 예약 인스턴스를 사용하면 비용 절감 효과 극대화
예약 인스턴스
- 1년 또는 3년 약정으로 구입 가능
- EC2 인스턴스 유형 및 크기 명시 필요
- 표준 예약 인스턴스 : 안정적 상태의 애플리케이션에 적합
- 컨버터블 예약 인스턴스 : 여러 가용 영역 또는 다양한 인스턴스 유형에서 실행해야 하는 경우 적합
- 인스턴스 종료 혹은 속성이 일치하는 새 예약 인스턴스 구입 시까지 요금 부과
EC2 Instance Savings Plans
- 특정 인스턴스 패밀리 및 리전에 대해 1년 또는 3년 기간 동안 시간당 지출 약정
- 약정 기간 동안 Amazon EC2 사용량에 유연성이 필요한 경우 적합
- EC2 인스턴스 유형 및 크기 명시 필요 X
스팟 인스턴스
- 시작 및 종료 시간이 자유롭거나 중단을 견딜 수 있는 워크로드에 적합
- 미사용 Amazon EC2 컴퓨팅 용량을 사용
- 온디맨드 요금의 최대 90%까지 비용 절감 가능
- 용량을 더 이상 사용할 수 없거나 스팟 인스턴스에 대한 수요가 늘면 인스턴스가 중단될 수 있음
전용 호스트
- 사용자 전용의 Amazon EC2 인스턴스 용량을 갖춘 물리적 서버
- 모든 Amazon EC2 옵션 중에서 가장 비용이 많이 듦
Amazon EC2 크기 조정
Amazon EC2 Auto Scaling : 변화하는 애플리케이션 수요에 따라 Amazon EC2 인스턴스를 자동으로 추가하거나 제거하는 서비스
- 동적 조정 - 수요 변화에 대응
- 예측 조정 - 예측된 수요에 따라 적절한 수의 Amazon EC2 인스턴스를 자동으로 예약

- 최소 용량 : Auto Scaling 그룹을 생성한 직후 시작되는 Amazon EC2 인스턴스의 개수
- 희망 용량 : 어플리케이션 실행 시 시작되는 인스턴스의 개수
- 최대 용량 : 수요 증가에 대응하여 확장할 수 있는 인스턴스의 최대 개수
희망 Amazon EC2 인스턴스 수를 지정하지 않으면 희망 용량은 기본적으로 최소 용량으로 설정된다.
Elastic Load Balancing을 사용하여 트래픽 리디렉션

Elastic Load Balancing : 들어오는 애플리케이션 트래픽을 Amazon EC2 인스턴스와 같은 여러 리소스에 자동으로 분산하는 AWS 서비스
Amazon EC2 인스턴스가 여러 개인 경우 Elastic Load Balancing은 워크로드를 여러 인스턴스에 분산시켜 과부하를 막는다.
메시징 및 대기열
모놀리식 애플리케이션
- 애플리케이션이 다른 애플리케이션과 직접 소통하는 구조
- 밀결합된 아키텍처
- 구성 요소 하나가 고장이 나거나 변경되면 다른 구성 요소나 심지어 시스템 전체에 문제 발생
마이크로서비스
- 소결합된 아키텍처
- 전체 애플리케이션에서 장애 발생 방지
- Amazon SNS, Amazon SQS로 구현 가능
Amazon SNS
- 게시 및 구독 서비스
- Amazon SNS 주제를 사용하여 구독자에게 메시지를 게시
Amazon SQS
- 메시지 대기열 서비스
- 애플리케이션이 메시지를 대기열로 전송
- 사용자 또는 서비스는 대기열에서 메시지를 검색하여 처리한 후 대기열에서 삭제
추가 컴퓨팅 서비스
AWS Lambda
- 코드가 서버에서 실행되지만 이러한 서버를 프로비저닝하거나 관리할 필요가 없다(서버리스)
- 트리거 구성 > Lambda에서 트리거 감지 > 코드가 관리형 환경에서 자동으로 실행
- 각 처리를 완료하는 데 15분이 걸리지 않는 빠른 처리에 적합
컨테이너
- 컨테이너 : 애플리케이션의 코드와 종속성을 하나의 객체로 패키징한 것
- Amazon ECS : AWS에서 Docker 컨테이너를 지원하는 서비스
- Amazon EKS : AWS에서 Kubernetes를 실행하는 데 사용할 수 있는 완전관리형 서비스
- AWS Fargate : 컨테이너용 서버리스 컴퓨팅 엔진