udemy 강의를 기반으로 정리한 자료입니다.
https://www.udemy.com/course/best-aws-certified-solutions-architect-associate/
https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-requests.html
Work with Spot Instances - Amazon Elastic Compute Cloud
Work with Spot Instances To use Spot Instances, you create a Spot Instance request that includes the desired number of instances, the instance type, and the Availability Zone. If capacity is available, Amazon EC2 fulfills your request immediately. Otherwis
docs.aws.amazon.com
✅ EC2란?
EC2(Elastic Compute Cloud)란 클라우드 가상 서버로 Renting virtual machines(EC2), Storing data on virual drives(EBS), Distributing load across machines(ELB), Scaling the sevices using an auto-scaling group(ASG) 등의 많은 서비스를 포함함.
📍EC2 sizing & configuration options
원하는 가상머신을 선택하여 컴퓨팅을 대여할 수 있음
- OS: Linux, Windows or Mac OS
- CPU: 가상머신에 사용할 컴퓨팅 성능과 코어의 개수
- RAM: Random Access Memory(RAM)의 크기
- Storage Space:
- Network-attached (EBS & EFS)
- hardware (EC2 Instance Store)
- Network card: spped of the card, Public IP address
- 방화벽: security group
- Bootstrap script (configuration at first launch): EC2 User Data
📍EC2 User Data
EC2 인스턴스가 부팅될 떼 실행되는 스크립트나 데이터를 의미하며, EC2 인스턴스의 초기설정을 자동화 함. ROM 같은 개념일까?
- EC2 User Data script를 사용하여 인스턴스 bootstrapping
- 스크립트는 처음 시작할 때 한 번만 실행되고, 다시 실행되지 않음
- 인스턴스 부팅 시 자동화하는 작업 : 업데이트 설치, 소프트웨어 설치, 인터넷으로 부터 common files 다운로드 등
- User Data script에 작업을 추가할수록 부팅 시 인스턴스 작업량이 증가함
- EC2 User Data script는 루트 계정에서 실행
- User Data는 EC2 인스턴스 시작 시에만 사용되므로 인스턴스 시작 후에는 수정 불가
- User Data는 암호화되지 않은 텍스트로 저장되므로, 민감한 정보를 포함하면 안됨
📍EC2 인스턴스 유형
- General Purpose (범용)
- Compute Optimized (컴퓨팅 최적화)
- Memory Optimized (메모리 최적화)
- Accelerated Computing (가속화된 컴퓨팅)
- Storage Optimized (스토리지 최적화)
- Instance Features (인스턴스 기능)
- Measuring Instance Performance (인스턴스 성능 측정)
🧩 명명 규칙
예시) m5.2xlarge
m: 인스턴스 클래스
5: 인스턴스 세대 (AWS improves them over time)
2xlarge: 인스턴스 크기
🧩 General Purpose(범용)
⦁ 웹 서버나 코드 repositories와 같은 다양한 작업에 적합함
⦁ Compute, 메모리, 네트워크 간의 균형이 잘 맞음
🧩 Compute Optimized(컴퓨팅 최적화)
⦁ 컴퓨터 집약적인 애플리케이션에 최적화된 인스턴스임
⦁ 고성능 프로세서 활용
◦ Batch processing workloads
◦ Media transcoding
◦ High performace web server
◦ Hight performance computing (HPC)
◦ 머신러닝 등
⦁ C로 시작하는 인스턴스 이름을 가짐
🧩 Memory Optimized(메모리 최적화)
⦁ 메모리에서 대규모 데이터 셋을 처리하기 위해 빠른 성능을 제공
⦁ 사용 사례
◦ High performance, relational/non-relational databases
◦ Distributed web scale cache stores
◦ In-memory databases optimized for BI (business intelligence)
◦ Applications performing real-time processing of big unstrutured data
🧩 Storage Optimized(스토리지 최적화)
⦁ 로컬에서 매우 큰 데이터 셋에 대한 순차적 읽기, 쓰기 접근을 위해 설계됨
⦁ 사용 사례
◦ H igh frequency online transcation processing (OLTP) systems
◦ Relational & NoSQL databases
◦ Cache for in-memory databases (ex: Redis)
◦ Data warehousing applications
◦ Distributed file systems
✅ Security Groups
- 보안그룹은 AWS에서 네트워크 보안 실행의 핵심임
- EC2 인스턴스에서 트래픽이 들어가고 나오는 것을 허용하는 방법을 통제하는 방화벽 역할을 함
- 보안그룹은 "허용 규칙"만 포함하고 있으며, 보안그룹의 규칙들은 IP 주소나 다른 보안그룹 참조 가능
📍규제사항
- 포트에 대한 액세스
- 허용된 IP 범위 - IPv4, IPv6
- 내부 네트워크에 대한 제어
- 외부 네트워크에 대한 제어
📍보안그룹에 대해 알아야 할 것들
- 여러 개의 인스턴스에 연결할 수 있으며, 보안 그룹과 인스턴스 간의 일대일 관계는 없음
- 특정지역과 VPC에 제한되므로, 지역을 전환하면 새 보안 그룹을 생성하거나 다른 VPC 생성
- 보안 그룹은 EC2 외부에 존재하므로, 트래픽이 차단되면 EC2 인스턴스를 확인할 수 없음
- SSH 액세스를 위해 한 개의 별도의 보안 그룹 유지 추천
- 타임아웃으로 어플리케이션에 접근이 불가능하다면, 그것은 보안 그룹 이슈
- "연결이 거부됨" 에러는 어플리케이션에 문제가 생긴것임
- 기본적으로 내부 트래픽은 모두 막고, 외부 트래픽은 모두 허용
📍주요 포트번호
- 22 = SSH (Secure Shell):리눅스 인스턴스에 로그인 하는 경우에 사용
- 21 = FTP (File Transfer Protocol): 파일 업로드 및 공유에 사용
- 22 = SFTP (Secure File Transfer Protocol): SSH를 사용한 파일 업로드에 사용
- 80 = HTTP: unsecured websites 접속할 때 사용
- 443 = HTTPS: secured websites 접속할 때 사용
- 3389 = RDP (Remote Desktop Protocol) - Windows instance에 로그인하기 위해 사용
✅ SSH(Secure Shell)
네트워크 상의 다른 컴퓨터에 로그인하거나 원격 시스템에서 명령을 실행하고 다른 시스템으로 파일을 복사할 수 있도록 해 주는 응용 프로그램 또는 그 프로토콜
✅ EC2 인스턴스
📍EC2 인스턴스 연결
- SSH 클라이언트를 사용하여 직접 EC2 인스턴스에 접속하는 대신, AWS 서비스에서 EC2 인스턴스에 직접 연결할 수 있음
- SSH 클라이언트 설정을 관리하거나 SSH 서버를 설치 및 구성하는 데 필요한 작업을 줄일 수 있음
- 다운로드 받은 키 없이 접근 가능
- 22번 포트 열려있어야 함
📍EC2 인스턴스 구매 옵션
- On-Demand Instances: 필요한 대로 실행할 수 있는 인스턴스로, 단기적인 프로젝트에 사용하기 좋음. 비용 예측이 가능하며, 초 단위로 요금을 지불함
- 비용이 가장 많이 들지만 바로 지불할 금액이 없음
- Linux와 Windows는 1분 이후 초 단위로 청구되며, 이외에는 시간 단위로 청구됨
- Reserved (1 & 3 years): 주문형 인스턴스에 비해 72% 할인이 되며, 특정 인스턴스 속성을 예약함. 선불 여부와 인스턴스 범위 선택, 사고파는 것이 가능하며, 데이터베이스와 같이 안정적인 상태를 유지하는 응용 프로그램에 권장됨
- Reserved Instance: 장기적인 워크로드에 사용
- Convertible Reserved Instance: 장기적인 워크로드 & 유연한 인스턴스 타입
- Saving Plans (1 & 3 years): 장기 사용을 기반으로 할인받을 수 있고, 1~3년 간 시간당 $10와 같이 사용량 지정 가능. 사용량 이상 사용 시, On-Demand 인스턴스처럼 지불. 특정 리전에 국한되며 유연하게 사용 가능.
- Spot Instances: 가장 비용이 효율적인 인스턴스이나, 인스턴스들이 손실될 수 있어 신뢰성이 낮음. On-Demand 인스턴스에 비해 90% 이상 할인받을 수 있으나, 최대 사용 가격이 현재 spot 가격보다 낮으면 권한을 잃음
- Dedicated Hosts: 사용자 전용으로 EC2 인스턴스 용량을 갖춘 물리적 서버 전체를 예약해서 인스턴스 배치를 제어할 수 있음. 가장 비싼 옵션으로, 복잡한 라이센스 모델을 가진 소프트웨어에 유용
- Dedicated Instances: 사용자 전용으로 하드웨어에서 작동하는 인스턴스로, 다른 고객과의 하드웨어 공유가 없음. 하지만 같은 계정에 있는 다른 인스턴스와 하드웨어 공유 가능. 인스턴스 배치 제어 불가능
- Capacity Reservations: 원하는 기간 동안 특정 AZ(Availability Zone)에 용량 예약이 가능하여, 원하는 때에 용량에 접근할 수 있음. 특정 AZ에 속해야 하는 단기간 방해받지 않는 작업에 적합
아래는 리조트에 비유한 예시!!
✅ EC2 Spot Instance
📍 특징
- On-demand이 데해 최대 90%의 할인율.
- max spot price를 설정하여, current spot price < max spot price일 때 인스턴스를 얻을 수 있음.
- 시간당 spot 가격은 offer 및 용량에 따라 변동
- 현재 spot 가격이 최대 가격보다 높은 경우 2분의 유예 시간 동안 인스턴스를 중지하거나 종료 가능
- 다른 방법으로는 Spot Block이 있음
- Spot Instance를 일정 기간동안 (1-6시간) 차단하는 기능
- 드물게 인스턴스가 회수되는 경우도 있음
- 데이터베이스와 같이 중요한 작업보다는 실패 가능성이 있는 작업을 할 때 유용함
📍종료방법
- One-time request : Spot request가 사라져도 되는 경우에 사용하는 것으로, Spot request 즉시 인스턴스가 시작되어 일회성 요청에 따라 Spot request는 바로 사라짐
- Persistent request : 인스턴스가 중지되거나 Spot price이 되는 경우, Spot request가 다시 검증되고 난 후 Spot Instance가 재시작 되는 것임. Spot request의 Valid from부터 Valid until까지의 유효기간 동안 사용자가 요청한 개수의 인스턴스들이 계속해서 유효하므로, Spot Instance가 중지되어도 Spot request는 여전히 활성화되어 있기 때문에 Spot request가 자동적으로 인스턴스를 재시작
- Spot request 취소 : open, activate, disabled 상태 (failed, cancelled, close 상태 xxxxxxxxxx)
- 영구 종료 : Spot 요청 취소 후, 연관된 Spot Instance 종료
📍Spot Fleets
Spot Instance 세트 + (선택) On-Demand Instance
- 사용자가 사용하고자하는 인스턴스의 유형과 AZ을 지정하는 Spot Instance request와 달리, Spot Fleet은 사용자 요구 조건에 따라 인스턴스의 유형과 AZ 선택. 예를 들어, 정해진 예산 혹은 원하는 용량에 도달한 경우 인스턴스 실행 중단 가능
- Spot Instance 할당 전략
- lowestPrice: 가장 적은 비용부터 (비용 최적화, 짧은 워크로드)
- diversified: 모든 pool에 분산 (가용성 우수, 긴 워크로드)
- capacityOptimized: 인스턴스 수에 대한 최적의 용량을 갖춤
- priceCapacityOptimized (recommended): 가장 높은 용량을 가진 pool을 선택한 다음 가장 낮은 가격의 pool을 선택(대부분의 워크로드에 가장 적합함)
- 자동으로 최저 가격의 Spot Instance를 요청 가능
'Certificates > AWS-SAA-CO3' 카테고리의 다른 글
[AWS SAA-C03] Examtopics Dump (41 - 60) (0) | 2024.05.17 |
---|---|
[AWS SAA-C03] Examtopics Dump (21 - 40) (0) | 2024.05.17 |
[AWS SAA-C03] Examtopics Dump (1 - 20) (1) | 2024.05.14 |
[AWS SAA-C03] IAM (0) | 2024.05.14 |
[AWS SAA-C03] AWS 기초 (0) | 2024.05.05 |