개발 공부/AWS

[AWS] SAA 공부 (3)-1 EC2 - EBS / Snapshots / AMI

sngynhy 2025. 3. 19. 12:21

EBS (Elastic Block Store)

EC2 인스턴스에 연결하여 사용할 영구 블록 스토리지 볼륨을 제공

즉, EC2 인스턴스가 실행 중인 동안 연결 가능한 가상 하드 디스크

EBS 특징

  • 영구성: EC2 인스턴스를 종료하거나 재부팅해도 데이터가 사라지지 않고 계속 유지 가능
  • 독립성: EBS 볼륨은 EC2 인스턴스와 독립적으로 존재 => 인스턴스를 삭제해도 EBS는 유지
    • 인스턴스와 EBS는 분리된 상태로 네트워크로 연결되어 있기 때문에
      인스턴스 업그레이드 시 EBS에 연결된 네트워크만 변경해주면 됨 => 인스턴스 업그레이드 용이
    • 단, 루트 볼륨으로 사용 시 EC2 종료되면 EBS도 함께 종료됨 => 설정을 통해 EBS만 따로 존속 가능
  • 확장성: 필요 시 볼륨 크기나 성능을 동적으로 조정 가능
    • 일반적으로 EBS는 한 개의 인스턴스에만 붙일 수 있으나, Multi Attach를 사용하면 여러 인스턴스가 동시에 접근 가능
      • 한 개의 EBS를 최대 16개의 EC2에 장착 가능
      • 단, 지원되는 볼륨 타입: io1 또는 io2(프로비저닝된 IOPS SSD)만 가능
  • 고가용성: 자동으로 데이터를 여러 AZ(가용 영역)에 복제해 데이터 손실 위험 낮춤
    • EC2와 같은 가용 영역에 존재 > 인스턴스 생성 시 설정한 AZ에만 연결 가능
    • 단, 스냅샷을 이용하면 다른 AZ에도 연결 가능
  • EBS 볼륨을 가용 영역 내에 자동으로 복제되어 구성 요소 장애로부터 보호
  • 워크로드 실행에 필요한 시연 시간이 짧고 일관된 성능 제공
  • 프로비저닝한 부분에 대해서만 저렴한 비용을 지
📌인스턴스 종료 시 EBS 삭제 속성
EC2 인스턴스 생성 시 콘솔에서 EBS 볼륨을 생성하면 [종료 시 삭제] 옵션으로 EBS 액션 제어 가능
> 인스턴스가 종료되어도 데이터를 유지하고 싶은 경우 비활성화로 설정
(단, 루트 볼륨의 경우 '종료 시 삭제'가 기본값으로 활성화 되어 있음)

EBS 유형

  • GP2 / GP3 (SSD)
    • 다양한 워크로드에 대해 가격과 성능의 균형을 맞추는 일반적인 범용 SSD 볼륨
    • 비용 효율적인 스토리지
    • 낮은 대기 시간을 제공
    • 시스템 부팅 볼륨, 가상 데스크톱, 개발 및 테스트 환경에 사용
    • 📌 GP2와 GP3의 차이점
      • GP3는 IOP와 처리량을 독립적으로 설정 가능 > 디스크 크기와 관계없이 IO 증가
      • GP2는 서로 연결되어 있음 > 볼륨의 기가 바이트 수를 늘리면 IOP 증가
  • IO1 / IO2 Block Express (SSD) - 프로비저닝된 IOPS
    • 가장 높은 성능의 SSD 볼륨
    • 32,000 이상의 IOPS
    • 미션 크리티컬, 저지연, 고처리량 작업, 스토리지 성능과 일관성에 매우 민감한 경우 적합
  • ST1 / SC1 (HDD)
    • 저비용 대용량 볼륨
    • ST1와 SC1의 차이점
      • ST1: 액세스 빈도가 높고 처리량이 많은 작업에 사용
      • SC1: 액세스 빈도가 낮은 작업에 사용
⚡ 각 유형들의 큰 틀만 이해하기
데이터 베이스가 필요한 경우 > 범용 SSD(GP2, GP3), 프로비저닝된 IOP SSD (IO1, IO2)
EC2 인스턴스 생성 시 부팅 볼륨으로 사용할 수 있는 유형 > 범용 SSD, 프로비저닝된 IOP SSD, Magnetic(표준)
높은 처리량과 낮은 비용이 필요한 경우 > ST1, SC1

EBS 다중 연결 기능 (Multi-Attach) - with IO1 / IO2

  • 하나의 EBS 볼륨을 같은 AZ에 있는 여러 EC2 인스턴스에 연결 가능
    • 단, IO1 또는 IO2 볼륨만 가능
  • 각 인스턴스는 고성능 볼륨에 대한 읽기 및 쓰기 권한을 전부 갖음
  • 최대 16개 인스턴스만 연결 가능
  • 다중 연결 기능을 실행하기 위해서는 반드시 클러스터 인식 파일 시스템을 사용해야함

스냅샷 (Snapshot)

  • 특정 시간에 EBS 상태의 저장본
  • 필요 시 스냅샷을 통해 특정 시간의 EBS를 복구 가능
  • 다른 AZ 혹은 리전에도 복사하여 전송 가능
  • S3에 보관 => 증분식 저장
    ※ 증분식: 새로운 버전 업로드 시 전체 파일을 다시 저장하지 않고 변경된 부분만 저장하는 방식
  • 스냅샷 삭제 시 휴지통에 보관되어 복원 가능 (1일~1년)

AMI (Amazon Machine Image)

  • EC2 인스턴스를 생성할 때 사용하는 서버 이미지
    • 즉, 인스턴스를 실행하기 위해 필요한 정보를 모은 단위
    • OS, 아키텍처 타입(32-bit or 64-bit), 저장 공간 용량, 환경 설정 등을 포함
  • AMI를 사용하여 EC2를 복제하거나 다른 리전 또는 계정으로 전달 가능
    • 동일한 환경의 인스턴스를 여러 개 배포 가능
  • 스냅샷을 기반으로 AMI 구성

AMI 구성

  • 1개 이상의 EBS 스냅샷
  • '인스턴스 스토어' 인스턴스의 경우 루트 볼륨에 대한 템플릿
    • OS, 애플리케이션 서버, 애플리케이션 등
  • 사용 권한
    • 어떤 AWS 계정이 사용 가능한지
  • 블록 디바이스 맵핑
    • EC2 인스턴스를 위한 볼륨 정보 (EBS가 얼만큼의 용량으로 몇 개 붙는지)

AMI 타입

  • EBS 기반
    • 네트워크로 연결 > 느린 속도
    • 스냅샷을 기반으로 루트 디바이스 생성
  • 인스턴스 스토어 기반
    • 인스턴스 내부에 저장 > 빠른 속도
    • 인스턴스 삭제 시 함께 삭제됨 (비영구적) > 캐시 데이터, 복구 가능한 데이터 등을 저장
    • S3에 저장된 템플릿 기반으로 생성

AMI 생성 과정

 

EC2 생명주기

  • 중지
    • 중지 중에는 인스턴스 요금 미청구
    • 단, EBS 요금, Elastic IP 요금 등 다른 구성 요소에 대한 요금은 청구됨
    • 중지 후 재시작 시 공용 IP 변경
    • EBS 기반 인스턴스만 중지 가능 (인스턴스 스토어 기반 인스턴스는 중지 불가)
  • 재부팅
    • 재부팅 시에는 공용 IP 변동 없음
  •  최대 절전 모드 (Hibernate) 
    • 메모리(RAM)를 보존하여 재시작 시 중단 지점에서 다시 시작할 수 있는 정지 모드
    • 최대 절전 모드 시 메모리에 있는 데이터를 하드디스크(EBS)에 저장하여 종료
    • 암호화 필요,  덤프된 RAM을 포함할 만큼 충분한 용량 필요
    • 모든 인스턴스 유형에서 사용 가능
 
최대 절전 모드 설정

1. 인스턴스 생성 > 고급 세부 정보 > 최대 절전 중지 방식 > 활성화 선택


2. EBS 볼륨 설정
- 크기 > 사용하고자 하는 인스턴스 타입의 RAM 사이즈 고려
- 암호화 활성
- KMS 키 선택

 

요약

인스턴스 상태 설명 인스턴스 사용 요금
pending (대기) 인스턴스가 running  상태로 될 준비중 미청구
running (실행) 인스턴스 사용 중 청구
stopping (중지중) 인스턴스 중지 또는 최대 절전 모드로 전환중 미청구
최대 절전 모드 시 청구
stopped (중지 완료) 인스턴스 중지 상태 > 재시작 가능 미청구
shutting-down (종료중) 인스턴스 종료중 미청구
terminated (종료) 인스턴스 영구적으로 삭제됨 미청구

 

인스턴스 복제 실습

1. 인스턴스 이미지(스냅샷) 생성

 

2. 이미지 생성 완료 > AMI에 추가된 이미지

 

3. 위의 과정을 통해 만들어진 이미지로 인스턴스 생성

 

[내 AMI] 탭에서 내 소유 이미지 선택 후 인스턴스 생성

 

4. 복제 완료 > 인스턴스의 설정이 그대로 반영되어있는 상태로 복제됨