본문 바로가기
Amazone Web Service

AWS Educate : Compute

by Seungyoon1786 2024. 5. 29.

이 글은 AWS Educate - Getting Started with Compute를 바탕으로 작성하였습니다.

 

 

https://www.awseducate.com/student/s/content

Functional cookies help us provide useful site features, remember your preferences, and display relevant content. Approved third parties may set these cookies to provide certain site features. If you do not allow these cookies, then some or all of these se

www.awseducate.com


EC2란?

  • AWS에서 가상 머신(VM)을 사용하여 컴퓨팅 용량을 제공하는 서비스
  • 물리적인 서버 대신 가상화 기술을 사용하여 효율성, 유연성, 비용 효율성을 제공
  • 사용자는 필요한 만큼의 컴퓨팅 용량만 사용하고 비용만 지불

EC2를 사용함으로써 얻는 효과

유연성과 확장성:

  • 필요에 따라 새로운 서버를 빠르게 가동 및 중단, 종료 가능
  • 다양한 운영 체제 및 구성 선택 가능
  • 수천 개의 EC2 인스턴스를 온디맨드로 프로비저닝 가능
  • 비즈니스 규모에 맞춰 용량 확장 가능(인스턴스의 크기를 조정하는 수직 확장)
  • 운영 체제: Windows, Linux, Mac OS 가능
  • 애플리케이션: 자체 사내 애플리케이션, 웹 애플리케이션, 데이터베이스, 타사 소프트웨어
  • 사용자가 원하는 방식의 운영체제와 구성의 조합 가능

비용 효율성:

  • 사용한 만큼만 지불
  • 온프레미스 서버에 비해 비용 효율적이며 유연

빠른 시작:

  • AWS에서 이미 데이터 센터, 서버, 네트워킹 구축 완료
  • 사용자는 EC2 인스턴스 요청만 하면 즉시 사용 가능 -> 온프레미스의 경우 서버를 사용하기 위해 상당한 시간이 소요

보안:

  • 하이퍼바이저를 통해 각 EC2 인스턴스 격리 및 보호
  • 다양한 보안 기능 제공

하이퍼바이저란? : 멀티 테넌시(가상 머신간 기본 하드웨어 공)을 서로 분리해주는 것

네트워킹 측면 제어:

  • 사용자 정의 가능한 네트워킹 설정
  • 공개 또는 비공개 액세스 제어

AWS를 사용하면 이러한 서비스로서의 컴퓨팅 모델 (CaaS) 을 통해서 훨씬 더 쉽고 비용 효율적으로 서버를 확보할 수 있음

주요 EC2 인스턴스 유형

EC2 인스턴스는 다양한 작업에 최적화된 가상 머신으로, CPU, 메모리, 스토리지, 네트워킹 성능 면에서 각기 다른 특징을 가지고 있으며 각 EC2인스턴스 유형은 인스턴스 패밀리로 분화됨

 

범용 인스턴스 :

  • 웹,게임, 어플리케이션용 백엔드 서버와 코드 리퍼지토리 같은 다양한 워크로드에 적합
  • 컴퓨팅, 메모리, 네트워킹 리소스가 균형 잡혀 있음

컴퓨팅 최적화 인스턴스 :

  • 게임 서버, 고성능 컴퓨팅(HPC), 과학모델링 같은 컴퓨팅 집약적인 작업에 적합
  • 범용 인스턴스처럼 서버 워크로드에도 적합
  • 컴퓨팅 최적화 인스턴스를 단일 그룹에서 많은 트랜잭션을 처리해야 하는 일괄 처리 워크로드에 사용 가능
  • 강력한 CPU 성능을 제공

메모리 최적화 인스턴스 :

  • 데이터베이스, 메모리 집약적인 애플리케이션 등 메모리 성능이 중요한 작업에 적합
  • 메모리에서 대규모 데이터 집합을 처리하는 워크로드에 빠른 성능을 제공

스토리지 최적화 인스턴스 :

  • 대규모 데이터 집합에 대한 순차적 읽기 및 쓰기 액세스가 많이 필요한 워크로드를 위해 설계
  • 스토리지 최적화 인스턴스에 적합한 워크로드의 예로는 분산 파일 시스템, 데이터 웨어하우징 애플리케이션, 고빈도 온라인 트랜잭션 처리(OLTP) 시스템 등
  • 데이터 웨어하우스, Hadoop 등 대규모 데이터 처리 작업에 적합
  • 로컬에 저장된 데이터에 대한 고성능 

엑셀러레이티드 컴퓨팅 인스턴스 :

  • 하드웨어 액셀러레이터 또는 코프로세서를 사용하여 일부 기능을 CPU에서 실행되는 소프트웨어에서 보다 더 효율적으로 수행
  • 부동 소숫점 숫자 계산, 머신 러닝, 그래픽 처리, 하드웨어 엑셀러레이터에 적합

EC2 관리

 

Amazon EC2 수명주기 상태

인스턴스 상태 설명 인스턴스 사용량 청구
보류중 실행 상태로 들어가기 위한 준비상태 청구 되지않음
실행중 인스턴스가 실행 중이며 사용준비 완료 청구됨
재부팅 중 인스턴스가 운영 체제를 재부팅 중 청구됨
종료 중 인스턴스가 종료를 준비 중 청구되지 않음
종료됨 인스턴스가 영구적으로 삭제되어 시작 불가 청구되지 않음
중지 됨 인스턴스가 종료되어 사용할 수 없음. 언제든 시작 가능 청구되지 않음
중지 절전 모드 진입 인스턴스가 종료되어 사용할 수 없음. 언제든 시작 가능 청구되지 않음

 

수직적 크기 조정

 

Amazon EC2에서 필요에 따라 인스턴스 크기(성능)를 조정(확장 또는 축소)하는 옵션인 수직적 크기 조정에는 3개의 단계를 마무리 해야한다.

 

출처 : https://www.awseducate.com/student/s/content

 

  1. 인스턴스 중지
  2. 인스턴스의 크기 또는 유형을 원하는 대로 변경
  3. 인스턴스를 시작

수직적 크기 조정은 다음과 같은 단점을 포함한다.

  • 수동 프로세스(AWS Lamdba를 사용하여 자동화 가능)
  • 관리해야하는 인스턴스가 많을 경우 번거로울 수있음
  • 인스턴스 확장성은 제한됨
  • 변경하는 동안 인스턴스 사용 불가

수직적 조정 사용 사례로는 인스턴스의 크기가 일반적인 처리 태스크를 처리하는 것보다 큰 경우가 있다. 

 

수평적 크기 조정

트레픽 수용에 따라 EC2 인스턴스를 추가 또는 제거하는 프로세스인 수평적 크기조정은 인스턴스를 필요한 만큼 추가하고 더 이상 필요하지 않을 경우 종료가능하다. 해당 작업은 AWS Auto Scaling을 사용하여 자동화가 가능하다.

 

 

수평적 크기 조정은 다음과 같은 이점을 가진다

  • 내결함성 개선
  • 애플리케이션 가용성 향상
  • 비용절감
  • 구현을 위해 가동 중단 시간이 필요하지 않음

사용 사례로는 인스턴스가 처리할 수 있는 것보다 많은 양의 처리 요청을 받는 경우이다. (워크로드 분산)

AWS Auto Scaling

Amazon EC2 Auto Scaling을 사용하면 애플리케이션 가용성을 유지하고 사용자가 정의한 내용에 따라 EC2인스턴스를 자동으로 추가하거나 제거가능하다.

 

수요가 증가하면 새 인스턴스를 원활하게 자동으로 시작한다. 수요가 줄어들면 불필요한 인스턴스를 자동으로 종료한다. 높은 가용성을 위해 사용불가 하거나 비정상적인 인스턴스를 교체하기도 한다.

 

조건의 수요에 따라 인스턴스 자동화 수를 늘려 비용 절감에 도움이 된다.

Auto Scaling의 옵션

 

예약된 크기조정 : 알려진 트레픽 패턴에 따라 크기 조정 활동을 계획 할 수 있음

 

동적크기조정 : 애플리케이션에 대한 수요 곡선에 가깝게 따를 수 있으며 사전에 EC2 프로비저닝할 필요를 줄일수있음

 

예측크기조정 : 트레픽 변화를 예측하기 위해 기계학습을 사용하여 인스턴스를 프로비저닝, 보다 저렴하고 정확하며 반응적이다.

 

Elastic Load Balancing(ELB)

 

ELB는 수신괴는 애플리케이션의 트레픽을 EC2 인스턴스와 같은 여러 대상에 자동으로 분산하는 가용성 높은 크기 조정이 가능한 AWS 서비스이다. 대상은 단일 사용 영역 또는 복수의 영역에 있을 수 있다.  ELB를 사용하면 2개 이상의 EC2인스턴스를 가질 수 있다. 만약 하나의 인스턴스가 가동이 중지 된다면 ELB는 고객에 영향을 미치지 않고 다른 인스턴스로 트래픽을 분산할 수있다.

 

ELB 옵션

Application Load Balancer : HTTP 및 HTTPS 트레픽의 로드 밸런싱에 가장 접합함. 요청 수준(7계층)에서 작동하며 요청 내용에 따라 트래픽을 EC2 인스턴스, 컨테이너, IP 주소, Lambda 함수 등의 대상으로 라우팅한다.

 

Network Load Balancer : TCP 및 UDP 트래픽의 로드 밸런싱에 적합함. 연결 수준(4계층) 에서 작동하며 짦은 지연시간을 유지 하면서 초당 수백만 개의 요청을 처리 가능하다.

 

Gateway Load Balancer : 서드 파티 가상 어플라이언스를 배포 크기 조정 및 관리하는데 도움이 됨. 네트워크 수준(3계층)에서 작동하며 여러 가상 어플라이언스에 걸쳐 트레픽을 분산하는 한편 수요에 따라 그것을 확대 및 축소하기 위한 게이트 웨이 제공.