top of page

Amazon S3 객체관리? 새로나온 Metadata로 관리해보자!

Amazon S3 객체관리? 새로나온 Metadata로 관리해보자!

Written by Minhyeok Cha


Amazon S3 객체를 관리할 때 다들 어떤 방법을 사용하시나요? 콘솔에 들어가서 직접 찾기? CLI나 SDK 이용한 방식? Glue 크롤링? 저는 최근에 회사에서 S3 비용이 슬슬 쌓인다고 하셔서 절감 방법을 찾아보았습니다.


처음에는 “안 쓰는 데이터를 Glacier로 넣으면 끝나겠네”라고 단순하게 생각했는데, 저희 회사가 약 6년 정도 AWS를 쓰면서 쌓아온 데이터들이 한 버킷에 담겨 있으니 정리하기가 난감했습니다. 그럴 때 갑자기 옆에 “테이블 버킷”이 보였고, 비교적 최근 업데이트된 S3 Metadata가 생각나서 진행해 보았는데요. 다행히 잘되어서 공유해보고자합니다.

 

목차

 

Amazon S3 Metadata란?

amazon S3 Metadata 이미지
(출처 : AWS)

Amazon S3 Metadata는 저번에 제가 작성한 10분 만에 읽는 AWS re:Invent 주요 발표 총정리에서 초입 부분을 확인하실 수 있습니다.

위에 작성한 글에서는 AWS Glue Data Catalog와 연동이 가능하다고 하였지만, 본문에서는 AWS Lake Formation을 사용해 보고자 합니다. 처음에는 AWS Glue의 크롤링을 돌리려 했으나, 올해에 정식 출시된 테이블 버킷 & Amazon S3 Metadata를 활용해 보고자 트라이해 봤습니다.


 

AWS Lake Formation란?

그렇다면 아까 나온 AWS Lake Formation은 도대체 어떤 서비스인가? AWS Lake Formation은 데이터 레이크 구축 시 복잡하고 손이 많이 가는 단계들을 단순화하고 자동화합니다. 이러한 단계들에는 데이터를 수집, 정제, 이동, 카탈로깅하고 분석과 머신러닝을 위해 데이터를 안전하게 접근 가능하도록 하는 부분들이 포함됩니다. 또한 AWS Identity and Access Management (IAM)에 기반한 자체 권한 관리 모델을 제공합니다.


이러한 중앙 관리형 권한 관리 모델은 간단한 grant/revoke 메커니즘을 통해 데이터 레이크의 데이터에 대한 세부 레벨의 권한 관리를 가능하게 해줍니다. AWS Lake Formation의 권한은 모든 데이터 레이크 데이터셋에 대해 테이블, 컬럼 레벨에 적용됩니다. 권한 관리가 연동되는 서비스는 AWS Glue, Amazon Athena, Amazon Redshift Spectrum, Amazon QuickSight 등이 있다고 합니다. 그러나 저희의 목적은 S3 객체를 크롤링 없이 뽑아내어 쿼리를 하기 위함이기 때문에 AWS Lake Formation은 연결 통로 용으로만 사용할 예정입니다.


 

데모 진행

저희 회사 계정은 권한을 회수당하여 이번 데모는 테스트 계정에서 진행해보겠습니다.


💡 추가로 테이블 버킷 및 S3 Metadata는 오하이오, 버지니아 북부 리전만 가능합니다.


1. S3 테이블 버킷 생성

S3 Metadata 데모 진행 1

2. 내가 테스트할 S3 버킷에 메타데이터를 생성

S3 Metadata 데모 진행 1

이걸로 S3와 테이블 버킷의 연결이 끝났습니다.


3. Amazon Athena 체크

S3 Metadata 데모 진행 3

하지만 여기서 카탈로깅 없이 Amazon Athena로 가버리면 아무것도 나오지 않습니다. 사실 이 작업은 AWS Glue를 통해 카탈로그를 만들어야 하는데, 최근 AWS Lake Formation에서 자동으로 S3 테이블을 맞춰주는 기능이 출시되어 편하게 세팅이 가능해 보여 진행해 보았습니다.


4. AWS Lake Formation 'Enable S3 Table integration' 클릭

S3 Metadata 데모 진행 4

integration 진행시 S3 권한이 있는 role을 넣어줘야합니다.


S3 Metadata 데모 진행 5

연동에 성공하면 아래와 같이 카탈로그가 표시됩니다. 해당 카탈로그에 들어가서 정책 설정을 진행해주세요.


S3 Metadata 데모 진행 6

Permissions에 들어가 Grant를 눌러 계속 진행합니다.


S3 Metadata 데모 진행 7
S3 Metadata 데모 진행 7
S3 Metadata 데모 진행 7

다음 사진과 같이 진행 하셨으면 Amazon Athena에 들어가 저희의 S3가 잘 나오는지 확인합니다.


5. Amazon Athena 쿼리 성공적..!

S3 Metadata 데모 진행 8

AWS Glue 없이도 바로 나와 쿼리도 한번 돌린 후 성공한 모습입니다.


 

S3 비용 최적화 방안

이후 최적화 방법은 간단했습니다. 다음과 같이 쿼리문을 만들어 진행한 후, 결과 CSV를 다운로드받아 CLI로 쿼리문에 걸린 객체들을 Glacier 클래스로 전환하여 마무리했습니다.

S3 Metadata 데모 진행 9

S3 수명 주기까지

S3 Metadata 데모 진행 10

이후 S3 수명주기를 통해 추후 데이터도 Glacier로 클래스를 전환하도록 설정하였습니다.


 

마무리

Metadata를 25년 3월이 되어서야 드디어 써보게 됐네요. 특히 S3 비용 절감에 대해서는 정말 귀에 딱지가 앉도록 들었는데요. 컨설팅 하던 입장에서 다뤄보는 입장이 되니 뭔가 새삼스러웠습니다.


Amazon S3에 대해 이야기해보자면, 기존에 버킷 관리를 안 하셨던 분들이라면 충분히 써볼 만하다고 생각합니다. 사용 방법이 간단하고 AWS Glue 세팅보다 쉬워서 특히 좋다고 느꼈습니다. 다만 AWS Lake Formation 설정은 처음 만져보니 조금 난해했습니다. 그래도 버킷에서 데이터 관리가 필요하신 분이라면 한 번쯤 시도해보시는 것도 괜찮다고 봅니다.


참고로 S3 테이블 버킷 삭제는 CLI나 SDK로만 가능하다고 하니 이 부분도 참고해 주세요.

 
 
 

Comments


SmileShark Logo
스마일샤크는 
AWS 프리미어 파트너이며
AI MSP 세상을 만들어 가고 있습니다
AWS Premier Tier Services Partner
©Copyright
bottom of page