develop/AWS

[SAA] Amazon EC2 (Amazon Elastic Compute Cloud)

hsleeee 2024. 4. 17. 12:14
반응형
SMALL

1. Amazon EC2 (Amazon Elastic Compute Cloud)

  • 클라우드 가상 서버
  • Infrastructure as a Service
  • EC2는 하나의 서비스가 아닌 많은 서비스를 포함하고 있음
    • EC2: Renting virtual machines
    • EBS: Storing data on virtual devices
    • ELB: Distributing load across machines
    • ASG: Scaling the services using an auto-scailing group

- Permissions

  • 사용자(그룹)에게 권한, 또는 IAM Policy 라고 불리는 JSON 문서 지정 가능
  • 해당 문서를 통하여 사용자들의 권한 정의 가능
  • AWS에서는 least privilege principle(최소 권한의 원칙)을 사용하여 사용자가 꼭 필요로 하는 권한만 제공

- Configration Options

  • OS: Operating System (ex: Linux, Windows, Mac ..)
  • CPU: 가상 머신에 사용할 컴퓨팅 성능과 코어의 수
  • RAM: Random Access Memory
  • Storage
    • EBS, EFS: Network-attached
    • EC2 Instance Store: Hardware
  • Network Card: speed of the card, Public IP Address
  • 보안그룹(방화벽, security group)
  • EC2 User Data(bootstrap script): ec2 인스턴스가 부팅될 때 사용되는 스크립트, ec2 인스턴스의 초기 설정 자동화

- Instance Types

  • General Purpose (범용)
    • 웹 서버나 코드 레파짙리와 같은 다양한 작업에 적합
    • 컴퓨팅, 메모리, 네트워크 간의 균형이 잘 맞음
    • Naming: T, M 등의 이름
  • Compute Optimized (컴퓨팅 최적화)
    • 컴퓨터 집약적인 애플리케이션에 최적화된 인스턴스
    • 고성능 프로세서의 확용(ex: 배치 프로세스, 미디어 트랜스코딩, 고성능 웹서버, 고성능 컴퓨팅, 머신러닝, 게임 등)
    • Naming: C5, C6 등의 이름
  • Memory Optimized (메모리 최적화)
    • 고성능 디비로 분산 웹 캐시 저장소, 인메모리 DB, 실시간 저장 서버
    • Naming: R, X등의 이름
  • Accelerated Computing (가속화된 컴퓨팅)
  • Storage Optimized (스토리지 최적화)
    • 로컬 스토리지에서 매우 큰 데이터 세트에 대해 많은 순차적 읽기 및 쓰기 액세스를 요구하는 워크로드를 위하여 설계
    • OLTP(High Frequnce Online Transaction Processing), Relational & NoSQL Database, Cache for in-memory database(ex: redis), data warehousing applications, distributed file systems ...
  • Instance Features (인스턴스 기능)
  • Measuring Instance Performance (인스턴스 성능 측정)

- Security Groups

  • 보안 그룹은 AWS에서 네트워크 보안을 실행하는 핵심 구성 요소
  • EC2 외부의 방화벽
  • EC2 인스턴스의 트래픽 제어
  • 보안 그룹은 allow(허용) 규칙만 포함
  • IP 주소나 다른 보안 그룹 참조 가능(상속 가능)
  • VPC와 region에 묶여있고 변경되면 재설정 필요
  • EC2 접근에 timeout 발생 시에는 보안그룹 문제이고, connection refused가 발생하면 앱 단의 에러이다.
  • 모든 인바운드 트래픽은 차단되어 있지만, 모든 아웃바운드 트래픽은 허용되어 있음
  • 포트
    • 22: ssh(secure shell) linux 인스턴스에 접근하는 포트
    • 21: ftp(file transfer protocal) 파일 전송 관련 포트
    • 80: http unsecure website 접근 허용
    • 443: https secure website 접근 허용
    • 3389: rdp(remote desktop protocol) windows 인스턴스에 접근하는 포트

- EC2 Instance

  • On-Demand(온디맨드)
    필요할 때 바로 이용 가능
    단기적인 워크로드에 사용
    비용 예측 가능
    초 단위로 요금 지불
    가장 비쌈
    단기적이고 중단이 없는 워크로드가 필요할 때, 애플리케이션의 거동을 예측할 수 없을 때 사용
    Linux or Windows는 1분 이후 초단위로 청구, 다른 OS는 시간 단위로 청구
  • Reserved(예약형)
    On-demand에 비해 72% 저렴
    특정 인스턴스 속성을 예약하여 사용(Instance Type, Region, Tenancy, OS)
    1&3년 단위 계약
    후불 결제, 부분 선결제, 전액 선결제 가능
    • Reserved Instance: 장기적인 워크로드에 사용
    • Convertible Reserved Instance: 유연한 인스턴스 타입, 타입 변경 가능. 유연성이 크기 때문에 할인율이 약간 적음 (max 66%)
  • Saving Plans(절약형)
    장기간 사용 시 할인 가능(Rls와 마찬가지로 max 72%)
    1년 혹은 3년동안 시간당 $10으로 약정
    한도 초과 시에는 On-Demand 가겨으로 청구
    특정 Instance family & AWS Region으로 고정 (ex: M5 in us-east-1)
    유연한 다른 옵션
    • Instance Size(ex: m5.xlarge, m5.2xlarge)
    • OS(ex: Linux, Windows)
    • Tenancy(ex: Host, Dedicated, Default)
  • Spot Instances(스팟형)
    On-demand에 비해 *_최대 90% *_의 할인율
    현재 Spot 가격이 사용자가 지정한 최대 가격보다 높아지면 인스턴스가 종료될 수 있음
    AWS에서 가장 Cost-Effecient(비용 효율적)한 인스턴스
    중요한 작업이나 DB작업에는 적절하지 않음
  • Dedicated Hosts(전용 호스트)
    실제 물리적 서버 수령
    On-Demand 초당 지불 혹은 1년 or 3년형으로 예약 가능
    가장 비싼 옵션
    라이센스 모델, 법규 준수를 위하여 사용
    복잡한 라이센싱 모델을 가진 소프트웨어 또는 강력한 규제 또는 규정 준수 요구사항을 가진 회사에 유용
  • Dedicated Instance(전용 인스턴스)
    사용자의 전용 하드웨어에서 실행되는 인스턴스
    해당 계정의 다른 인스턴스와 함께 하드웨어 공유 가능, 하드웨어에 인스턴스 배치에 대한 통제권은 없음
    전용 호스트와 전용 인스턴스의 차이: 전용 인스턴스는 자신만의 인스턴스를 자신만의 하드웨어에서 실행, 전용 호스트는 물리적 서버 자체에 대한 접근권을 갖고 낮은 수준의 하드웨어에 대한 가시성 제공)
  • Capacity Reservations(용량 예약형)
    원하는 동한 특정 AZ에서 On-Demand 인스턴스 용량 예약 가능
    필요할 때 언제든 EC2 용량에 액세스 가능
    약정 기간이 없으며, 요금 할인 불가
    Regional Reserved Instance와 Saving Plans와 결합하여 요금 할인 혜택 가능
    인스턴스를 실행 하던 안하던 On-Demand 요금 부과
    특정 AZ에서 실행해야 하는 단기적이고 중단되지 않는 워크로드에 적합

- Spot Instance

  • 최대 금액치를 정해두고 90% 할인받는 것(On-Demand와 비교했을 때)
  • 가용 영역 AZ에 따라 금액이 다르기 때문에 설정한 임계값을 초과할 경우에는 종료되고 아래에 있으면 실행됨
  • 최대 금액 도달 시 옵션
    • Define Max: 2분의 유예를 두고 인스턴스를 중지한 뒤 최대 금액치 아래로 떨어지면 중단했던 부분부터 재시작 혹은 꺼버리는 방법. 매 작업을 할 때마다 새로운 인스턴스를 사용하는 것을 의미함
    • Spot Block: AWS로부터 스팟 인스턴스를 회수당하지 않기 위하여 1 ~ 6시간동안 인스턴스 차단
  • Spot Requests
    • One-time Request: Spot Request가 이해되는 즉시 인스턴스 시작, 일회성 요청이기 때문에 Spot Request가 삭제됨.
    • Persistent request: Spot Request의 Valid from 부터 Valid until까지의 유효기간 동안 사용자가 요청한 개수의 인스턴스들이 유효함. 즉 어떤 이유로 인스턴스가 중지 되거나 Spot Price의 상승을 이유로 방해받은 경우에는 Spot Request가 다시 검증되고 나면 Spot Instance가 재시작됨. 따라서 Persistent Request로 실행된 인스턴스의 경우에는, Spot Instance가 중지되어도 Spot Request는 여전히 활성화 되어있기 떄문
    • 자동적으로 인스턴스 재시작
    • Spot Request가 취소되기 위해서는 open, active, disabled 상태여야 함(NOT failed, NOT canceled, NOT closed)
    • Spot Request가 취소되더라도 인스턴스는 종료되지 않는다.
    • Spot Instance를 영구히 종료하고 재실행되는 일이 없도록 하기 위해서는 먼저 Spot 요청 취소 후, 연관된 Spot Instance를 종료해야 함

- Spot Fleets

  • Spot Fleet = set of Spot Instance + (Optional) On-Demand Instance
  • 사용자의 요구(최저가 선택 등) 조건에 따라 인스턴스의 유형과 가용 영역을 선택하도록 함
  • 가격 제약 조건을 충족하며 대상 용량을 맞추려고 시도
    • 사용 가능한 Launch Pool을 정의하고 가장 적합한 하나를 골라 수행 (Instance. Type, OS, Availability Zone)
    • 여러개의 런치 풀을 설정할 수 있으며 fleet이 가장 적합하고 좋은 런치풀을 선택
    • Spot Fleet이 정해진 예산 혹은 원하는 용량에 도달한 경우에 인스턴스 실행을 멈춤
  • Spot Instance 할당 전략
    • Lowest Price: 가장 적은 비용을 가진 풀에서부터 실행(비용 최적화, 짧은 워크로드)
    • Diversified: 사용자가 정의한 모든 풀에 걸쳐 인스턴스가 분산되어 실행됨(가용성 우수, 긴 워크로드)
    • Capacity Optimized: 인스턴스 수에 대한 최적의 용량을 갖춘 풀을 찾아주는 옵션
    • Price Capacity Optimized (Recommended): 대부분의 워크로드에 가장 적합함
반응형
LIST