Amazon Simple Storage Service(S3) - AWS Mobile SDK

AWS Mobile SDK for Xamarin은 이제 AWS SDK for .NET에 포함됩니다. 이 안내서에서는 Xamarin용 모바일 SDK의 아카이브된 버전을 참조합니다.

Amazon Simple Storage Service(S3)

S3는 무엇입니까?

Amazon Simple Storage Service(Amazon S3)는 개발자에 안전하고 내구성과 확장성이 뛰어난 객체 스토리지를 제공합니다. Amazon S3는 간단한 웹 서비스 인터페이스를 통해 웹 어디서나 원하는 양의 데이터를 저장 및 검색할 수 있으므로 사용하기가 쉽습니다. Amazon S3에서는 사용한 스토리지에 대해서만 비용을 지불합니다. 최소 요금이나 설치 비용이 없습니다.

Amazon S3는 클라우드 애플리케이션, 콘텐츠 배포, 백업 및 아카이빙, 재해 복구, 빅 데이터 분석을 비롯한 다양한 사용 사례에 적합한 비용 효과적인 객체 스토리지를 제공합니다.

AWS S3 리전 가용성에 대한 자세한 내용은 AWS 서비스 리전 가용성을 참조하세요.

핵심 개념

버킷

Amazon S3에 저장한 모든 객체는 버킷에 존재합니다. 디렉토리로 파일 시스템 내 파일을 그룹화하듯 버킷으로 관련 객체를 그룹화할 수 있습니다. 버킷은 액세스 권한 및 버전 관리 상태 등의 속성을 지니며, 사용자는 버킷이 속할 리전을 원하는 대로 설정할 수 있습니다.

S3 버킷에 대한 자세한 내용은 S3 개발자 안내서의 버킷 작업을 참조하세요.

객체

객체는 Amazon S3에 저장되는 데이터입니다. 모든 객체는 특정 AWS 리전에서 생성되는 버킷 내에 상주합니다.

특정 리전에 저장된 객체는 사용자가 명시적으로 객체를 다른 리전으로 전송하지 않는 한 해당 리전을 벗어나지 않습니다. 예를 들어, EU(아일랜드) 리전에 저장된 객체는 EU 밖으로 이동하지 않습니다. Amazon S3 리전에 저장된 객체는 물리적으로 해당 리전에 유지됩니다. Amazon S3에서는 복사본을 유지하거나 객체를 다른 지역으로 이동하지 않습니다. 그러나 필요한 권한이 있는 한 어디서든 객체에 액세스할 수 있습니다.

객체는 이미지, 백업 데이터, 동영상 등 임의의 파일 형식일 수 있습니다. 객체는 최대 5TB가 될 수 있습니다. 또한 버킷에 저장할 수 있는 객체 수에는 제한이 없습니다.

객체를 Amazon S3로 업로드하려면 먼저 버킷에 대한 쓰기 권한이 있어야 합니다. 버킷 권한을 설정하는 자세한 방법은 S3 개발자 안내서의 버킷 권한 편집을 참조하세요.

S3 객체에 대한 자세한 내용은 S3 개발자 안내서의 객체 작업을 참조하세요.

객체 메타데이터

Amazon S3의 각 객체에는 해당 메타데이터를 나타내는 키-값 페어 세트가 있습니다. 다음과 같은 두 가지 유형의 메타데이터가 있습니다.

  • 시스템 메타데이터 – 때때로 Amazon S3에 의해 처리됩니다. 예: 콘텐츠 유형 및 콘텐츠 길이.

  • 사용자 메타데이터 - 절대로 Amazon S3에 의해 처리되지 않습니다. 사용자 메타데이터는 객체와 함께 저장되고 반환됩니다. 사용자 메타데이터의 최대 크기는 2KB이며, 키와 해당 값 모두 US-ASCII 표준에 부합해야 합니다.

S3 객체 메타데이터에 대한 자세한 내용은 객체 메타데이터 편집을 참조하세요.

프로젝트 설정

필수 조건

애플리케이션에서 Amazon S3를 사용하려면 프로젝트에 SDK를 추가해야 합니다. 이렇게 하려면 .NET 및 Xamarin용 AWS Mobile SDK 설정의 지침을 따르세요.

S3 버킷 생성

Amazon S3는 애플리케이션의 리소스를 Amazon S3 버킷(특정 리전에 위치하는 클라우드 스토리지 컨테이너)에 저장합니다. 각 Amazon S3 버킷은 전역적으로 고유한 이름을 가져야 합니다. Amazon S3 콘솔을 사용하여 버킷을 생성할 수 있습니다.

  1. Amazon S3 콘솔에 로그인하고 버킷 만들기를 클릭합니다.

  2. 버킷 이름을 입력하고 리전을 선택한 다음 생성을 클릭합니다.

S3에 대한 권한 설정

기본 IAM 역할 정책은 애플리케이션에 Amazon Mobile Analytics 및 Amazon Cognito Sync에 대한 액세스 권한을 부여합니다. Cognito 자격 증명 풀이 Amazon S3에 액세스할 수 있으려면 자격 증명 풀의 역할을 수정해야 합니다.

  1. Identity and Access Management 콘솔로 이동하여 왼쪽 창에서 역할을 클릭합니다.

  2. 검색 상자에 자격 증명 풀 이름을 입력합니다. 인증된 사용자와 인증되지 않은 사용자에 대해 하나씩 2개의 역할이 나열됩니다.

  3. 인증되지 않은 사용자의 역할을 클릭합니다(자격 증명 풀 이름에 unauth가 추가됨).

  4. 역할 정책 생성을 클릭하고 정책 생성기를 선택한 다음 선택을 클릭합니다.

  5. Edit Permissions(권한 편집) 페이지에서 다음 이미지에 표시된 설정을 입력합니다. Amazon 리소스 이름(ARN)은 사용자의 것으로 바꿔야 합니다. S3 버킷의 ARN은 arn:aws:s3:::examplebucket/*과 비슷하며, 버킷이 위치하는 리전과 버킷의 이름으로 구성됩니다. 아래 표시된 설정은 자격 증명 풀에 지정된 버킷의 모든 작업에 대한 전체 액세스를 부여합니다.

    Edit Permissions interface for AWS policy creation, showing options for Amazon S3 access control.
  1. 설명문 추가 버튼을 클릭한 다음 다음 단계를 클릭합니다.

  2. 마법사가 앞서 생성한 구성을 표시합니다. 정책 적용을 클릭합니다.

S3 액세스 권한 부여에 대한 자세한 내용은 Amazon S3 버킷에 대한 액세스 권한 부여를 참조하세요.

(선택 사항) S3 요청의 서명 버전을 구성합니다.

Amazon S3와의 모든 상호 작용은 인증을 거치거나 익명으로 할 수 있습니다. AWS는 서명 버전 4 또는 서명 버전 2 알고리즘을 사용해 서비스 호출을 인증합니다.

2014년 1월 이후 생성된 모든 새 AWS 리전은 서명 버전 4만 지원합니다. 하지만 그 이전의 리전은 계속해서 서명 버전 4 및 서명 버전 2 요청을 지원합니다.

버킷이 이 페이지에 나열된 서명 버전 2 요청을 지원하지 않는 리전에 위치하는 경우 다음과 같이 AWSConfigsS3.UseSignatureVersion4 속성을 "true"로 설정해야 합니다.

AWSConfigsS3.UseSignatureVersion4 = true;

AWS 서명 버전에 대한 자세한 내용은 요청 인증(AWS 서명 버전 4)을 참조하세요.

애플리케이션에 S3 통합

Xamarin 애플리케이션에서 S3와 상호 작용하는 방법은 두 가지가 있습니다. 다음 주제에서 두 방법을 자세히 살펴봅니다.

주제