[AWS][EC2][강의노트] EC2 인스턴스 기초 정리

컴퓨터공학/분산시스템

2022. 03. 05.

시작하기 전: 과금 예산 설정

Billing> Bugets> 예산 금액을 추가하면 예산 근접시 경고 알림이 생기도록 설정 가능하다.

Elastic Cloud Computing 기초

AWS의 꽃, 가장 인기 있는 서비스, IaaS.

  • 가상 머신을 빌린다 EC2
  • 가상 블록 디바이스에 데이터를 저장한다 EBS
  • 부하를 여러 가상 머신에 분산한다 ELB
  • 가상 머신 클러스터를 자동 스케일링한다 ASG

런칭시 설정할 값

OS

리눅스? 윈도? OSX?

CPU

코어 수 = vCPU = 가상 스레드의 개수를 중심으로 설정하게 된다.

RAM

주 메모리 용량. 인스턴스 타입에 의해 결정됨

Storage & Space

블록 디바이스 종류 SSD, HDD.

용량 및 IOPS 성능. 용량과 IOPS가 비례하는 특징이 있음.

Network 카드

더욱 더 빠른 네트워크를 제공하기 위한 옵션들 있음.

Public IP 주소 붙일 수 있음.

ENI라는 가상 네트워크 인터페이스를 붙일 수 있음.

Security Group

방화벽 규칙

User Data

인스턴스 부트스트랩 시 최초 수행되는 Bash 스크립트

EC2 User Data

인스턴스 부트스트랩 시 최초 수행되는 Bash 스크립트

인스턴스 생성시 메타데이터에 등록되어 볼 수 있다. (미래 챕터에서 확인함.)

유스케이스

  • 응용을 인스톨, 업데이트할 때
  • 인터넷에서 파일 받아올 때
  • Bash로 하고 싶은 모든 것들..

User Data 실행이 어슘하는 권한

Nice! 운영체제 루트 유저로서 실행해 줌 : sudo

EC2 인스턴스 타입 맛보기

인스턴스 타입 이름 규칙

m5.2xlarge

인스턴스 클래스 세대 크기

크기 증가 → (램, vCPU, 네트워크 한계, EBS 스루풋) 증가 → 성능 및 비용 증가

t2.micro < t2.xlarge < c5d.4xlarge < r5.16xlarge < m5.8xlarge ...

범용 클래스 (T, M)

가장 무난하게 유스케이스를 커버하는 선택지

(주메모리, 연산, 네트워크) 성능이 균형 잡혀 있다.

컴퓨팅 최적 클래스 (C)

  • 배치 작업
  • 미디어 변환 작업
  • 고성능 웹 서버
  • 고성능 컴퓨팅 (HPC)
  • 모델링, 머신러닝, 게임 서버

메모리 최적 클래스 (R)

  • 메모리 기반 데이터베이스 as 고성능 퍼시스턴스
  • 분산 웹 앱의 캐시 레이어
  • 실시간 처리를 사용하는 응용 → HDD보단 메모리가 훨 이득

스토리지 최적 클래스 (I, D, H)

저장장치에 읽기/쓰기를 무척 많이 하게되는 작업

  • 고빈도의 트랜잭션 처리 시스템 (네이버 쇼핑의 DB 레이어)
  • 데이터베이스
  • 데이터 웨어하우스

시큐티리 그룹

인스턴스에 네트워크 보안을 제공하는 방식.

  • EC2 인스턴스로 inbound, outbound 하는 트래픽을 제어함.
  • “allow” 규칙을 추가하는 것임.
    • 인바운드 규칙은 기본적으로 모든 트래픽을 블락함.
    • 아웃바운드 규칙은 기본적으로 모든 트래픽을 내보내도록 허용함.
  • 허용하는 트래픽 소스로서 상대방 IP 뿐만 아니라, 다른 SG를 지정하는 것도 가능함.

Tip. 알면 좋은 포트들

  • 22는 SSH
  • 21는 FTP
  • 22 - SFTP
  • 80 - HTTP
  • 443 - HTTPS
  • 3389 - RDP (윈도우 리모트 데스크탑)

인스턴스 구매 선택지

인스턴스 구매 선택지 기능 및 비용 유리한 케이스
On-Demand 사용한 시간만큼 지불. 작은 작업량 ⇒ 짧게 사용할 때
Reserved 최소 사용 기간을 1년~3년까지 약정하여 75% 정도 할인된 가격! 오래 걸리는 작업량, 지속적으로 유지되는 서비스⇒ DB
Reserved + Convertible 66% 정도 할인 중간에 인스턴스 타입이나 운영체제를 변경하고 싶은 우유부단 상황일 때
Reserved + Scheduled 더 이상 지원하지 않는다고ㅠ 지정된 기간동안 지정된 시간에 인스턴스가 돌아감
Spot Instances 고객이 스팟 인스턴스에 대한 지불 용의를 선제시 함. 

AWS는 제시 금액보다 스팟 가격이 싼 경우에만 인스턴스를 실행시킴.

90% 정도 할인.
비즈니스적으로 중요하지 않은 작업

실행 시기와 작업 실패에 구애 받지 않는 작업

배치, 데이터 분석, 이미지 처리

분산 작업
Dedicated Instances 다른 aws 계정들 인스턴스랑은 물리적으로 구분되는 내 계정 전용 하드웨어에서 실행. 이 옵션 쓰면 좀 더 비쌈. -
Dedicated Hosts 데이터 센터의 물리 서버를 쇼핑하듯 골라 미리 결제. 비싼 편에 속함. 규정 사항에 물리 서버 보유가 명시되어 있다면. (법률/사규/라이센스 규정)

전용 인스턴스, 전용 호스트 옵션을 인스턴스 런칭시 Tenancy 항목에서 확인 가능.

Spot Instance Request

스팟 인스턴스 실행에 관한 명세

  • 1시간 사용에 대해 지불 용의가 있는 최대 금액을 제시하게 됨.
  • 실제 가격이 지불 용의 금액을 넘어서면 실행중인 인스턴스는 stop 또는 terminate 된다.
    • persistence 옵션: 인스턴스를 stop
    • one-time 옵션: 인스턴스를 terminate
  • stop 상태 인스턴스는 실제 가격이 지불 용의 금액보다 낮아지면 재실행된다.

Spot Instance Request의 취소 처리

스팟 인스턴스 요청을 “취소” 해도

이미 실행중인 스팟 인스턴스는 영향을 받지 않는다. 이들은 스스로 종료 시키자.

Spot Block

  • 정해진 타임 윈도우 동안 (1~6시간) 스팟 인스턴스를 죽이지 말아달라고 설정할 수 있다.
  • 그럼에도 불구하고 스팟 인스턴스는 stop 또는 termiante 될 수 있다.

Spot Fleets (스팟 함대)

정해진 성능이나 용량을 지속적으로 유지하는 스팟 인스턴스 집합을 정의한다. 옵셔널하게 온-디맨드 인스턴스를 포함시킬 수도 있다.

  • 목표 성능 (vCPU, 인스턴스 개수 따위) 설정
  • 지불 용의 비용 설정

그러면 스팟 함대는 설정된 비용에 맞추어어서 목표 성능을 최대한 만족하려고 스팟 인스턴스 풀을 구성한다. 스팟 인스턴스 하나가 종료당하면, 새로이 스팟 인스턴스를 만들어서 성능 요구사항을 충족한다.

 

인스턴스 풀이란

스팟 플릿이 상정하는 성능을 달성하기 위해서 어떤 타입, 어떤 AZ의 인스턴스를 쓸지 최적의 결정을 내려야 한다.

그 선택지에 놓이는 인스턴스 타입 및 AZ가 스팟 인스턴스 풀이다.

 

인스턴스 할당 전략 (AllocationStrategy)

인스턴스 풀을 만드는 전략! 문서 설명

  1. 할 작업량이 작으면 lowestPrice 전략을 택해라.
    그 비용 내에서 최대한의 성능을 만족하는 인스턴스 풀을 만들 것임.
  2. 할 작업량이 많거나 지속적이면 diversified 전략을 택해라.
    스팟 함대는 유저가 고른 인스턴스 타입들을 모두 사용하며 인스턴스 풀 만든다.
  3. 기본적으로는 capacityOptimized 전략을 쓴다.

diversified 전략의 스팟 인스턴스 풀 구성 옵션

단원 요약

  • EC2 인스턴스 = 이미지(AMI) + 성능(vCPU + RAM) + 용량(EBS) + 방화벽 규칙(SG) + 부트스트랩 스크립트(UserData)
  • 시큐리티 그룹 = 방화벽 규칙
  • EC2 User Data = 인스턴스 첫 실행시 sudo 권한으로 실행되는 배시 스크립트
  • SSH = EC2 접속에 사용하는 프로토콜. 인스턴스의 Key pair가 필요함.
  • EC2 Instance Role = EC2 인스턴스 자체가 갖는 AWS 서비스 접근 권한. 인스턴스 CLI에 유저 본인의 크레덴셜을 저장하는 방식은 보안상 추천하지 않으며, 이 방식을 써야 한다.
  • EC2 구매 옵션들 = 온-디맨드, 스팟, 예약형(사용 기간에 대한 것), 예약형 컨버터블, 예약형 스케줄드, 전용(물리적 위치에 대한 것) 인스턴스/호스트

EC2에 올릴 작업의 양, 중요성, 실패에 대한 내성에 따라
적당한 구매 옵션을 골라 가성비를 챙기자.

Spot Instance Request 및 Spot Fleet에 관한 내용은
AWS 콘솔 화면에서 차근차근 옵션, 설명을 확인해 보자.