=> 인스턴스가 실행 중인 동안 연결 가능한 네트워크 드라이브(실제 물리적인 연결이 있는 것은 아님)

EBS 볼륨을 사용하면 인스턴스가 종료된 후에도 데이터 지속 가능 => 인스턴스를 재성성하고 EBS 볼륨을 마운트하면 데이터를 다시 받을 수 있음
AZ 단위 리소스라서, EC2와 같은 AZ에 있어야 붙일 수 있음
ex) EBS 볼륨이 us-east-1a에서 생성 => us-east-1b 인스턴스에 붙일 수 ❌
하지만 스냅샷을 이용하면 다른 가용영역(AZ)로도 옮길 수 있음
CCP 레벨:
하나의 EBS는 하나의 인스턴스에만 마운트 가능 BUT 하나의 인스턴스는 여러개의 EBS를 가질 수 있다‼️
Associate 레벨:
일부 EBS 타입에 한해 여러 EC2 동시 부착 가능
EBS 볼륨이 인스턴스와 통신하기 위해서는 네트워크가 필요 => 컴포터가 다른 서버에 도달할 때 지연이 발생할 수 있음
EBS 볼륨은 네트워크 드라이브기 때문에 인스턴스에 빠르게 붙기도 떨어지기도 함
용량을 미리 결정해야 함(size: GB, IOPS(단위 초당 전송 수))
why?
블록 주소 공간 고정 필요
예측 가능한 성능·격리
과금 모델과 리소스 관리
스냅샷/복구·마이그레이션의 일관성
ec2 인스턴스를 통해 ebs 볼륨을 생성하는 경우 "종료 시 삭제" 속성이 존재
기본적으로 root EBS 볼륨은 인스턴스 종료와 함께 삭제되도록 설정

EC2 Instance에서 인스턴스 클릭 후 Storage 탭을 클릭하면 Block devices에서 지금 사용중인 EBS가 보인다
대부분의 경우 (= EBS-backed AMI사용)
EC2를 생성하면 루트 EBS 볼륨이 자동으로 함께 생성·붙음

Create volume 버튼 클릭


EC2> Instances에 Networking 탭에서 Availability zone 확인 가능


인스턴스를 선택하고 볼륨을 연결한다

다시 Instances의 내 인스턴스에서 Storage 탭을 클릭해서 스크롤한 다음 Block devices를 확인하면 방금 연결한 볼륨이 목록에 뜨는 것을 확인할 수 있다
인스턴스를 종료하면 EBS 볼륨은 어떻게 될까?

최상단의 EBS 볼륨을 보면 Delete on termiation에 Yes 표시가 되어있는데

이는 Instance를 생성할 때 우리가 Delete on termination에 Yes로 체크했기 때문이다

실제로 내가 Instance를 종료하고 다시 EBS 볼륨 목록을 조회하면

첫번째 EBS 볼륨이 사라진 것을 확인할 수 있다
EBS 볼륨의 특정 시점에서의 백업 /EBS의 데이터 저장 상태에 대해 사진(백업본)을 찍어둔 개념
EBS 스냅샷을 다른 가용 영역 또는 다른 리전에 복사 가능

EBS 볼륨을 한 인스턴스에서 다른 인스턴스로 전송하는 방법이라고도 할 수 있다
증분 백업: 첫 스냅샷은 사용 중 블록 전체, 이후엔 변경 블록만 저장 → 비용/시간 절감

맨 왼쪽부터 스냅샷이 생성된 순서에 따라 "Snapshots A-> B-> C"로 표현하고 있으며, 볼륨에 대한 데이터가 변경될 때마다 스냅샷을 생성하는 순서를 "State"로 표현하고 있다.
State 1 부터 살펴보면, 15GiB 용량을 가진 EBS 볼륨에서 10GiB의 데이터를 가지고 있고, 해당 볼륨에 대한 첫번째 스냅샷을 생성한다면 스냅샷 A가 가진 용량은 10GiB가 됨
State 2 에서는 기존 EBS 볼륨의 10GiB 데이터에서 4GiB의 데이터가 변경(changed)되었는데, 해당 시점에서 두번째 스냅샷을 생성한다면 스냅샷 B는 변경된 4GiB의 데이터를 가지며, 변경되지 않은 6GiB에 대해서는 스냅샷 A의 부분을 참조(referenced)
(❕이 시점에서 10GiB 데이터를 가진 볼륨에 대한 스냅샷이 2개 생성되었지만 실제로 스냅샷이 가진 데이터의 크기는 A -> 10GiB + B -> 4 GiB으로 14GiB가 됨)
State 3 에서는 기존 10GiB 데이터를 가지고 있는 볼륨에 2GiB 크기의 새로운 데이터가 추가(added)되었으며, 해당 시점에서 세번째 스냅샷을 생성한다면 스냅샷 C는 새로 추가된 2GiB의 데이터를 가지며, 스냅샷 A의 6GiB, 스냅샷 B의 4GiB의 데이터를 참조(referenced)
정리하자면,
Snapshot A : 10GiB 데이터를 가짐 (EBS 볼륨이 가지고 있는 데이터 용량 : 10GiB)
Snapshot B : 4GiB 데이터를 가짐 (EBS 볼륨이 가지고 있는 데이터 용량 : 기존의 6GiB + 변경된 4GiB)
Snapshot C : 2GiB 데이터를 가짐 (EBS 볼륨이 가지고 있는 데이터 용량 : 기존의 10GIB + 추가된 2GIB 으로 12GiB)
Snapshot A + B + C 저장에 필요한 S3의 용량은 10 + 4 + 2 로 16GiB이 된다. 따라서 사용자는 16GiB에 대한 스냅샷 비용을 지불하면 됨
(❕ 스냅샷은 EBS의 데이터를 S3에 백업하는 방식으로 생성)
복원 성능: 스냅샷에서 만든 볼륨은 지연 로딩(lazy loading) → 초기 읽기 지연
비용/보존: GB-월로 과금(증분 기준) + API 호출
Snapshot Archive: 장기보관용 저렴, 대신 복원에 몇 시간
Recycle Bin: 삭제 보호(보존 규칙)



생성된 스냅샷의 복제본을 다른 리전에 만들 수 있다
또 다르게 스냅샷을 만든 다음 그것으로 볼륨을 생성할 수도 있다


AZ를 일부러 다른 곳을 선택해보겠다

생성 후 Volumes 탭에 들어가면 2개의 볼륨이 있는 것을 확인할 수 있는데 하나는 Snapshot ID가 명시되어 있어 스냅샷으로 만든 것을 확인할 수 있다

Snapshot 메뉴 우측 상단에 Recycle bin이라는 버튼이 있다



Rule 이름, 복구하려는 리소스 타입, 보존 기간 등을 설정할 수 있다
다시 스냅샷 영역으로 가서 삭제를 진행해준다


하지만 Recycle Bin의 Resources에 들어가보면 방금 내가 삭제했던 EBS snapshot이 목록에 나타나는 것을 확인할 수 있다
여기서 Recover 가능‼️