본문 바로가기
AWS

AWS Section 6-1. EC2 인스턴스 스토리지

by _비니_ 2024. 9. 27.

📌 EBS(Elastic Block Store) Volume


  • EBS는 인스턴스에 연결 가능한 네트워크 드라이브로, 인스턴스가 종료된 후에도 데이터를 유지할 수 있음.
    • 인스턴스를 다시 생성하고 이전 EBS 볼륨을 마운트하면 데이터 복구 가능.
  • CCP 레벨: 한 번에 하나의 EBS 볼륨만 하나의 인스턴스에 연결 가능.
    • 어소시에이트 레벨: 일부 다중 연결 가능.
  • EBS 볼륨은 특정 가용성 영역(AZ)에서만 생성 가능.
    • 네트워크로 연결된 USB 스틱과 비슷한 개념이지만 물리적으로 연결되지 않음.
  • 무료 티어: 월 30GB의 범용(SSD) 또는 마그네틱 유형의 무료 스토리지 제공.
  • 네트워크 기반 드라이브:
    • 즉 물리적 드라이브 ❌
    • EC2 인스턴스와 EBS는 네트워크를 통해 통신하므로 약간의 지연 시간이 발생할 수 있음.
  • 인스턴스와 분리되었다가 다른 인스턴스에 빠르게 연결 가능.
  • 가용성 영역(AZ)에 고정됨:
    • 즉 us-east-1a의 EBS 볼륨은 us-east-1b에 연결할 수 없음
    • 동일한 AZ 내에서만 연결 가능하지만, 스냅샷을 통해 다른 AZ로 복사 가능.
  • 용량 및 성능 설정:
    • 미리 GB 및 IOPS(초당 전송 수)를 결정해야 하며, 이에 따라 요금이 부과됨.
    • 필요 시 용량을 확장하여 더 큰 사이즈와 성능을 얻을 수 있음

 

 

 

  • US-EAST-1A:
    • 한 EC2 인스턴스에 하나의 EBS 볼륨을 연결할 수 있음.
    • 하나의 EBS 볼륨은 한 번에 하나의 EC2 인스턴스에만 연결 가능(단, 인스턴스는 여러 EBS 볼륨을 가질 수 있음).
    • 두 번째 EC2 인스턴스를 생성하면 고유한 EBS 볼륨을 연결해야 함.
      • EBS 볼륨은 한 번에 두 개의 인스턴스와 연결될 수 없으므로
      • (인스턴스 하나에 두 개의 EBS 볼륨이 연결되는 것은 가능)
  • US-EAST-1B:
    • 다른 가용 영역(AZ)에 EBS 볼륨을 두려면, 해당 AZ에 별도로 생성해야 함.
    • EBS 볼륨은 특정 AZ에 고정되어, 다른 AZ의 EC2 인스턴스에 바로 연결할 수 없음.
    • EBS 볼륨은 연결하지 않고 unattached 상태로 유지할 수도 있음.

 

EBS 볼륨은 한 번에 하나의 EC2 인스턴스와 연결되며, 가용 영역 간에 EBS 볼륨을 바로 연결할 수 없으므로 AZ 내에서 관리가 필요함.

 

 

📌 EBS - Delete on Termination attribute (시험 출제 가능성 ⭕)

EC2 인스턴스를 통해 EBS 볼륨을 생성하는 경우 종료 시 삭제하는 속성

 

EC2 인스턴스를 생성할 때 콘솔에서 EBS 볼륨을 생성하면 끝에서 두 번째 열에 종료시 삭제 옵션이 있음

  • 기본 설정
    • 루트 EBS 볼륨: 인스턴스 종료 시 자동으로 삭제됨 (속성 활성화).
    • 추가 EBS 볼륨: 기본적으로 삭제되지 않음 (속성 비활성화).
  • 이 속성은 AWS 콘솔 또는 AWS CLI를 통해 활성화/비활성화 가능.

 

EC2 종료 시 루트 볼륨은 삭제되지만, 추가 볼륨은 삭제되지 않으며, 설정을 통해 이를 제어할 수 있음.

 

 

실습_볼륨 생성 및 연결

  • 인스턴스 시작 시: 기본적으로 루트 EBS 볼륨이 종료 시 삭제로 설정됨. (사진에서 8GiB의 루트 볼륨이 자동으로 생성됨).
  • 루트 볼륨은 기본적으로 인스턴스가 종료되면 삭제됨.
  • 추가 볼륨은 별도로 생성되며, 가용 영역 내에서만 연결 가능함.
  • EBS 볼륨은 특정 가용 영역에 고정되며, 다른 가용 영역에서 바로 사용할 수 없음.
사진에서 볼 수 있듯이, 인스턴스 종료 시 루트 볼륨은 삭제되도록 설정되어 있지만, 추가 볼륨은 독립적으로 관리됨.

 

 

📌 EBS Snapshots

  • EBS 볼륨의 특정 시점에서의 백업
  • 스냅샷을 위해 볼륨을 분리할 필요는 없지만 안정성을 위해 권장됨
  • EBS 스냅샷을 사용하면 다른 가용 영역(AZ) 또는 리전으로 복사 가능.
    • 예: US-EAST-1A에 있는 EBS 볼륨을 스냅샷으로 생성하고, US-EAST-1B에 있는 EC2 인스턴스에서 복원 가능.

 

EBS 볼륨을 전송하는 방법

  1. EBS 볼륨의 스냅샷을 생성.
  2. 생성된 스냅샷을 다른 AZ 또는 리전으로 복사.
  3. 복사된 스냅샷을 사용해 다른 인스턴스에서 복원.

 

📌 EBS Snapshots Features

  • EBS 스냅샷 아카이브
    • 스냅샷을 75% 더 저렴한 "아카이브 티어"로 옮길 수 있는 기능
    • 스냅샷을 아카이브 티어로 옮기면 아카이브를 복원하는 데에 24~72시간 정도 소요

 

  • EBS 스냅샷용 휴지통
    • 실수로 삭제된 스냅샷을 복구할 수 있도록 삭제된 스냅샷을 보관하는 규칙 설정
    • 보존 지정(1일에서 1년까지 설정할 수 있음)

 

  • 빠른 스냅샷 복원(FSR)
    • 스냅샷을 완전히 초기화하는 것.
    • 스냅샷을 처음 사용할 때 지연 시간이 없도록 강제($$)
    • 특히 스냅샷이 매우 클 때 EBS 볼륨을 초기화해야 하거나 또는 매우 빠르게 인스턴스화해야 하는 경우에 유용함
    • 비용이 많이 듦

 

📌 AMI

AMI = Amazon Machine Image

  • AMI는 사용자 지정 EC2 인스턴스를 나타냄
    • AWS에서 제공하는 Public AMI(예: Amazon Linux 2 AMI) 또는 사용자 지정 AMI를 사용할 수 있음.
    • 사용자 지정 AMI는 소프트웨어, 구성, 운영 체제 등을 사전에 패키징해 부팅 및 구성 시간을 단축시킴.
  • 사용자 지정 AMI는 원하는 리전에 복사하거나 AWS 글로벌 인프라를 활용해 배포 가능.
  • AMI 세 가지 유형:
    • Public AMI: AWS에서 제공하는 AMI.
    • 사용자 지정 AMI: 사용자가 직접 만들고 유지 관리.
    • AWS 마켓플레이스 AMI: 다른 사용자가 만든 AMI, 구매 가능.

 

📌 AMI Process (from an EC2 instance)

  • EC2 인스턴스 시작 후 이를 사용자 지정으로 바꿔줌
  • 인스턴스 중지시켜 데이터 무결성을 확보함
  • AMI 구축 - 이 떄 표시는 되지 않지만 EBS 스냅샷도 생성됨
  • 다른 AMI에서 인스턴스 실행할 수 있게 됨

 

AMI는 EC2 인스턴스의 사용자 지정 이미지로, 소프트웨어와 설정이 포함된 인스턴스를 빠르게 생성할 수 있으며,

Public, 사용자 지정, 마켓플레이스 AMI로 나눌 수 있음. AMI 생성 과정에서 EBS 스냅샷도 함께 생성됨.

 

👩🏻‍💻 실습_AMI 생성

EC2 인스턴스를 사용해 사용자 지정 AMI를 생성.

 

#!/bin/bash
# Use this for your user data (script from top to bottom)
# install httpd (Linux 2 version)

echo "<h1>Hello World from $(hostname -f)</h1>" > /var/www/html/index.html

 

httpd 웹 서버가 사전 설치된 AMI를 사용해 EC2 인스턴스를 시작했기 때문에, 다시 httpd를 설치할 필요 없이 빠르게 웹 페이지에 접속 가능.

 

 

EC2 인스턴스와 연결된 스토리지 옵션

  1. EC2 인스턴스 스토어:
    • 가상 머신인 EC2 인스턴스가 실제로 하드웨어 서버에 연결되어 있으며, 이 서버에는 물리적으로 연결된 디스크 공간이 있음.
    • 특정 유형의 EC2 인스턴스는 EC2 인스턴스 스토어라고 불리며, 향상된 I/O 성능을 제공하기 위해 사용됨.
    • 🚨주의: 인스턴스를 중지 또는 종료하면, 스토리지 데이터는 손실🚨
    • 따라서 임시 스토리지로 간주되며, 장기 스토리지로 사용하기엔 부적합.
    • 주로 버퍼, 캐시, 임시 데이터 등 단기적인 데이터 저장에 적합.
    • EBS장기 스토리지로 적합함.
  2. EBS 볼륨 유형:
    • gp2/gp3 (SSD): 다양한 워크로드에 대해 가격과 성능의 균형을 맞춘 범용 SSD 볼륨.
    • io1/io2 블록 익스프레스 (SSD): 저지연, 고처리량 워크로드를 위한 최고 성능의 SSD 볼륨.
    • st1 (HDD): 자주 액세스하는 처리량 집약적 워크로드를 위한 저비용 HDD 볼륨.
    • sc1 (HDD): 액세스 빈도가 낮은 워크로드를 위한 최저가 HDD 볼륨.

EBS 볼륨 특성:

  • 크기, 처리량, IOPS(초당 입출력 작업 수)로 정의됨.
  • gp2/gp3io1/io2 블록 익스프레스 볼륨만 부팅 볼륨으로 사용 가능 (운영 체제가 실행되는 위치).

EC2 인스턴스 스토어는 임시 스토리지로 적합하며, I/O 성능이 뛰어남.

그러나 장기 스토리지가 아니므로 데이터 손실에 주의해야 하며, 백업을 권장.

EBS는 장기 데이터 저장에 적합하며 다양한 유형으로 제공됨, 그 중 일부는 부팅 볼륨으로 사용 가능함

 

📌 General Purpose SSD (GP2, GP3) _EBS 볼륨

(GP2, 범용 볼륨과 프로비저닝된 IOP 볼륨이 시험에서 가장 중요할 것임)

  • GP2:
    • 비용 효율적이며 짧은 지연 시간 제공.
    • 시스템 부팅 볼륨, 가상 데스크톱, 개발 및 테스트 환경에 적합.
    • IOPS는 볼륨 크기와 연동되어 최대 3,000 IOPS까지 제공, 최대 16,000 IOPS까지 가능.
  • GP3:
    • 최신 세대 볼륨으로 기본 3,000 IOPS125 MiB/s 처리량 제공.
    • IOPS와 처리량을 독립적으로 설정할 수 있으며, 최대 16,000 IOPS1,000 MiB/s 처리량 지원.

GP2와 GP3는 비용 효율적인 스토리지와 낮은 지연 시간 용도라는 것을 기억!!

GP3에서는 IOP와 처리량을 독립적으로 설정할 수는 있지만

GP2에서는 서로 연결됨

 

📌 프로비저닝 IOPS(PIOPS) SSD (io1, io2) _EBS 볼륨

  • 지속적인 IOPS 성능이 필요한 비즈니스 애플리케이션에 적합.
  • 데이터베이스 워크로드에 적합하며, 스토리지 성능과 일관성 요구가 높은 경우 사용.
  • io1: 최대 64,000 IOPS(Nitro EC2 인스턴스), 32,000 IOPS(그 외).
  • io2 Block Express: 최대 256,000 IOPS, 최대 64TB까지 확장 가능.
  • EBS Multi-attach 지원 (다중연결지원)

PIOPS는 고성능 스토리지와 IOPS 독립 조정이 필요한 경우 적합.

 

📌 하드 디스크 드라이브(HDD) _EBS 볼륨

  • 부팅 볼륨으로 사용할 수 없음
  • ST1 (처리량 최적화 HDD):
    • 빅 데이터, 데이터 웨어하우스, 로그 프로세싱에 적합.
    • 최대 500 MiB/s 처리량, 최대 500 IOPS 제공.
  • SC1 (콜드 HDD):
    • 자주 액세스하지 않는 데이터에 적합.
    • 가장 저렴한 비용으로 제공되며, 최대 250 MiB/s 처리량, 최대 250 IOPS 제공.

ST1은 고처리량, SC1은 낮은 빈도의 데이터에 최적화.

 

 

범용 SSD(GP2, GP3) 일반적인 워크로드와 부팅 볼륨에 적합. 프로비저닝된 IOPS SSD 고성능 애플리케이션 및 데이터베이스에 최적화. HDD (ST1, SC1) 고처리량 작업이나 자주 액세스하지 않는 데이터에 적합.

 

 

EBS Multi-Attach - io 1 / io2 family

  • 다중 연결 기능을 사용하면 동일한 EBS 볼륨을 동일한 AZ의 여러 EC2인스턴스에 연결할 수 있음

  • 각 인스턴스에는 고성능 볼륨에 대한 전체 읽기 및 쓰기 권한을 갖게 됨.
    • 즉 모두 동시에 쓰기와 읽기가 가능함
  • Use cases:
    • 클러스터된 Linux 애플리케이션의 가용성을 높일 수 있습니다. (예: Teradata)
    • 애플리케이션이 동시 쓰기 작업을 관리할 수 있는 경우 사용 가능
    • 하나의 EBS 볼륨은 한 번에 최대 16개 (암기)의 EC2 인스턴스에 연결할 수 있음
    • 이 기능을 사용하려면 클러스터 인식 파일 시스템을 사용해야 하며, 일반적인 파일 시스템(XFS, EXT4 등)은 사용할 수 없음
반응형

'AWS' 카테고리의 다른 글

AWS Section 7-1. ELB + ASG  (0) 2024.09.27
AWS Section 6-2. EC2 인스턴스 스토리지  (0) 2024.09.27
AWS Section 5. EC2 기초  (0) 2024.09.27
AWS Section 4-2. IAM 및 AWS CLI  (0) 2024.09.27
AWS Section 4-1. IAM 및 AWS CLI  (0) 2024.09.27