Amazon S3 on Outposts란 무엇인가요?
AWS Outposts는 진정으로 일관된 하이브리드 환경을 위해 거의 모든 데이터 센터, 콜로케이션 공간 또는 온프레미스 시설에 동일한 AWS 인프라, AWS 서비스, API 및 도구를 제공하는 완전관리형 서비스입니다. AWS Outposts는 온프레미스 시스템, 로컬 데이터 처리, 데이터 상주 및 로컬 시스템과 상호 의존하는 애플리케이션의 마이그레이션에 대해 짧은 지연 시간으로 액세스해야 하는 워크로드에 적합합니다. 자세한 내용은 AWS Outposts 사용 설명서의 AWS Outposts이란 무엇입니까? 섹션을 참조하십시오.
Amazon S3 on Outposts를 사용하면 Outposts에 S3 버킷을 생성하고 온프레미스에서 객체를 손쉽게 저장 및 검색할 수 있습니다. S3 on Outposts는 OUTPOSTS
라는 새로운 스토리지 클래스를 제공합니다. 이 클래스는 Amazon S3 API를 사용하며 Outposts의 여러 디바이스와 서버에 데이터를 이중화된 방식으로 안정적으로 저장하도록 설계되었습니다. Virtual Private Cloud(VPC)를 통한 액세스 포인트 및 엔드포인트 연결을 사용하여 Outposts 버킷과 통신합니다.
액세스 정책, 암호화, 태그 지정을 포함하여 Amazon S3에서와 같이 Outposts 버킷에서 동일한 API 및 기능을 사용할 수 있습니다. AWS Management Console, AWS Command Line Interface(AWS CLI), AWS SDK 또는 REST API를 통해 S3 on Outposts를 사용할 수 있습니다.
S3 on Outposts 작동 방식
S3 on Outposts는 데이터를 Outpost의 버킷 내 객체로 저장하는 객체 스토리지 서비스입니다. 객체는 데이터 파일 및 해당 파일을 설명하는 모든 메타데이터입니다. 버킷은 객체에 대한 컨테이너입니다.
S3 on Outposts에 데이터를 저장하려면 먼저 버킷을 생성합니다. 버킷을 생성할 때 버킷 이름과 버킷을 저장할 Outpost를 지정합니다. S3 on Outposts 버킷에 액세스하여 객체 작업을 수행하려면 다음으로 액세스 포인트를 생성하고 구성합니다. 액세스 포인트로 요청을 라우팅하려면 엔드포인트도 생성해야 합니다.
액세스 포인트는 모든 AWS 서비스 또는 S3에 데이터를 저장하는 고객 애플리케이션에 대한 데이터 액세스를 간소화합니다. 액세스 포인트는 GetObject
및 PutObject
같은 객체 작업을 수행하는 데 사용할 수 있는 버킷에 연결된 네트워크 엔드포인트입니다. 각 액세스 포인트에는 고유한 권한 및 네트워크 제어가 있습니다.
AWS Management Console, AWS CLI, AWS SDK 또는 REST API를 사용하여 S3 on Outposts 버킷, 액세스 포인트 및 엔드포인트를 생성하고 관리할 수 있습니다. S3 on Outposts 버킷의 객체를 업로드하고 관리하려면 AWS CLI, AWS SDK 또는 REST API를 사용하면 됩니다.
리전
AWS Outposts 프로비저닝 중 사용자 또는 AWS가 버킷 작업 및 원격 측정을 위해 선택한 AWS 리전 또는 Outposts 홈 리전으로 Outpost를 다시 연결하는 서비스 링크 연결을 생성합니다. Outpost는 상위 AWS 리전에 대한 연결에 의존합니다. Outposts 랙은 연결이 끊긴 작업 또는 연결 없음으로 제한된 환경을 위해 설계되지 않았습니다. 자세한 내용은 AWS Outposts 사용 설명서의 AWS 리전으로의 Outpost 연결을 참조하세요.
버킷
버킷은 S3 on Outposts에 저장된 객체에 대한 컨테이너입니다. 버킷에 저장할 수 있는 객체 수에는 제한이 없습니다. 또한 Outpost마다 계정당 버킷을 최대 100개까지 포함할 수 있습니다.
버킷을 생성할 때 버킷 이름을 입력하고 버킷이 속할 Outpost를 선택합니다. 버킷을 생성한 후에는 버킷 이름을 변경하거나 버킷을 다른 Outpost로 이전할 수 없습니다. 버킷 이름은 Amazon S3 버킷 이름 지정 규칙을 따라야 합니다. S3 on Outposts에서 버킷 이름은 Outpost 및 AWS 계정마다 고유합니다. S3 on Outposts 버킷을 식별하려면 outpost-id
, account-id
및 버킷 이름이 필요합니다.
다음의 예시는 S3 on Outposts 버킷에 대한 Amazon 리소스 이름(ARN) 형식을 보여줍니다. ARN은 Outpost의 홈 리전과 Outpost 계정, Outpost ID 및 버킷 이름으로 구성됩니다.
arn:aws:s3-outposts:
region
:account-id
:outpost/outpost-id
/bucket/bucket-name
모든 객체는 어떤 버킷에 포함됩니다. Outposts 버킷의 객체에 액세스하려면 액세스 포인트를 사용해야 합니다. 객체 작업에 버킷을 지정할 때 액세스 포인트 이름이 포함된 액세스 포인트 ARN 또는 액세스 포인트 별칭을 사용합니다. 액세스 포인트 별칭에 대한 자세한 내용은 S3 on Outposts 버킷 액세스 포인트에 버킷 스타일 별칭 사용 섹션을 참조하세요.
다음 예제는 outpost-id
, account-id
및 액세스 포인트 이름을 포함하는 Outposts의 S3에 대한 액세스 포인트 ARN 형식을 보여줍니다.
arn:aws:s3-outposts:
region
:account-id
:outpost/outpost-id
/accesspoint/accesspoint-name
버킷에 대한 자세한 내용은 S3 on Outposts 버킷 작업을 참조하십시오.
Objects
객체는 S3 on Outposts에 저장되는 기본 엔터티입니다. 객체는 객체 데이터와 메타데이터로 구성됩니다. 메타데이터는 객체를 설명하는 이름-값 페어의 집합입니다. 여기에는 마지막으로 수정한 날짜와 같은 몇 가지 기본 메타데이터 및 Content-Type
같은 표준 HTTP 메타데이터가 포함됩니다. 객체를 저장할 때 사용자 지정 메타데이터를 지정할 수도 있습니다. 객체는 키 (또는 이름)을 통해 버킷 내에서 고유하게 식별됩니다.
Amazon S3 on Outposts를 사용할 경우 객체 데이터는 항상 Outpost에 저장됩니다. AWS가 Outpost 랙을 설치하는 경우 데이터 상주 요구 사항을 충족하기 위해 데이터가 Outpost에 로컬로 유지됩니다. 객체는 Outpost에서 벗어나지 않으며 AWS 리전에 있지 않습니다. AWS Management Console이 리전 내에 호스팅되므로 콘솔을 사용하여 Outpost의 객체를 업로드하거나 관리할 수 없습니다. 그러나 REST API, AWS Command Line Interface(AWS CLI), AWS SDK를 사용하여 액세스 포인트를 통해 객체를 업로드하고 관리할 수 있습니다.
키
객체 키(또는 키 이름)는 버킷 내 객체에 대한 고유한 식별자입니다. 버킷 내 모든 객체는 정확히 하나의 키를 갖습니다. 버킷과 객체 키의 조합은 각 객체를 고유하게 식별합니다.
다음 예제는 S3 on Outposts 객체에 대한 ARN 형식을 보여줍니다. 여기에는 Outpost의 홈 리전에 대한 AWS 리전 코드, AWS 계정 ID, Outpost ID, 버킷 이름 및 객체 키가 포함됩니다.
arn:aws:s3-outposts:
us-west-2
:123456789012
:outpost/op-01ac5d28a6a232904
/bucket/
amzn-s3-demo-bucket1
/object/myobject
객체 키에 대한 자세한 내용은 S3 on Outposts 객체 작업 섹션을 참조하십시오.
S3 버전 관리
Outposts 버킷에 S3 버전 관리를 사용하면 동일 버킷 내에 여러 개의 객체 변형을 보유할 수 있습니다. S3 버전 관리를 사용하여 버킷에 저장된 모든 버전의 모든 객체를 보존, 검색 및 복원할 수 있습니다. S3 버전 관리는 의도치 않은 사용자 작업 및 애플리케이션 장애로부터 복구하는 데 도움이 됩니다.
자세한 내용은 S3 on Outposts 버킷의 S3 버전 관리에 대한 관리 단원을 참조하십시오.
버전 ID
버킷에 S3 버전 관리를 활성화하면 S3 on Outposts에서 버킷에 추가되는 각 객체에 고유한 버전 ID를 생성합니다. 버전 관리를 사용 설정할 때 버킷에 이미 존재하는 객체에는 null
의 버전 ID가 있습니다. 이러한(또는 다른) 객체를 PutObject와 같은 기타 작업으로 수정하는 경우 새 객체가 고유한 버전 ID를 가집니다.
자세한 내용은 S3 on Outposts 버킷의 S3 버전 관리에 대한 관리 단원을 참조하십시오.
스토리지 클래스 및 암호화
S3 on Outposts는 새로운 스토리지 클래스인 S3 Outposts(OUTPOSTS
)를 제공합니다. S3 Outposts 스토리지 클래스는 AWS Outposts의 버킷에 저장된 객체에만 사용할 수 있습니다. 다른 S3 스토리지 클래스를 S3 on Outposts에 사용하려고 하면 S3 on Outposts에서 InvalidStorageClass
오류를 반환합니다.
기본적으로 S3 Outposts(OUTPOSTS
) 스토리지 클래스에 저장된 객체는 Amazon S3 관리형 암호화 키를 통한 서버 측 암호화(SSE-S3)를 사용하여 암호화됩니다. 자세한 내용은 S3 on Outposts의 데이터 암호화 단원을 참조하십시오.
버킷 정책
버킷 정책은 버킷과 해당 버킷의 객체에 액세스 권한을 부여할 수 있는 리소스 기반 AWS Identity and Access Management(IAM) 정책입니다. 버킷 소유자만 정책을 버킷에 연결할 수 있습니다. 버킷에 연결된 권한은 버킷 소유자가 소유한 모든 버킷의 객체에 적용됩니다. 버킷 정책은 크기가 20KB로 제한됩니다.
버킷 정책에는 AWS에서 표준인 JSON 기반 IAM 정책 언어가 사용됩니다. 버킷 정책을 사용하여 버킷의 객체에 대한 권한을 추가하거나 거부할 수 있습니다. 버킷 정책은 정책의 요소를 기반으로 요청을 허용 또는 거부합니다. 이러한 요소에는 요청자, S3 on Outposts 작업, 리소스 및 요청의 측면 또는 조건(예: 요청을 수행하는 데 사용된 IP 주소)이 포함될 수 있습니다. 예를 들어 버킷 소유자가 업로드된 객체를 완전히 제어할 수 있도록 하면서 S3 on Outposts 버킷에 객체를 업로드할 수 있는 교차 계정 권한을 부여하는 버킷 정책을 생성할 수 있습니다.
버킷 정책에서는 ARN 및 기타 값에 와일드카드 문자(*
)를 사용하여 객체의 하위 집합에 권한을 부여할 수 있습니다. 예를 들어, 공통 접두사로 시작하거나 .html
과 같은 지정된 확장자로 끝나는 객체 그룹에 대한 액세스를 제어할 수 있습니다.
S3 on Outposts 액세스 포인트
S3 on Outposts 액세스 포인트는 해당 엔드포인트를 사용하여 데이터에 액세스하는 방법을 설명하는 전용 액세스 정책이 포함된 명명된 네트워크 엔드포인트입니다. 액세스 포인트는 S3 on Outposts의 공유 데이터 세트에 대한 대규모 데이터 액세스 관리를 간소화합니다. 액세스 포인트는 GetObject
및 PutObject
같은 S3 객체 작업을 수행하는 데 사용할 수 있는 버킷에 연결됩니다.
객체 작업에 버킷을 지정할 때 액세스 포인트 이름이 포함된 액세스 포인트 ARN 또는 액세스 포인트 별칭을 사용합니다. 액세스 포인트 별칭에 대한 자세한 내용은 S3 on Outposts 버킷 액세스 포인트에 버킷 스타일 별칭 사용 섹션을 참조하세요.
액세스 포인트에는 해당 액세스 포인트를 통해 이루어진 모든 요청에 대해 S3 on Outposts가 적용하는 고유한 권한 및 네트워크 제어가 있습니다. 각 액세스 포인트는 기본 버킷에 연결된 버킷 정책과 함께 작동하는 사용자 지정 액세스 포인트 정책을 적용합니다.
자세한 내용은 S3 on Outposts 버킷과 객체에 액세스 단원을 참조하십시오.
S3 on Outposts 기능
액세스 관리
S3 on Outposts는 버킷 및 객체에 대한 액세스 감사 및 관리 기능을 제공합니다. 기본적으로 S3 on Outposts 버킷 및 객체는 프라이빗입니다. 생성한 S3 on Outposts 리소스에만 액세스할 수 있습니다.
특정 사용 사례를 지원하는 세분화된 리소스 권한을 부여하거나 S3 on Outposts 리소스의 권한을 감사하기 위해 다음 기능을 사용할 수 있습니다.
-
S3 퍼블릭 액세스 차단 - 버킷과 객체에 대한 퍼블릭 액세스를 차단합니다. Outposts에 있는 버킷의 경우 퍼블릭 액세스 차단 기능은 기본적으로 항상 사용으로 설정되어 있습니다.
-
AWS Identity and Access Management(IAM) – IAM은 S3 on Outposts resources 리소스를 포함하여 AWS 리소스에 대한 액세스를 안전하게 제어하는 데 도움이 되는 웹 서비스입니다. IAM을 사용하면 사용자가 액세스할 수 있는 AWS 리소스를 제어하는 권한을 중앙에서 관리할 수 있습니다. IAM을 사용하여 리소스를 사용하도록 인증(로그인) 및 권한 부여(권한 있음)된 대상을 제어합니다.
-
S3 on Outposts 액세스 포인트 - S3 on Outposts의 공유 데이터 세트에 대한 데이터 액세스를 관리합니다. 액세스 포인트는 전용 액세스 정책이 포함된 네트워크 엔드포인트입니다. 액세스 포인트는
GetObject
및PutObject
같은 객체 작업을 수행하는 데 사용할 수 있는 버킷에 연결됩니다. -
버킷 정책 - IAM 기반 정책 언어를 사용하여 S3 버킷과 그 안에 있는 객체에 대한 리소스 기반 권한을 구성합니다.
-
AWS Resource Access Manager(AWS RAM) - AWS 계정, 조직 내 또는 AWS Organizations의 조직 단위(OU) 간에 S3 on Outposts 용량을 안전하게 공유합니다.
스토리지 로깅 및 모니터링
S3 on Outposts는 S3 on Outposts 리소스가 사용되는 방식을 모니터링하고 제어하는 데 사용할 수 있는 로깅 및 모니터링 도구를 제공합니다. 자세한 내용은 모니터링 도구를 참조하세요.
-
S3 on Outposts에 대한 Amazon CloudWatch 지표 – 리소스의 운영 상태를 추적하고 용량 가용성을 파악합니다.
-
S3 on Outposts에 대한 Amazon CloudWatch Events 이벤트 – Amazon Simple Queue Service(Amazon SQS), Amazon Simple Notification Service(Amazon SNS) 및 AWS Lambda를 비롯하여 지원되는 모든 CloudWatch Events 대상을 통해 알림을 수신하도록 하는 S3 on Outposts API 이벤트에 대한 규칙을 생성합니다.
-
S3 on Outposts에 대한 AWS CloudTrail 로그 – S3 on Outposts의 사용자, 역할 또는 AWS 서비스가 수행한 조치를 기록합니다. CloudTrail 로그는 S3 버킷 수준 및 객체 수준 작업에 대한 자세한 API 추적을 제공합니다.
강력한 일관성
S3 on Outposts는 모든 AWS 리전의 S3 on Outposts 버킷에 있는 객체의 PUT 및 DELETE 요청에 대해 강력한 쓰기 후 읽기(read-after-write) 일관성을 제공합니다. 이는 새 객체에 대한 쓰기, 기존 객체를 덮어쓰는 PUT 요청 및 DELETE 요청 모두에 적용됩니다. 또한 S3 on Outposts 객체 태그 및 객체 메타데이터(예: HEAD 객체)는 강력한 일관성을 갖습니다. 자세한 내용은 Amazon S3 사용 설명서의 Amazon S3 데이터 일관성 모델을 참조하세요.
관련 서비스
데이터를 S3 on Outposts로 로드한 후에는 해당 데이터를 다른 AWS 서비스에 사용할 수 있습니다. 가장 자주 사용하게 될 서비스는 다음과 같습니다.
-
Amazon Elastic Compute Cloud(Amazon EC2) – AWS 클라우드에서 안전하고 확장 가능한 컴퓨팅 용량을 제공합니다. Amazon EC2를 사용하면 하드웨어에 선투자할 필요성이 감소되어 더 빠르게 애플리케이션을 개발하고 배포할 수 있습니다. Amazon EC2를 사용하여 원하는 수의 가상 서버를 구축하고 보안 및 네트워킹을 구성하며 스토리지를 관리할 수 있습니다.
-
Amazon Elastic Block Store(Amazon EBS) on Outposts – Amazon EBS local snapshots on Outposts를 사용하여 Outpost의 볼륨 스냅샷을 S3 on Outposts에 로컬로 저장합니다.
-
Amazon Relational Database Service(Amazon RDS) on Outposts – Amazon RDS 로컬 백업을 사용하여 Amazon RDS 백업을 Outpost에 로컬로 저장합니다.
-
AWS DataSync – Outposts와 AWS 리전 간 데이터 전송을 자동화하고, 전송할 대상, 전송 시기 및 사용할 네트워크 대역폭의 양을 선택할 수 있습니다. S3 on Outposts는 와(과) 통합됩니다AWS DataSync 대량의 로컬 처리가 필요한 온프레미스 애플리케이션의 경우, S3 on Outposts는 온프레미스 객체 스토리지를 제공하여 네트워크 변화로 인한 데이터 전송 및 버퍼를 최소화하고 Outposts와 AWS 리전 간에 데이터를 쉽게 전송할 수 있는 기능을 제공합니다.
S3 on Outposts 액세스
다음 방법 중 하나를 사용하여 S3 on Outposts에서 작업할 수 있습니다.
AWS Management Console
이 콘솔은 S3 on Outposts 및 AWS 리소스를 관리하기 위한 웹 기반 사용자 인터페이스입니다. AWS 계정에 가입한 사용자는 AWS Management Console에 로그인한 후 AWS Management Console 홈페이지에서 S3를 선택하여 S3 on Outposts에 액세스할 수 있습니다. 그런 다음 왼쪽 탐색 창에서 Outposts 버킷(Outposts buckets)을 선택합니다.
AWS Command Line Interface
AWS 명령줄 도구를 통해 시스템 명령줄에서 명령을 실행하거나 스크립트를 구축하여 AWS(S3 등) 작업을 수행할 수 있습니다.
이AWS Command Line Interface(AWS CLI)
AWS SDK
AWS에서는 다양한 프로그래밍 언어 및 플랫폼(Java, Python, Ruby, .NET, iOS, Android 등)을 위한 라이브러리와 샘플 코드로 구성된 소프트웨어 개발 키트(SDK)를 제공합니다. AWS SDK를 사용하면 편리하게 S3 on Outposts 및 AWS에 프로그래밍 방식으로 액세스할 수 있습니다. S3 on Outposts가 Amazon S3와 동일한 SDK를 사용하므로 S3 on Outposts는 동일한 S3 API, 자동화 및 도구를 사용하는 일관된 환경을 제공합니다.
S3 on Outposts는 REST 서비스입니다. 기본 REST API를 래핑하고 프로그래밍 태스크를 간소화하는 AWS SDK 라이브러리를 사용하여 S3 on Outposts에 요청을 전송할 수 있습니다. 예를 들어 SDK는 서명 계산, 암호화 방식으로 요청 서명, 오류 관리 및 자동으로 요청 재시도와 같은 작업을 처리합니다. 다운로드 및 설치 방법을 비롯하여 AWS SDK에 대한 자세한 내용은 AWS에서의 구축을 위한 도구
S3 on Outposts 요금 지불
Amazon EC2 인스턴스 유형, Amazon EBS 범용 SSD(Solid State Drive) 볼륨(gp2
) 및 S3 on Outposts의 조합을 제공하는 다양한 AWS Outposts 랙 구성을 구매할 수 있습니다. 요금에는 제공, 설치, 인프라 서비스 유지 보수, 소프트웨어 매치 및 업그레이드가 포함됩니다.
자세한 내용은 AWS Outposts 랙 요금
다음 단계
S3 on Outposts 작업에 대한 자세한 내용은 다음 주제를 참조하세요.