[AWS S3] Amazon s3 연결 URI 형식(s3://, s3a://, s3n://)에 다른 차이점은 무엇일까?
l Version : AWS Simple Storage Service(S3)
AWS에서 제공하는 스토리지 서비스에는 Amazon S3(Simple Storage Service)라고 불리는 오브젝트 스토리지가 있다. Amazon S3는 여러 사용 사례에 맞춰 다양한 스토리지 클래스를 제공한다. 예를 들어 자주 액세스 하기 위해 미션 크리티컬 프로덕션 데이터는 S3 Standard에 저장하고, 액세스 빈도가 낮은 데이터는 S3 Standard-IA 또는 S3 One Zone-IA에 저장하여 비용을 절감하고, S3 Glacier Flexible Retrieval 및 S3 Glacier Deep Archive에 가장 낮은 비용으로 데이터를 보관할 수 있다. 또한 액세스 패턴을 예측할 수 없거나 자주 변경되는 경우 S3 Intelligent-Tiering에 저장하면 액세스 패턴에 따라 자동으로 4계의 액세스 계층 간에 데이터를 자동으로 이동하여 스토리지 비용을 최적화 할 수 있다.
Amazon S3에 버킷을 생성하고 폴더에 접근할 때 고유한 URI를 사용하게 되는데, 일반적인 URI의 형식은 s3://bucket-name/folder-name/ 형식으로 생성된다. 그런데 가끔 S3에 연결할 때 URI 형식이 조금씩 다른 s3://, s3a://, s3n:// 경우가 있다. 각 URI에 대한 차이점이 무엇인지 살펴보자. 차이점에 대해서 알아보기 전에 S3는 File System 이 아닌 Object Storage라는 점을 다시 한번 인지하고, S3에 분산 저장하는 경우 Hadoop 클라이언트를 거쳐 저장하게 된다. Hadoop는 S3N, S3A, S3 이렇게 세가지 시스템이 클라이언트를 제공한다.
S3N (URI 형식: s3n://)
l S3에서 일반 파일을 읽고 쓰기 위한 기본 파일 시스템
l 안정적이며 널리 알려져 있지만 현재 업데이트가 중단된 상태
l 다른 도구로 작성된 S3의 파일에 액세스가능. 반대로 다른 도구는 Hadoop을 사용하여 작성된 파일에 액세스 가능
l S3에서 저장할 수 있는 단일 파일 크기에 대한 5GB 제한있음
S3A (URI 형식: s3a://)
l S3 Native인 s3n fs의 후속
l Amazon의 라이브러리를 사용하여 S3와 상호 작용
l S3a는 더 큰 파일(5GB 제한 없음), 고성능 작업 등을 지원 가능
l s3n://URL에서 액세스할 수 있는 모든 객체는 URL 스키마를 교체하는 것만으로 s3a에서도 액세스 가능
S3 (URI 형식: s3://)
l S3가 지원하는 블록 기반 파일 시스템
l 파일은 HDFS에 있는 것처럼 블록으로 저장
l 이 파일 시스템을 사용하려면 파일 시스템 전용 버킷이 필요
l 파일이 포함된 기존 버킷을 사용하거나 다른 파일을 동일한 버킷에 쓰지 않아야 함
l 이 파일 시스템에 의해 저장된 파일은 5GB보다 클 수 있지만 다른 S3 도구와 상호 운용할 수 없음
AWS EMR의 경우에는 별도로 EMRFS라는 파일 시스템이 존재한다. 그래서 EMR의 S3 파일 시스템과 Hadoop에서의 S3 파일 시스템은 서로 다르기 때문에 사용할 때 주의해야 한다. 따라서 ERM의 경우 S3로 사용하는 것을 권장하고 있다. 하지만 s3a의 경우 EMRFS와 호환되지 않기 때문에 오류가 발생할 수 있다.
자체 Hadoop을 사용하면서 데이터 저장소만 Amazon S3를 사용할 경우 S3A를 사용하면 자체 하둡에서 S3의 저장소를 연결하여 객체를 직접 읽고 쓸 수 있다. S3A의 탄생 배경에 대해 궁금하다면 아래 블로그를 참고할 수 있다.
l Community collaboration: The S3A story : https://aws.amazon.com/ko/blogs/opensource/community-collaboration-the-s3a-story/
[참고자료]
l What is Amazon S3 : https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html
l Work with storage and file systems : https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-plan-file-systems.html
l Community collaboration: The S3A story : https://aws.amazon.com/ko/blogs/opensource/community-collaboration-the-s3a-story/
l Enabling Amazon Simple Storage Service (Amazon S3) Access Points in Apache Hadoop S3A : https://aws.amazon.com/ko/blogs/opensource/enabling-amazon-simple-storage-service-s3-access-points-in-apache-hadoop-s3a/
2022-04-20 / Sungwook Kang / http://sungwookkang.com
AWS Simple Storage Service, S3, S3N, S3A, EMR, EMRFS
'AWS' 카테고리의 다른 글
[AWS RDS] Devops Guru for RDS 기능을 사용하여 데이터베이스의 이상 현상을 사전에 감지하기 (0) | 2022.04.25 |
---|---|
[AWS RDS] Performance Insight로 DB부하의 원인 찾기 (0) | 2022.04.24 |
[AWS RDS] AWS RDS for Oracle 교차 리전 자동 백업 – Part 2/2 (0) | 2022.04.18 |
[AWS RDS] AWS RDS for Oracle 교차 리전 자동 백업 – Part 1/2 (0) | 2022.04.13 |
[AWS CloudWatch] CloudWatch를 활용한 SQL Server RDS 데드락 모니터링 (0) | 2022.04.12 |