1. Amazon S3란?
Amazon S3는 Amazon Simple Storage Service의 약자로 언제 어디서나 데이터를 단순하게 처리할 수 있도록하는 웹 서비스 기반 인터페이스를 제공합니다. 웹에서 사용 가능한 오브젝트 저장소로 사용한 만큼만 비용을 지불하고 내구성과 확장성이 뛰어납니다.
2. S3 특징
- API를 통한 직접 사용이 가능
- 병렬 처리 지원
- 수명 주기, 객체 잠금, 복제, 배치 작업등 스토리지 관리를 위한 기능 지원
- Labmda, SQS, SNS 등 데이터를 변환하고 워크플로를 트리거해 다양한 활동 자동화 처리 가능
- 객체에 대한 강한 일관성 제공
- S3버킷과 객체는 기본적으로 비공개로 액세스하기 때문에 권한을 감사 및 관리하기 위한 기능 제공
3. S3 저장 방식
S3는 데이터를 버킷 내에 오브젝트 (Object)로 저장하는 객체 스토리지 서비스입니다. 모든 오브젝트를 버킷 내에 저장하고 S3에 데이터를 저장하기 전에 반드시 버킷이 생성되어 있어야 합니다.
- 버킷 (Bucket) : 오브젝트의 컨테이너 입니다.
- 오브젝트 (Object) : 텍스트 파일, 이미지 파일 및 비디오 파일 등 모든 종류의 파일이 가능합니다.
[버킷 (Bucket)]
버킷에는 오브젝트를 원하는 수만큼 저장할 수 있으며 모든 오브젝트는 버킷 내에 생성됩니다. 계정에 최대 100개의 버킷을 가질 수 있습니다.
버킷을 생성할 때는 이름과 리전이 중요합니다. 버킷의 이름은 고유한 값이기 때문에 조직 이름 또는 사용자 이름을 반영해 생성하는 것이 일반적입니다. 버킷 내에 저장된 오브젝트를 지정하기 위해서 버킷 이름은 URL에 포함되기 때문에 URL에 사용할 수 있도록 버킷 명명 규칙도 존재합니다.
- 소문자, 수수자, 점(.) 그리고 대쉬(-)를 포함 할 수 있습니다.
- 반드시 숫자 또는 문자로 시작해야 합니다.
- 최소 3 자에서 최대 255 문자의 길이로 지정이 가능합니다.
- IP 주소와 같은 형식으로 지정할 수 없습니다. (e.g., 265.255.5.4)
이름과 리전은 한 번 설정 시 변경이 불가한 값이니 신중하게 생성해야 합니다.
[오브젝트 (Object)]
오브젝트는 데이터와 메타데이터(키-값 쌍의 집합)로 구성됩니다. 버킷에 오브젝트를 추가할 때, 해당 오브젝트에 대한 권한 및 접근 설정등에 대한 정보를 메타데이터에 포함시킬 수 있습니다.
오브젝트는 키와 버전ID로 버킷 내에서 고유하게 식별됩니다. 키는 버킷 내 오브젝트의 고유 식별자로 버킷 내 모든 객체에는 하나의 키가 있으며 해당 키는 URL에 포함됩니다.
기본적으로 S3 버킷에 있는 모든 오브젝트는 URL을 통해 해당 오브젝트를 읽을 수 있습니다.
예시: https://DOC-EXAMPLE-BUCKET.s3.us-west-2.amazonaws.com/photos/puppy.jpg
- 웹 서비스 엔드포인트
- 버킷 이름 : DOC-EXAMPLE-BUCKET
- 키 이름 : /photos/puppy.jpg
S3 URL은 기본값이 소유자 전용(private)으로 URL을 외부사용자(public)도 접근할 수 있도록 권한 설정을 하거나 해당 오브젝트에 대하여 인증저보가 포함된 시그니처기반의 Signed URL을 생성해 외부 사용자가 오브젝트에 접근할 수 있습니다.
4. S3 종류
S3는 데이터에 대한 Life Cycle 정책을 통해 사용자들의 요구사항에 따라 3가지의 스토리지로 계층화 되어 있습니다.
- S3 Standard
- S3-IA
- S3 Glacier
[S3 Standard]
주로 사용하는 데이터 또는 임시 처리용 데이터를 보관합니다. (Hot Data)
가장 가격이 비싸지만 검색시 발생하는 비용이 없습니다.
가격 | 용량단위 | 결제단위 |
0.025$ | GB | 월간 |
사용 예시 : 데이터 생성 및 접근 발생시 사용합니다. (Big Data 분석용 데이터)
[S3-IA]
간헐적으로 사용되는 데이터를 보관합니다. (Warm Data)
가격 | 용량단위 | 결제단위 |
0.018$ | GB | 월간 |
IA에서 데이터를 찾고 싶다면 검색도 가능합니다. 하지만 S3 Standard와 다르게 가격이 발생합니다.
가격 | 용량단위 |
0.01$ | GB |
사용 예시 : S3 Standard에서 N일 이상 경과된 데이터를 IA로 Class를 변경합니다. ( 아카이브 또는 백업 / 재해 복구용 )
[S3 Glacier]
보존 데이터 또는 규정에 의한 장기보관 데이터를 보관합니다. (Cold Data)
가격이 가장 저렴하며 높은 보안성(SSL & AES-256)과 높은 내구성을 지니고 있습니다.
가격 | 용량단위 | 결제단위 |
0.005$ | GB | 월간 |
Glacier에서 데이터를 가져오기 위해선 시간이 걸립니다. Clod Data이기 때문에 데이터를 사용하기 위해선 Warm을 하는 과정에서 발생하는 시간입니다.
3가지의 검색 옵션을 제공합니다.
구분 | 시간 | 가격 | 용량단위 |
긴급(Expedited) | 1~5분 | 0.033$ | GB |
표준(Standard) | 3~5시간 | 0.011$ | GB |
대량(Bulk) | 5~12시간 | 0.00275$ | GB |
사용 예시 : S3 IA에서 N일 이상 경과도니 데이터를 Glacier로 Class를 변경합니다. ( 장기 보존용 아카이브 )
5. S3 관리 기능
- S3 Obejct Tagging
- (S3 객체에 대한 관리 및 접근 통제)
- S3 Analytics, Storage Class Analytics
- (스토리지 및 Object에 대한 사용 패턴을 분석하여 적합한 스토리지 클래스로 전환)
- S3 Inventory
- (규정 준수 및 규제요건 감시, 비지니스 워크플로우 및 빅데이터 업무를 단순화하고 가속화)
- S3 CloudWatch Metrics
- (S3를 사용하는 어플리케이션의 특성을 이해하고, 성능을 개선하도록 도움)