Skip to content

다음 단계


이전 예제에서는 몇 가지 기본 Amazon S3 작업을 수행하는 방법을 알아보았다.

다음 주제에서는 사용자가 직접 애플리케이션에서 구현할 수 있도록 Amazon S3을 보다 심도 있게 이해할 수 있는 학습 경로를 설명한다.


1. 일반적인 사용 사례 이해

Amazon S3을 사용하여 특정 사용 사례를 지원할 수 있다. 다음은 Amazon S3의 몇 가지 일반적인 사용 사례이다.

  • 백업 및 스토리지 - Amazon S3 스토리지 관리 기능을 사용하여 비용 관리, 규정 요구 사항 충족, 지연 시간 단축, 규정 준수 요구 사항에 맞게 여러 개의 개별 데이터 복제본 저장을 수행한다.

  • 애플리케이션 호스팅 - 안정성과 확장성이 뛰어나며 저렴한 비용으로 웹 애플리케이션을 배포, 설치, 관리할 수 있다. 예를 들어 정적 웹 사이트를 호스팅하도록 Amazon S3 버킷을 구성할 수 있다.

  • 미디어 호스팅 - 동영상, 사진 또는 음악 업로드 및 다운로드를 호스팅하는 가용성이 높은 인프라를 구축한다.

  • 소프트웨어 제공 - 고객이 다운로드할 수 있는 소프트웨어 애플리케이션을 호스팅한다.


2. 버킷 및 객체에 대한 액세스 제어

Amazon S3은 다양한 보안 기능 및 도구를 제공한다.

기본적으로 S3 버킷 및 객체는 프라이빗이다. 생성한 S3 리소스에만 액세스할 수 있다. 다음 기능을 사용하여 특정 사용 사례를 지원하는 세분화된 리소스 권한을 부여하거나 Amazon S3 리소스의 권한을 감사할 수 있다.

  • S3 퍼블릭 액세스 차단 - S3 버킷과 객체에 대한 퍼블릭 액세스를 차단한다. 기본적으로 퍼블릭 액세스 차단 설정은 계정 및 버킷 수준에서 켜져 있다.

  • AWS Identity and Access Management(IAM) - AWS 계정용 IAM 사용자를 생성하여 Amazon S3 리소스에 대한 액세스를 관리한다. 예를 들어 IAM을 Amazon S3와 함께 사용하여 사용자 또는 사용자 그룹이 AWS 계정에 속한 Amazon S3 버킷에 대해 보유한 액세스 유형을 제어할 수 있다.

  • 버킷 정책 - IAM 기반 정책 언어를 사용하여 S3 버킷과 그 안에 있는 객체에 대한 리소스 기반 권한을 구성한다.

  • 액세스 제어 목록(ACL) - 인증된 사용자에게 개별 버킷 및 객체에 대한 읽기 및 쓰기 권한을 부여한다. 일반적으로 ACL 대신 액세스 제어를 위해 S3 리소스 기반 정책(버킷 정책 및 액세스 포인트 정책) 또는 IAM 정책을 사용하는 것이 좋다. ACL은 리소스 기반 정책과 IAM보다 먼저 적용되는 액세스 제어 메커니즘이다.

  • S3 객체 소유권 - ACL을 사용 중지하고 버킷의 모든 객체에 대한 소유권을 가져와서 Amazon S3에 저장된 데이터에 대한 액세스 관리를 간소화한다. 버킷 소유자는 버킷의 모든 객체를 자동으로 소유하고 완전히 제어할 수 있으며 데이터에 대한 액세스 제어는 정책을 기반으로 한다.

  • Access Analyzer for S3 - S3 버킷 액세스 정책을 평가 및 모니터링하여 정책이 S3 리소스에 대한 의도된 액세스만 제공하는지 확인한다.


3. 스토리지 관리 및 모니터링

  • 스토리지 관리 - Amazon S3에서 버킷을 생성하고 객체를 업로드한 후에는 객체 스토리지를 관리할 수 있다. 예를 들어 재해 복구를 위해 S3 버전 관리 및 S3 복제를 사용하고, S3 수명 주기를 사용하여 스토리지 비용을 관리하며, S3 객체 잠금을 사용하여 규정 준수 요구 사항을 충족할 수 있다.

  • 스토리지 모니터링 - 모니터링은 Amazon S3와 AWS 솔루션의 안정성, 가용성 및 성능을 유지하는 데 중요한 부분이다. 스토리지 작업 및 비용을 모니터링할 수 있다. 또한 발생하는 다중 지점 실패를 보다 쉽게 디버깅할 수 있도록 AWS 솔루션의 모든 부분으로부터 모니터링 데이터를 수집하는 것이 좋다.

  • 분석 및 인사이트 - Amazon S3의 분석 및 인사이트를 사용하여 스토리지 사용량을 이해하고, 분석하며, 최적화할 수 있다. 예를 들어, Amazon S3 Storage Lens를 사용하여 스토리지를 이해하고, 분석하며, 최적화할 수 있다. S3 Storage Lens는 29개 이상의 사용량 및 활동 지표와 대화형 대시보드를 제공하여 전체 조직, 특정 계정, 리전, 버킷 또는 접두사에 대한 데이터를 집계한다. 스토리지 클래스 분석을 사용하여 스토리지 액세스 패턴을 분석함으로써 데이터를 보다 비용 효율적인 스토리지 클래스로 이전할 시기를 결정할 수 있다.


4. Amazon S3를 사용한 개발

Amazon S3은 REST 서비스이다. REST API 또는 프로그래밍 태스크를 간소화하기 위해 기본 Amazon S3 REST API를 래핑하는 AWS SDK 라이브러리를 사용하여 Amazon S3에 요청을 전송할 수 있다. AWS Command Line Interface(AWS CLI)를 사용하여 Amazon S3 API를 호출할 수도 있다.

Amazon S3 REST API는 Amazon S3에 대한 HTTP 인터페이스이다. REST API의 경우, 표준 HTTP 요청을 사용하여 버킷과 객체를 생성하고, 가져오며, 삭제한다. HTTP를 지원하는 임의의 도구 키트를 사용하여 REST API를 사용할 수 있다. 심지어 브라우저를 사용하여 객체를 가져올 수도 있다. 단, 객체를 익명으로 읽을 수 있어야 한다.

선택한 언어를 사용하여 애플리케이션을 구축할 수 있도록 다음 리소스를 제공한다.

AWS CLI

AWS CLI를 사용하여 Amazon S3의 기능에 액세스할 수 있다.

AWS CLI는 Amazon S3에 액세스하기 위해 상위 수준(s3) 명령과 API 수준(s3api 및 s3control) 명령의 두 가지 명령 계층을 제공한다. 상위 수준 S3 명령은 객체 및 버킷 생성, 조작 및 삭제와 같이 일반적인 작업 수행을 간소화한다. s3api 및 s3control 명령은 모든 Amazon S3 API 작업에 대한 직접 액세스를 노출하며, 이를 사용하여 상위 수준 명령만으로는 가능하지 않을 수 있는 고급 작업을 수행할 수 있다.

AWS SDK 및 Explorer

Amazon S3로 애플리케이션을 개발할 때 AWS SDK를 사용할 수 있다. AWS SDK에서는 기본 REST API를 래핑하여 프로그래밍 태스크를 단순화한다. 또한, AWS를 사용하여 커넥티드 모바일 애플리케이션과 웹 애플리케이션을 구축하는 데에 AWS Mobile SDK와 Amplify JavaScript 라이브러리를 사용할 수 있다.

AWS SDK 외에도, Visual Studio 및 Eclipse for Java IDE에서 AWS Explorer를 사용할 수 있다. 이 경우 SDK 및 Explorer가 AWS 도구 키트로 함께 번들된다.

샘플 코드 및 라이브러리

AWS 개발자 센터AWS 코드 샘플 카탈로그에는 Amazon S3용으로 특별히 작성된 샘플 코드와 라이브러리가 있다. 이 샘플 코드를 사용하여 Amazon S3 API를 구현하는 방법을 이해할 수 있다. 또한 Amazon Simple Storage Service API Reference를 검토하여 Amazon S3 API 작업에 대해 자세히 이해할 수 있다.


References