Skip to main content

CLF-C02 Cloud Computing

· 11 min read
유기한
Principal Engineer @ Samsung

EC2 인스턴스 유형

  • 인스턴스 유형은 인스턴스 패밀리로 구분되며, 특정 유형의 작업에 최적화됨
  • CPU, 메모리, 스토리지 및 네트워크 용량의 다양한 조합으로 제공
  • 범용, 컴퓨팅 최적화, 메모리 최적화, 엑셀러레이티드 컴퓨팅, 스토리지 최적화 등의 패밀리 존재
    • 범용 : 균형적인 자원, 웹서비스나 코드리포지토리 같은 다양한 워크로드에 사용
    • 컴퓨팅 최적화 : 게임 서비스, 고성능 컴퓨팅, 하이파워 컴퓨팅, 과학 모델링
    • 메모리 최적화 : 데이터 베이스와 같은 메모리 집약적인 작업에 적합
    • 엑셀러레이티드 컴퓨팅 : 부동 소수점 계산, 그래픽 처리 혹은 머신 러닝 모델 학습드에 적합
    • 스토리지 최적화 : 대규모의 데이터를 빠르게 처리해야 하는 데이터 웨어 하우스나 하둡과 같은 워크로드에 적합

EC2 요금

  • 온디멘드 요금제

    • 아무런 사전 계약이나 허가없이 사용 가능

    • 선결제 비용이나 약정 미적용

    • 사용한 컴퓨팅 시간에 대해서 비용 지불

    • 1년 이상 지속되는 워크로드에는 권장 X

  • Savings Plan

    • 일정한 사용량을 약정하는 대가로 EC2를 저렴하게 제공

    • 1년 or 3년의 기간으로 약정하면 사용한 시간에서 약정한 용량만큼 할인된 비용

    • 유연한 가격 책정 모델로 72%까지 절약 가능

    • ==EC2뿐만 아니라 Fargate, Lambda== 사용량에도 적용할 수 있는 유연한 요금제

    • 인스턴스 유형에 상관없이 선택한 ==리전==과 함께 동일한 ==인스턴스 패밀리== 사용시 비용 절감 효과

  • Cost Explorer

    • AWS 비용 및 사용량을 시각화

    • Savings Plan옵션을 고려하고 있는 경우, 7, 30, 60일 동안의 사용량을 분석

    • Savings Plans를 위한 맞춤형 권장사항 제공

  • 예약 인스턴스(RI)

    • 종류

      • 표준 예약 인스턴스 : ==인스턴스 유형 및 크기, 플랫폼, 테넌시 등이 고정, 가용영역을 지정 가능==

      • 컨버터블 예약 인스턴스 : EC2 인스턴스를 여러 가용영역 또는 다양한 인스턴스 유형에서 실행해야 하는 경우 적합

    • 꾸준한 상태의 워크로드나 사용량이 예측 가능한 워크로드에 적합

    • 온디맨드 대비 최대 75% 저렴

    • 1년, 3년 약정하면 할인 가능하며, 3가지 결제 방법 지원

      • 전액 선결제 : 약정 시점에 전액 지불

      • 부분 선결제 : 약정할 때 금액 일부를 지불

      • 선결제 없음 : 후불로 지급

    • 예약기간 종료 후 온디멘드 요금 부과

  • 스팟 인스턴스

    • 온디맨드 대비 최대 90% 할인 가능

    • AWS가 필요시 언제든 인스턴스 회수

    • 2분전에 경보가 제공

    • 배치 워크로드에 적합

    • 스팟 요청을 했는데 EC2용량을 사용할 수 없다면, 사용할 수 있을때까지 요청이 성공하지 못할 수 있음.

  • 전용 호스트

    • EC2가 동작하는 물리적인 호스트를 전용으로 사용

    • 다른 사용자와 물리적 호스트, 서버머신을 공유하지 않음.

    • 기존 소켓당, 코어당 또는 VM당 소프트웨어 라이선스를 사용하여 라이선스 규정 준수를 유지

    • 유형

      • 온디맨드 전용 호스트

      • 전용 호스트 예약

    • EC2 모든 옵션중에서 가장 비쌈

EC2 크기 조정

  • 확장성

    • 필요한 리소스만으로 시작하고 확장 및 축소를 통해 수요 변화에 자동으로 대응
  • Amazon EC2 Auto Scaling

    • 동적 조정 : 수요에 따라 자동으로 수평 또는 수직으로 인스턴스가 확장되게 설정 가능
    • 예측 조정 : 예측된 수요에 따라 적절한 수의 Amazon EC2 인스턴스를 자동으로 예약
    • 증가 방법
      • 수직 확장
      • 수평 확장
  • Auto Scaling 그룹의 크기를 구성할 때 최소 Amazon EC2 인스턴스 수를 1로 설정

    • 즉, 하나 이상의 인스턴스가 항상 실행 중
  • 크기 조정 방식

    • 최소 용량 : 설정에 따라 다르나 최소용량은 Amazon EC2 인스턴스 1개

    • 희망 용량 : 일반적으로 실행되는 기본적은 인스턴스 수량

      • 지정하지 않으면 희망 용량은 최소용량으로 설정
    • 최대 용량 : 수요 증가에 대응하여 확장하되, 최대 갯수를 제한할 수량

Elastic Load Balancing (ELB)

  • 어플리케이션 트래픽을 Amazon EC2 인스턴스와 같은 여러 리소스에 자동으로 분산하는 서비스

  • Auto Scaling 그룹으로 들어오는 모든 웹 트래픽의 단일 접점 역할을 담당

  • 리전 단위의 구조

  • 자동으로 확장

  • 트래픽이 증가하면 비용추가 없이 추가 처리량을 처리하도록 설계

  • ELB는 외부 트래픽 뿐만 아니라 내부 트래픽 모두 처리

  • 종류

    • Application Load Balancer (ALB)

      •  HTTP 및. HTTPS 트래픽의 로드 밸런싱에 가장 적합
      • WebSocket을. 사용하여 경로 기반 라우팅, 호스트 기반 라우팅 및 양방향 통신 채널을 지원z
      • 7계층에서 작동
    • Network Load Balancer (NLB)

      • 최고의 성능이 요구되는 TCP(전송 제어 프로토콜), UDP(사용자 데이터그램 프로토콜) 및. TLS(전송 계층. 보안) 트래픽의 로드 밸런싱에 가장 적합
      • 4 계층에서 동작
    • Classic Load Balancer (CLB)

      • Amazon EC2 인스턴스에. 대한 기본 로드 밸런싱을 제공
    • Gateway Load Balancer

      • 3계층 게이트웨이와 4계층 로드밸런싱 기능을 모두 제공
      • 패킷의 어떤 부분도 변경하지 않는 장치

메시징 및 대기열

  • Amazon Simple Notification Service (Amazon SNS)

    • 게시 및 구독 서비스
    • 게시자는 SNS 주제를 사용하여 구독자에게 메시지를 게시
    • 구독자는 웹 서버, 이메일 주소, AWS Lambda함수 또는 그밖의 여러 옵션이 될 수 있음.
  • Amazon Simple Queue Service. (Amazon SQS)

    • 메시지 손실이나 다른 서비스 사용 없이 소프트웨어 구성 요소 간에 메시지를 전송, 수신 가능
    • SQS에서는 어플리케이션이 메시지를 대기열로 전송
    • 사용자 또는 서비스는 대기열에서 메시지를 검색하여 처리한 후 대기열에서 삭제

추가 컴퓨팅 서비스

  • EC2는 유연하고, 안정적이며, 확장 가능하지만 인스턴스 관리가 필요함.

  • Serverless 서비스는 서버 프로비저닝이나 관리를 AWS가 처리

    • 처리량 및 메모리와 같은 소비단위를 수정하여 어플리케이션 용량을 조정 가능

AWS Lambda

  • AWS Lambda는 서버를 프로비저닝하거나 관리할 필요 없이 코드를 실행할 수 있는 서비스
  • 사용한 컴퓨팅 시간에 대해서만 비용 지불
  • 코드를 실행하는 동안에만 요금이 부과

컨테이너

  • 컨테이너는 어플리케이션의 코드와 종속성을 하나의 객체로 패키징하는 표준방식
  • 보안성, 신뢰성, 확장성 요구 사항이 매우 중요한 프로세스 및 워크플로에도 컨테이너를 사용

Amazon Elastic Container Service (Amazon ECS)

  • AWS에서 컨테이너식 어플리케이션을 실행하고 확장할 수 있는 확장성이 뛰어난 고성능 컨테이너 관리 시스템
  • Docker Container 지원
  • 오픈소스 Docker Community Edition 및 구독기반의 Docker Enterprise Edition의 사용을 지원

Amazon Elastic Kubernetes Service (Amazon EKS)

  • AWS에서 Kubernetes를 실행하는데 사용할 수 있는 완전관리형 서비스

AWS Fargate

  • Container용 서버리스 컴퓨팅 엔진
  • Amazon ECS와 Amazon EKS에서 작동
  • 서버를 프로비저닝하거나 관리할 필요가 없음
  • 컨테이너를 실행하는 데 필요한 리소스에 대해서만 비용을 지불