Amazon Web Services 한국 블로그
Amazon EBS Direct API를 통한 스냅샷 콘텐츠에 대한 접근 제어
Amazon EBS 스냅샷은 EC2 인스턴스의 볼륨을 간편하게 백업하는데 매우 유용합니다. AWS 관리 콘솔 뿐만 아니라, CLI 명령줄(create-snapshot
)을 사용하거나 CreateSnapshot
함수를 호출하여 생성할 수 있으며 DLM(데이터 수명 주기 관리자)를 사용하여 자동화된 스냅샷 관리를 설정할 수 있습니다.
스냅샷에 대한 모든 것
스냅샷은 Amazon Simple Storage Service(S3)에 저장되며 스냅샷을 사용하면 새 EBS 볼륨을 필요에 따라 빠르게 생성할 수 있습니다. 볼륨의 첫 번째 스냅샷에는 볼륨의 모든 512K 블록에 대한 복사본이 포함됩니다. 후속 스냅샷에는 이전 스냅샷 이후로 변경된 블록만 포함됩니다. 스냅샷은 이러한 증분 속성 덕에 매우 경제적입니다. 통계적으로 볼 때 EBS 볼륨의 많은 블록은 자주 변경되지 않기 때문입니다.
간단한 예를 한 번 봅시다. EBS 볼륨을 생성하고 8개 블록으로 포맷한 후 일부 파일을 복사한 다음 첫 번째 스냅샷(Snap1)을 생성합니다. 물론, 8개 블록은 허용되는 최소 크기보다 작지만 설명을 위한 것이니 양해 바랍니다. 이 첫 번째 스냅샷에는 모든 블록이 포함되며 다음과 같이 표현됩니다.
파일 몇 개를 추가하고 1개를 삭제한 다음 두 번째 스냅샷(Snap2)을 생성합니다. 이 스냅샷에는 첫 번째 스냅샷을 생성한 후 수정된 블록만 포함되며 다음과 같이 표현됩니다.
몇 가지를 더 변경하고 세 번째 스냅샷(Snap3)을 생성합니다.
디렉터리, 파일 및 기반 블록 간의 관계는 파일 시스템을 통해 제어되며 실제 상황에서는 꽤 복잡하다는 점을 알아두시기 바랍니다.
이제 스냅샷이 3개 있습니다. 이 스냅샷 3개를 사용하여 새 볼륨을 만들겠습니다. EBS 볼륨의 스냅샷을 생성할 때마다 이전 스냅샷에 대한 내부 참조가 생성됩니다. 따라서 CreateVolume
명령은 다음 그림과 같이 각 블록의 최신 복사본을 찾을 수 있습니다.
EBS는 모든 세부 정보를 자동으로 관리합니다. 예를 들어 Snap2를 삭제하면 스냅샷에서 블록 0의 복사본도 삭제됩니다. Snap3의 복사본이 최신 복사본이기 때문입니다. 그러나 Snap2의 블록 4는 Snap3의 일부가 됩니다.
이 역방향 참조 체인(Snap3에서 Snap1로, Snap3에서 Snap2 및 Snap1로)을 스냅샷 세트의 계보라고 칭합니다.
이제 모든 설명을 마쳤습니다. 사실, 이러한 정보를 몰라도 상관 없으며 스냅샷을 생성하고, 사용하고, 삭제하는 데만 집중해도 됩니다.
스냅샷 콘텐츠에 직접 액세스
오늘 소개하는 EBS Directs API는 위에서 설명한 대로 스냅샷 콘텐츠에 대한 액세스를 제공합니다. 이러한 API는 백업/복구, 재해 복구 및 데이터 관리 제품 및 서비스 개발자를 위해 설계되었으며 더 빠르고 경제적인 오퍼링을 개발하는 데 도움이 됩니다.
이 새로운 API는 블록 인덱스(0, 1, 2, 등)를 사용하여 스냅샷 안의 특정 512K 블록을 식별합니다. 인덱스는 GetSnapshotBlock
API만 의미를 알 수 있는 암호화된 토큰 형태로 반환됩니다. 저는 이러한 토큰을 T0
, T1
등으로 표현했습니다. API는 현재 512K바이트 블록에서 작동하며 향후에 더 많은 블록 크기를 지원할 계획입니다.
API는 다음과 같습니다.
ListSnapshotBlocks
– 지정된 스냅샷의 모든 블록을 암호화된 토큰으로 식별합니다. Snap1의 경우 이 API는 [T0, T1, T2, T3, T4, T5, T6, T7]
을 반환하고 Snap2에 대해서는 [T0, T4]
를 반환합니다.
GetSnapshotBlock
– 블록의 콘텐츠를 반환합니다. 블록이 암호화된 스냅샷의 일부인 경우 복호화된 형태로 반환됩니다.
ListChangedBlocks
– 계보의 두 스냅샷 사이에 변경된 블록 목록을 암호화된 토큰으로 반환합니다. Snap2에 대해 [T0, T4]
를 반환하고 Snap3에 대해서는 [T0, T5]
를 반환합니다.
이러한 API는 특수하지만 매우 중요한 한 가지 사용 사례를 해결하기 위해 설계되었습니다. 그렇지만 48시간 내에 의외의 새로운 사용 사례들이 나올 것 같군요! 찾게 되면 저에게 알려주십시오.
지금 이용 가능
EBS 직접 API는 지금 이용 가능하며 미국 동부(버지니아 북부), 미국 서부(오레곤), EU(아일랜드), EU(프랑크푸르트), 아시아 태평양(싱가포르) 및 아시아 태평양(도쿄) 리전에서 오늘부터 사용을 시작할 수 있습니다. 나머지 리전에서도 몇 주 안에 사용할 수 있게 될 것입니다. GetSnapshotBlock
을 호출하여 암호화된 스냅샷에 포함된 블록에 액세스하는 경우 List
및 Get
API에 대한 호출 요금과 일반적인 KMS 요금이 적용됩니다.
— Jeff