본문 바로가기
[AWS]/AWS SAA EXAMTOPICS

[AWS][SAA] 1. EC2, Auto Scaling, ELB

by METAVERSE STORY 2022. 6. 13.
반응형
728x170

1. EC2 (Elastic Compute Cloud)

EC2란?

EC2는 물리 서버의 기능을 가상화했지만 실제 서버와 유사하게 작동하는 가상 컴퓨팅 환경이다. 기본적으로 스토리지, 메모리, 네트워크 인트페이스, OS가 설치된 기본 드라이브가 제공되어 손쉽게 원하는 작업 진행이 가능하다.

인스턴스 수명주기, 요금

인스턴스는 시작하는 순간부터 종료될 때 까지 다양한 상태를 가진다. 

  • pending
    • 인스턴스가 running 상태가 될 준비를 하고 있다. 인스턴스를 새로 시작하거나 stopped 상태의 인스턴스를 다시 시작하는 경우이다.
    • 비용은 미청구 된다.
  • running
    • 인스턴스 실행 상태이다.
    • 비용이 처우괸다.
  • stopping 
    • 인스턴스가 중지 또는 최대 절전 모드로 전환할 준비를 하고 있다.
    • 중지를 준비하는 경우 미청구, 최대 절전 모드로 준비중인 경우 청구 된다.
  • stopped
    • 인스턴스가 중지되고 사용이 불가하다
    • 비용은 미청구 된다
  • shutting-down
    • 인스턴스가 종료할 준비를 하고 있다.
    • 비용은 미청구 된다.
  • terminated
    • 인스턴스가 영구적으로 삭제되었으며 재시작할 수 없다
    • 비용은 미청구 된다
    • 예약 인스턴스인 경우 결제 옵션에 따라 기간이 종료될 때까지 요금이 청구된다. 

 

인스턴스 최대 절전 모드

인스턴스 최대 절전모드란 Amazon EBS를 지원하는 인스턴스 유형에만 해당이 된다. 쉽게 말해 인스턴스의 데이터를 EBS에 임시 저장하고 다시 복원할 수 있는 기능이다. 인스턴스를 최대 절전 모드로 전환하면 운영 체제에 최대 절전 모드를 수행하도록 알리고, 인스턴스 메모리(RAM)의 콘텐츠를 Amazon EBS 루트 볼륨에 저장한다.

인스턴스를 다시 시작하면 EBS 루트 볼륨이 이전 상태로 복원되고 RAM 콘텐츠가 다시 로드 된다. 이어서 이전에 연결된 데이터 볼륨이 다시 연결되고, 인스턴스는 해당 인스턴스 ID를 유지하게 된다. 인스턴스를 최대 절전 모드로 전환하면 stopping 상태로 전환되고 나서 stopped 상태로 전환된다. 최대 절전모드로 전환하지 않고 인스턴스를 중지한 경우와 달리 최대 절전 모드 인스턴스가 stopped 상태이면 해당 인스턴스에 대해서는 사용 요금을 청구할 수 없지만 stopping 상태일 때 비용이 청구된다. 데이터 전송에 대해 사용 요금이 부과되지 않지만 RAM 데이터에 대한 스토리지를 포함해 모든 EBS 볼륨에 대한 스토리지 요금은 부과된다.

 

인스턴스 구입 옵션

사용자의 상황에 따라 인스턴스를 좀 더 저렴하게 구입할 수 있는 옵션들이 존재한다.

  • 온디맨드 인스턴스
    • 기본적으로 사용하는 인스턴스를 의미
    • 비용을 초 단위로 지불
  • 전용 인스턴스 (Dedicated instances)
    • 일반 인스턴스와 달리 하드웨어 수준에서 물리적으로 격리된 VPC에서 사용되는 인스턴스
    • 동일 AWS 계정의 다른 인스턴스와는 하드웨어를 공유할 수 있다.
  • 예약 인스턴스 (Reserved instances)
    • 1년 혹은 3년 약정으로 할인된 가격에 미리 인스턴스를 구입 비용을 지불하여 사용할 수 있다.
    • 위 약정 기간 동안 컴퓨팅 리소스 사용량이 충분히 예측 된다면 저렴한 가격으로 인스턴스를 사용할 수 있다.
  • 스팟 인스턴스
    • 가장 큰 할인율로 인스턴스 이용 가능
    • 스팟 인스턴스의 수요, 공급에 의해 스팟 가격이 책정되고 점진적으로 조정되는데, 이 스팟 가격보다 사용자가 제시한 최고 가격이 높을 때만 실행된다.
    • 스팟 가격이 사용자 최고 가격보다 높아지면 인스턴스가 즉각 조욜된다.(설정에 따라 중지, 최대 절전모드 선택 가능)
    • 시간을 유연하게 조정하고, 중단되어도 되는 애플리케이션에서 데이터 분석, 배치 작업, 백그라운드 프로세싱 등의 용도로 사용하기 적합하다.

 

배치 그룹

일반적인 인스턴스는 기본 하드웨어 전반에 분산되어 상호 관련 오류의 위험성을 줄인다. 하지만 인스턴스 배치 그룹을 사용하면 특정 요구사항을 충족할 수 있도록 인스턴스를 좀 더 효율적으로 배치하고 활용할 수 있다.

 

  • 클러스터 배치 그룹
    • 단일 가용 영역 내에 있는 인스턴스 논리적 그룹
    • 짧은 네트워크 지연 시간, 높은 네트워크 처리량을 요하는 애플리케이션에 권장
  • 파티션 배치 그룹
    • 논리적 파티션을 나누고, 각 인스턴스 그룹이 서로 기본 하드웨어를 공유하지 않게 한다.
    • Hadoop, Cassandra, Kafka 등 대규모의 분산 및 복제된 워크로드에 필요
  • 분산형 배치 그룹
    • 소규모의 인스턴스 그룹을 다른 기본 하드웨어로 분산하여 상호 관련 오류를 줄인다.
    • 동일한 리전의 여러 가용 영역에 적용될 수 있고, 그룹당 가용 영역별로 최대 7개의 인스턴스까지 가능하다. 

 

 

Amazon EC2 Auto Scaling

 

Auto Scaling이란?

EC2 Auto Scaling 서비스는 애플리케이션 장애를 방지하고, 장애가 발생했을 때 복구할 수 있는 방법을 제공한다. Auto Scaling은 지정한 개수의 EC2 인스턴스를 자동으로 피로비저닝해서 시작하는데 수요가 증가하면 더 많은 인스턴스를 동적으로 추가할 수 있고, 인스턴스가 종료되거나, 장애가 생기면 Auto Scaling이 자동으로 인스턴스를 교체하게 된다. 애플리케이션의 가용성을 높일 수 있는 가장 중요한 도구 중 하나이다. 

 

시작 구성

시작 구성 (Launch Configuration)은 인스턴스를 수동으로 생성할 때 사용하며, AMI, 인스턴스 유형, SSH 키 페어, 보안 그룹, 인스턴스 프로필, 블록 장치 연결, EBS 최적화 여부, 배치 테넌시, 사용자 데이터 등의 구성 파라미터를 지정한다. 시작 구성은 인스턴스를 수동으로 프로비저닝할 때 입력하는 정보와 같은 내용을 담고 있는 형식 문서이다.

시작 구성은 기존 EC2 인스턴스에서 만들 수 있고 Auto Scaling이 인스턴스에서 설정을 복사한 뒤 필요에 따라 그 설정을 변경해서 만들 수 있으며, 아예 백지 상태에서 처음부터 만들 수도 있다. 시작 구성은 Auto Scaling에서만 사용되므로, 인스턴스를 직접 시작할 때 시작 구성을 활용할 수 없다. 시작 구성은 또한 만들고나면 수정할 수 없으므로 설정의 일부 내용을 수정하려면 새롭게 시작 구성을 작성해야 한다. 공식 문서에서는 구성을 사용하지 않기를 권장, 시작 템플릿을 사용하기를 권장한다.

 

시작 템플릿

시작 템플릿(Launch Template)은 인스턴스를 수동으로 프로비저닝할 때 입력하는 정보를 설정 작업에 사용한다는 점에서 시작 구성과 유사하지만, 기존의 시작 구성보다는 다양한 용도로 활용할 수 있다. 시작 템플릿을 생성하고 난 후 수정할 수 있으며, 기존 템플릿과 수정 템플릿을 버전별로 보관한다.  AWS에 모든 버전을 보관하고 있다가 필요에 따라 버전을 선택해 사용할 수 있다.

간단하게 시작 구성은 생성 후 수정이 불가능하고, 시작템플릿은 수정이 가능해 버저닝이 되어 활용도가 높다.

 

Auto Scaling Group

Auto Scaling Group은 Auto Scaling이 관리하는 EC2 인스턴스 그룹이며, Auto Scaling Group을 만들 때는 미리 만들어 놓은 시작 구성이나 시작 템플릿을 지정한다. Auto Scaling이 프로비저닝하고 유지해야 하는 가동 인스턴스의 숫자도 지정, Auto Scaling Group의 최소 및 최대 숫자도 지정하며, 유지해야 할 인스턴스의 목표 숫자도 선택적으로 설정할 수 있다.

  • 최소
    • 정상 인스턴스 수가 최솟값보다 적어지지 않도록 한다.
    • 0으로 설정하면 Auto Scaling은 인스턴스를 만들지 않고 그룹 내에서 가동 중인 모든 인스턴스를 종료한다.
  • 최대
    • 정상 인스턴스 수가 최댓값을 넘지 않도록 한다.
  • 목표 용량
    • 최솟값과 최댓값 사이에서 선택하며 반드시 설정해야 하는 것은 아니다.
    • 목표 용량을 지정하지 않으면 Auto Scaling은 최소 인스턴스 수로 시작, 목표 용량을 지정하면 Auto Scaling은 지정한 용량을 유지하기 위해 인스턴스르 추가하거나 종료한다.

 

Load Balancer 대상 그룹 지정

ALB 혹은 NLB를 사용해 Auto Scaling 그룹에 있는 인스턴스로 트래픽을 분산하려면 Auto Scaling Group을 만들 때 ELB 대상 그룹의 이름을 넣는다. 그러면 Auto Scaling이 새로운 인스턴스를 만들 때마다 자동으로 인스턴스를 해당 ELB 대상 그룹에 추가한다.

 

애플리케이션 인스턴스 상태 검사

기본적으로 Auto Scaling은 EC2 상태 검사를 기반으로 인스턴스의 상태를 판정한다. ALB를 사용해 트래픽을 인스턴스로 라우팅 할 때 로드 밸런서 대상 그룹에 상태 검사를 구성할 수 있다. 대상 그룹 상태검사는 200에서 499 범위의 HTTP 응답 코드를 검사한다.

ALB 상태 검사에서 인스턴스가 비정상으로 확인되면, 그 인스턴스로 사용자의 트래픽이 전달되지 않도록 하고, Auto Scaling은 해당 인스턴스를 제거하고 대체 인스턴스를 만들어 로드 밸런서의 대상 그룹에 추가해 새 인스턴스로 트래픽이 전달되도록 한다.

 

Amazon ELB (Elastic Load Balancing)

 

ELB란?

Elastic Load Balancing은 모든 EC2 인스턴스에 들어오는 애플리케이션 트래픽을 분산시키는 서비스이다. 온프레미스 환경에서의 L4 Switch와 동일한 역할을 한다. AWs에는 CLB, ALB, NLB, GLB등의 로드밸런서가 있다. 시험에는 주로 ALB가 문제 상황으로 제시되고 가끔 NLB가 별도의 문제로 나온다.

ALB와 NLB의 차이

  • Application Load Balancer
    • HTTP, HTTPS 트래픽의 로드 밸런싱에 가장 적합하다.
  • Network Load Balancer
    • TCP, UDP의 4계층 프로토콜의 로드 밸런싱에 가장 적합하다. 

 

 

출처: https://wbluke.tistory.com/54?category=418851 

 

[AWS SAA] 1. EC2, Auto Scaling, ELB

AWS SAA SAA-C02 자격증 합격 후기에 이어 공부했던 내용들을 간단하게 다시 정리하려고 합니다. 모든 시험 범위를 포함할 수는 없고, 중요하다고 생각하는 내용들 위주로 정리하였습니다. 첫 번째

wbluke.tistory.com

 

반응형
그리드형

댓글