AWS EC2 개념 정리

Server The SOPT·2022년 5월 23일
37
post-thumbnail

작성자 : 이서우
🌻 AWS 스터디 1조 대표로 올리는 글입니다
1주차 주제는 EC2 입니다🌻

EC2 ( Elastic Compute Cloud) 란 ❓

  • 아마존 웹 서비스(AWS)에서 제공하는 클라우드 컴퓨팅 서비스
  • 클라우드 컴퓨팅은 인터넷(클라우드)을 통해 서버, 스토리지, 데이터베이스 등의 컴퓨팅 서비스를 제공 → AWS에서 원격으로 제어할 수 있는 가상의 컴퓨터를 한 대 빌리는 것
  • 후불제 PC방과 같이 사용한 만큼 비용을 지불하기 때문에 탄력적인 이라는 의미의 Elastic이라는 단어가 붙어있다. Elastic은 비용적인 부분 뿐만이 아니라 필요에 따라 성능, 용량을 자유롭게 조절할 수 있다는 의미도 가지고 있다

📌 정리 : EC2서비스는 AWS에서 비용, 성능, 용량면에서 탄력적인 클라우드 컴퓨터를 제공하는 서비스라고 할 수 있다



EC2를 사용해야 하는 이유

  • 효율성 : 클릭 몇 번으로 서버를 생성할 수 있기 때문에 실제 서버를 구축하는 것보다 훨씬 간편하고 효율적
  • 비용 절감 : 사용한 만큼만 요금을 지불하면 되므로 비용 절감



EC2 인스턴스 생성의 의미

AWS EC2 인스턴스를 생성한다는 것은 AMI를 토대로 운영체제, CPU, RAM 혹은 런타임 등이 구성된 컴퓨터를 빌리는 것이다



EC2 인스턴스 유형

게임에서 한정된 스탯으로 힘/민첩/지능 중에 어느걸 찍을지 결정하는 것처럼,

EC2 인스턴스란 한정된 요금으로 EC2 인스턴스의 유형(직업)을 고르고 사이즈(스탯 포인트)를 골라 각 인스턴스별로 사용 목적에 따라 최적화를 시키는 것이다.

예를 들어 CPU에 힘을 실어 연산능력이 좋은 서버를 만든다던지, 메모리 위주에 힘을 실어 저장소로서 기능 구성한다던지, 그래픽 카드에 힘을 실어 게임을 돌린다던지 등 다양하게 구성이 가능하다.

게임에 직업이 있듯이, 인스턴스 유형에도 타입 이라는 것이 존재한다.

aws는 각 인스턴스의 사용 목적(서버용, 머신러닝용, 게임용)에 따라 타입별로 인스턴스에 이름을 부여해 구분하고 있다.
ex) t타입, m타입, inf타입 ..등

범용 및 컴퓨팅, 메모리, 저장 최적화 성능 목적에 따라 타입이 여러가지 존재한다는 것을 볼 수 있다.

특히 t와 m은 범용타입이기 때문에 aws 초보자들이 가장 많이 사용하는 프리티어에서 쓰는 타입이므로 자주 접해 볼수 있는 타입이다.

  • 범용 : vCPU, 메모리, 네트워크, 저장 공간 등이 평균적인 사양으로 제공된다
  • 컴퓨팅 최적화: 다른 인스턴스 패밀리에 비해 메모리 대비 vCPU 비율이 높다
  • 메모리 최적화 : 다른 인스턴스 패밀리에 비해 메모리 용량이 훨씬 크다
  • 스토리지 최적화 : 다른 인스턴스 패밀리보다 스토리지 용량이 훨씬 크거나 초고속 I/O가 제공된다
  • GPU 인스턴스: 고성능의 NVDIA GPU가 장착되어 있다. CUDA, OpenCL등을 실행할 때 사용된다
  • 마이크로 인스턴스 : 가격이 가장 싼 인스턴스. 낮은 vCPU 성능과 적은 메모리가 제공된다. 프리티어에서는 이 인스턴스 유형을 무료로 사용할 수 있다

vCPU란?

EC2는 가상 서버이므로 EC2서버는 가상과 소프트웨어를 통해 실행된다. 따라서 가상화 소프트웨어를 통해 제공되는 CPU를 vCPU라고 한다



인스턴스 타입 읽는 법

m은 인스턴스 타입 (패밀리) (범용 애플리케이션 서버용)을 의미하며, 5는 5세대를 의미한다. a는 amd기반의 CPU 프로세서를 사용한다는 의미이며, xlarge는 큰 사이즈를 의미한다고 보면 된다.



인스턴스 구매 옵션


Amazon EC2는 사용자의 요구사항에 따라 비용을 최적화 할 수 있도록 다음과 같은 구매 옵션을 제공한다

→ 서비스의 유형에 따라 본인에게 가장 적절한 구매 옵션을 선택할 수 있다

  • 온 디맨드 인스턴스 ( On Demand Instance ) : 필요할 때 바로 생성해서 사용할 수 있는 방식. 과금은 1 시간 단위로 이루어지며 1분을 사용했더라도 1시간으로 책정된다. 3가지 방식 중 요금이 가장 비싸다
    • 공유 인스턴스( Shared tenancy) : 하나의 물리적인 서버에 여러 개의 EC2인스턴스가 실행 → 다른 인스턴스가 서버 자원을 많이 소모한다면 현재 인스턴스의 성능에 영향이 있을 수 있다
    • 전용 인스턴스( Dedicated tenacy) : 하나의 물리적인 서버에 하나의 EC2인스턴스가 실행 → 서버 내 다른 인스턴스가 없으므로 영향 X, 공유 인스턴스 방식보다 비싸다
  • 스팟 인스턴스( Spot Instance ) : 경매 방식의 인스턴스. 인스턴스의 스펙을 설정하고 원하는 가격을 입력하여 입찰하면 높게 입찰한 사람한테 인스턴스가 할당된다. ( 해당 스펙의 인스턴스를 다른 사람이 더 높은 가격으로 입찰했다면 내가 가지고 있는 인스턴스는 종료된다❗)

    다음과 같은 상황에서 스팟 인스턴스가 적절하다

    • 클러스터링으로 이루어지는 분석 작업
    • 이미지 변환, 비디오 렌더링
    • 웹 크롤링
    • 각종 테스트
    • 기타 불시에 중단되어도 상관없는 업무
  • 예약 인스턴스 ( Reserved Instacne) : 일정한 예약금을 선불로 내면 인스턴스를 1년 또는 3년동안 예약할 수 있으며 시간당 요금이 대폭 할인된다. 온 디맨드 인스턴스와 마찬가지로 공유 인스턴스, 전용인스턴스로 나뉜다
    - Light 사용률 예약 인스턴스 : 모든 예약 인스턴스 중에서 선결제 금액이 가장 저렴하다. 사용시간이 많지 않을 때 유용하다 → 몇 달만 사용하는 개발 및 테스트와 단기 프로젝트에 적합
    - Medium 사용률 예약 인스턴스 : Light보다 선결제 금액은 비싸지만 시간당 요금이 저렴하다. → 거의 항상 실행하지만 사용량에 약간의 변화가 있을 때 유용!
    - Heavy 사용률 예약 인스턴스 : Medium보다 선결제 금액은 비싸지만 모든 예약 인스턴스 중에서 시간당 요금이 가장 저렴하다. → 24시간 상시 가동되어야하는 출시된 제품에 유리!


인스턴스 수명주기 ( Instance Life Cycle )

EC2의 수명 주기 =  AMI로부터 실행이 되고나서 종료될 때까지 EC2가 거치는 과정

Amazon EC2 인스턴스는 시작한 순간부터 종료될 때까지 다양한 상태로 전환된다

다음 그림은 인스턴스 상태 간 전환을 나타내고 있다

1) pending state

제일 처음 AMI가 실행이 되면 준비 상태를 말한다.

EC2를 가동하기 위해서 가상머신, ENI, EBS 등이 준비되는 과정이다.

2) running state

실제로 EC2를 사용할수 있는 상태를 말한다.

running 상태에서 할수 있는 것 3가지가 있는데 다음과 같다.

  • 중지
    • 인스턴스를 잠깐 멈춰두는 것
    • 중지 중에는 인스턴트 요금 미청구
    • 단 EBS 요금, 다른 구성 요소(Elastic IP 등)은 청구
    • 중지 후 재 시작 할때 퍼블릭 IP가 변경됨 (프라이빗IP는 변경X, 해결하려면 탄력적 IP 사용)
    • EBS를 사용하는 인스턴스만 중지 가능
  • 재부팅
    • 인스턴스를 다시 시작 하는 것
    • 중지하고 다시 시작과는 달리, 재부팅 시 퍼블릭IP 변동 X
  • 최대 절전모드
    • 메모리 내용을 보존해서 재 시작시 중단지점에서 시작할 수 있는 정지모드
    • 어떤 프로그램을 실행시켰을 때 데이터를 하드디스크에서만 가져오는 것이 아니라 메모리에 올려놓는 것
    • 컴퓨터/노트북의 최대 절전 모드와 같은 원리라고 보면 된다. 우리가 만일 프로그램을 이용하다 만일 프로그램이 켜 상태를 유지하면서 잠시 노트북을 꺼야한다면 최대 절전을 한다. 그리고 다시 노트북을 켰을때 아예 OS 재부팅되는게 아니라, 프로그램이 이어서 돌아가게 된다.

3) shutting-down state

인스턴스 종료 중

설정에 따라 EBS도 같이 종료 시킬 수도 있고 EBS는 남기고 인스턴스만 종료 할 수 있다.

4) terminated state

완전히 종료, 인스턴스가 영구적으로 삭제된다

인스턴스 미사용시 중지시켜두기만 해도 많은 비용 절감 할수 있다.

📌 인스턴스를 stopped 해도, EBS나 탄력적 IP를 연결했을경우 별도로 청구되니 유의



AMI (Amazon Machine Images)

EC2 인스턴스를 시작하는 데 필요한 정보가 들어있는 이미지 즉, EC2의 복사본 이라고 보면 된다

인스턴스는 AMI의 사본으로 한 AMI로 여러 인스턴스 실행도 가능하다

  • 사용 할 수 있는 대표적인 OS

    • Amazon Linux2
    • CentOS
    • Red Hat Enterprise Linux
    • Windows Server
    • Ubuntu
  • AWS에서 빌릴 PC는 사용 용도에 맞게 운영체제, 런타임 등이 구성된 Setting을 선택할 수 있다.

  • Instance는 선택한 AMI를 토대로 구성된다.

  • AWS에는 상당히 많은 양의 AMI 셋팅이 준비되어 있기 때문에 손쉽게 인스턴스의 운영체제를 구성할 수 있다.

  • 셋팅되어 있는 AMI외에도 필요에 따라 직접 AMI를 구성할 수도 있다.

  • Amazon Machine Image(AMI) 선택이라는 것은 운영체제를 선택한다고 보면 된다.
  • Linux / Windows 중에서 선택 가능하다.



EBS ( Elastic Block Store )란 ❓

위에서 배운 인스턴스가 연산에 관한 (CPU,메모리 등) 처리를 한다고 하면, 데이터를 저장하는 역할은 바로 EBS가 한다고 보면 된다.

  • EC2 인스턴스에 장착하여 사용할 수 있는 가상 저장 장치

  • EBS는 EC2에 설치된 OS에서 그냥 일반적인 하드디스크나 SSD처럼 인식된다 → 원하는 크기로 만들 수 있고, 성능 또한 원하는 수치로 설정할 수 있다. 사용자가 삭제하기 전까지는 데이터가 안전하게 유지된다

  • 여기서 Elastic Block Store의 Block은 블록 장치라고 하여 Unix/Linux 계열 OS에서 일정한 크기(Block)단위로 읽고 쓰는 저장 장치를 부르는 말

  • 사용하는 경우 예시

    • EC2 인스턴스에서 제공하는 기본 용량보다 더 사용해야 할 때
    • 운영체제를 중단시키지 않고 용량을 자유롭게 늘리고 싶을 때
    • 영구적인 데이터 보관이 필요할 때
    • RAID 등의 고급 기능이 필요할 때

👌 EBS는 프리티어에서 무료로 사용 가능하다


EBS 기본 개념

  • 볼륨 ( volume ) : EBS의 가장 기본적인 형태로 OS에서 바로 사용 가능한 형태이다.
  • 이미지 ( Image ) : AMI(Amazon Machine Image)를 줄여 부르는 말. OS가 설치된 형태이며 이 AMI로 EC2 인스턴스를 생성한다
  • 스냅샷( Snapshot ) : EBS 볼륨의 전체 내용 중 특정 시점을 그대로 복사해 저장한 파일을 뜻한다. 따라서 EBS 볼륨의 백업 파일 성격을 가지고 있다. EBS 스냅샷은 EBS 볼륨을 백업하고 이전 내용으로 복원하고 싶을 때, 나만의 AMI를 생성하고 싶을 때, EBS 볼륨을 다른 리전으로 이전하고 싶을 때 사용한다.
  • IOPS(Input/Output Operation Per Second) : 저장 장치의 성능 측정 단위. AWS에서는 추가 비용을 지불하고 높은 성능(IOPS)의 EBS를 생성할 수 있다

📌 EC2 인스턴스르 생성할 때 기본적으로 OS가 설치된 EBS 볼륨을 함께 생성하게 된다


EBS 볼륨 생성

  1. EC2 → Elastic Block Store → 볼륨 → 볼륨 생성 버튼

  1. 기본 값으로 생성
    - 볼륨 유형 : EBS 볼륨 형태이다. 기본값 그대로 사용한다.
    - 크기 : EBS 볼륨의 크기이다. 10으로 생성한다.
    - IOPS : 볼륨 유형을 General Purpose로 설정을 했기 때문에 IOPS를 설정할 수 없다. 볼륨 유형을 Provisioned IOPS로 선택해야 이 값을 설정할 수 있다.
    - 처리량 : gp2의 처리량 공식이다. Throughput in MiB/s = ((Volume size in GiB) × (IOPS per GiB) × (I/O size in KiB))
    - 가용 영역 : 볼륨이 생성될 가용 영역이다. EC2 인스턴스가 생성된 가용 영역과 같은 곳에 위치해야 EC2 인스턴스에서 사용할 수 있다.
    - 스냅샷 ID : 생성해 놓은 EBS 스냅샷이 있다면 여기서 선택할 수 있다.
    - 암호화 : 볼륨 암호화 옵션이다. 기본값 그대로 사용한다.

  2. 작업 → 볼륨 연결

  1. 인스턴스 연결 (인스턴스를 연결하면 디바이스 이름은 자동으로 설정된다.)


EBS 볼륨 포맷 및 마운트

  1. EBS 볼륨의 장치명 확인
  1. ssh로 ec2 인스턴스에 접속한 뒤 sudo mkfs -t ext4 /dev/sdf 입력하여 ebs 볼륨을 포맷

  1. EBS 볼륨 마운트

    리눅스에서는 저장장치를 사용하려면 마운트라는 과정이 필요하다. 앞에서 생성한 EBS 볼륨을 포맷했으므로 마운트만 하면 바로 사용할 수 있다.

  1. 제대로 마운트되었는지 확인 가장 하단에 9.9G의 볼륨이 제대로 마운트 되었다.

EBS 볼륨 제거

  1. 언마운트

    /dev/xvdf 가 언마운트 된 것을 확인

  1. EBS 볼륨 목록 → 작업 → 볼륨 분리
  2. 볼륨 삭제



EBS 스냅샷

EBS 스냅샷 생성하기

  1. Elastic Block Store → 볼륨 → 작업 → 스냅샷 생성

  2. 설명 입력 → 스냅샷 생성 버튼

    • 설명 : EBS 스냅샷에 대한 설명이다. 입력하지 않아도 상관 없다.
    • 암호화 : 볼륨을 암호화했다면 암호화되어있다고 표시된다.

  3. Elastic Block Store → 스냅샷

profile
대학생연합 IT벤처창업 동아리 SOPT 30기 SERVER 파트 기술 블로그입니다.

3개의 댓글

comment-user-thumbnail
2022년 5월 24일

엄청 유용한 개념이네요!! 정말 감사합니다 :)

답글 달기
comment-user-thumbnail
2023년 10월 23일

감사합니다~

답글 달기
comment-user-thumbnail
2023년 12월 25일

정리를 잘 해 놓으셨네요. 도움이 많이 되었습니다.

답글 달기