AWS/SAA-C03

[SAA-C03] AWS S3 기본 정리 & 기출 문제 풀이

얼복무 2024. 11. 8. 19:00

S3(Simple Storage Service)이란

AWS에서 제공하는 객체 저장 서비스로, 데이터 저장, 백업, 아카이빙, 그리고 웹 호스팅에 널리 사용됨. 주로 정적 서버로 많이 사용되는 편.

 

객체 기반 스토리지 서비스

객체는 데이터를 저장하는 기본 단위로, 데이터를 파일 형식으로 저장. 각 객체는 데이터, 메타데이터, 고유한 식별자인 객체 키를 포함.

 

  • 버킷(Bucket): S3에서 데이터를 저장하는 '폴더'와 같음. 각 버킷은 전 세계적으로 고유한 이름을 가짐.
  • 객체(Object): 버킷에 저장된 데이터 파일입니다. 객체는 데이터와 메타데이터로 구성됩니다.
  • 객체 키(Object Key): 버킷 내에서 객체를 구분하는 고유 식별자입니다.

 

 

S3의 주요 기능

  • 버전 관리 (Versioning): 버전 관리 기능을 활성화하면 객체의 모든 변경 사항을 추적하고 이전 버전으로 되돌릴 수 있음.
  • 수명 주기 정책 (Lifecycle Policy): 데이터를 일정 기간 후에 자동으로 다른 스토리지 클래스로 이동하거나 삭제하는 정책을 설정 가능.
  • 정책 및 권한 관리: S3 버킷 및 객체에 대한 액세스를 제어할 수 있음.
    • IAM: AWS Identity and Access Management를 사용하여 사용자의 권한을 세밀하게 제어
    • ACL (Access Control List): S3 객체에 대한 액세스 권한을 설정.
    • 버킷 정책 (Bucket Policy): 버킷에 대해 JSON 형식으로 액세스 권한을 정의.
    • 스토리지 클래스: 오브젝트를 저장하는 방법. 접근 빈도, 비용, 내구성 등에 따라 다름.

 

 

S3 스토리지 클래스

데이터를 저장할 때 해당 데이터의 접근 빈도, 저장 기간, 데이터의 중요성 등에 따라 저장 옵션을 선택 가능.

  • S3 Standard: 자주 접근. 내구성 높음. 가용성 및 성능을 갖춘 표준 스토리지 클래스.
  • S3 Standard-IA (Infrequent Access): Standard와 비슷하지만 저렴한 저장 비용. 더 비싼 조회 비용. 때문에 자주 접근하지 않는 데이터에 적합.
  • S3 Intelligent-Tiering: 액세스 패턴을 예측할 수 없을 때. 액세스 티어 간 자동 이동.
  • S3 One Zone-IA: 자주 접근하지 않음. 단일 AZ에 저장하여 저렴한 비용. 복원력X
  • S3 Glacier Instant Retrieval: 장기 보관. 아카이브 스토리지 중 검색이 가장 빠름.
  • S3 Glacier Flexible Retrieval: 내구성 좋음. 저렴한 비용으로 원하는 양의 데이터를 안정적으로 보관.
  • S3 Glacier Deep Archive: 가장 저렴. 장기 보관. 접근 빈도 매우 낮음.

 

S3의 내구성 및 가용성

  • S3는 99.999999999% (11 9's) 내구성을 제공, 여러 AZ(AZ, Availability Zones)에서 데이터를 복제하여 데이터의 안전성을 보장.
  • 가용성: 사용자가 직접 가용성 요구사항을 충족시키는 방법(예: Cross-Region Replication)을 설정 가능.

 

S3 보안

  • 암호화: 암호화 KEY를 이용하는 암호화/AWS의 암호화된 API 엔드포인트를 이용한 암호화
    • 서버측 암호화(SSE): S3 내에서 데이터가 저장될 때 객체를 암호화, 인출을 요청할 때 복호화
      • SSE-S3: AWS에서 관리하는 키로 암호화.
      • SSE-KMS: AWS Key Management Service(KMS)를 사용하여 키를 관리. S3과 비교해서 사용자 단위의 제어가 가능. (사용자 별 접근 여부를 설정할 수 있음) - 요청 당 과금되는 형태
      • SSE-C: 사용자가 직접 정의한 키로 암호화. HTTPS 프로토콜 사용. 파일을 받으려면 동일한 암호화 키가 필요함. (비밀번호 같은 개념)
    • 클라이언트측 암호화(CSE): 로컬에서 데이터를 암호화 후 업로드. 복호화 할 때도 클라이언트에서 해야 함. Amazon S3 Encryption Client라는 라이브러리를 사용한다.
  • 액세스 제어
    • Bucket Policy: JSON 기반의 정책을 통해 액세스를 제어.
    • IAM Policies: 특정 사용자나 역할에 대해 액세스 권한을 정의.
    • ACL: 객체 및 버킷에 대한 권한 설정.
  • 객체 잠금 (Object Lock)
    • 규정 준수 모드
      보호된 객체 버전은 루트 사용자를 포함하여 어떤 사용자도 덮어쓰거나 삭제할 수 없다. 보존 기간을 수정할 수 없으며, 객체를 사용하는 유일한 방법은 연결된 AWS 계정을 삭제하는 것 뿐이다.
    • 거버넌스 모드
      특별한 권한이 없다면 사용자는 덮어쓰거나 삭제, 잠금 설정을 변경할 수 없다. 필요에 따라 일부에게 권한을 부여할 수 있다. 

 

S3 이벤트

S3는 이벤트 알림 기능을 지원하여 객체가 생성되거나 수정될 때 AWS Lambda 함수, SNS, SQS로 알림을 보낼 수 있음.

 

S3 Transfer Acceleration

전 세계적으로 빠른 데이터 전송을 위해 S3 Transfer Acceleration을 사용.

이 기능은 Amazon CloudFront의 네트워크를 활용하여 데이터를 빠르게 업로드할 수 있도록 지원합니다.

 

 

S3 관련 예시

Q .고객은 자주 접근하지 않는 데이터를 저장하려고 합니다. 비용을 절감하기 위해 적합한 S3 스토리지 클래스를 선택하려면 어떤 옵션을 사용해야 합니까?

더보기

A. S3 Standard-IA 또는 S3 One Zone-IA

자주 액세스하지 않는 데이터에 대해 Standard-IA(Infrequent Access)를 사용하거나, 데이터의 내구성 요구 사항이 낮은 경우에는 One Zone-IA를 선택할 수 있습니다. 이 문제는 스토리지 클래스를 어떻게 활용할지 묻는 문제입니다.

 


Q. 한 사용자가 특정 S3 버킷에 대한 쓰기 액세스 권한을 가지고 있지만, 읽기 액세스 권한은 없습니다. S3 버킷에 대한 읽기 권한을 부여하기 위해 어떻게 설정해야 합니까?

더보기

A. 버킷 정책 (Bucket Policy) 또는 IAM 정책 (IAM Policy)

 

버킷 정책이나 IAM 정책을 사용하여 특정 사용자나 그룹에 대한 읽기 액세스 권한을 설정할 수 있습니다. 문제는 권한 관리와 관련이 있으며, 이를 통해 AWS의 보안 관리 방법을 이해하고 있는지를 확인할 수 있습니다.

 


Q. 기업은 중요한 데이터를 저장하고 있으며, 객체가 변경될 때마다 이전 버전을 보존해야 합니다. 객체의 버전 관리를 활성화하려면 어떤 설정을 해야 합니까?

더보기

A. 버전 관리 활성화 (Enable Versioning)

 

버전 관리는 객체가 변경될 때마다 이전 버전이 보존되도록 설정할 수 있는 기능입니다. S3 버전 관리는 객체 변경 추적 및 복구 작업에 유용하게 사용됩니다.

 


Q. 기업은 데이터를 30일 후에 S3 Glacier로 자동 이동하고, 365일 후에는 데이터를 삭제하려고 합니다. 이 작업을 수행하는 데 적합한 AWS S3 기능은 무엇입니까?

더보기

A. 수명 주기 정책 (Lifecycle Policy)

 

수명 주기 정책을 사용하면 객체가 일정 기간 후 자동으로 다른 스토리지 클래스로 이동하거나 삭제될 수 있습니다. 문제는 S3의 Lifecycle Policy를 어떻게 활용할 수 있는지 묻는 것입니다.

 

 

Q. S3 버킷에 새로운 객체가 업로드되면 AWS Lambda 함수를 트리거하여 자동으로 처리해야 합니다. 이 작업을 어떻게 설정해야 합니까?

더보기

A. S3 이벤트 알림(S3 Event Notifications)


S3 이벤트 알림을 사용하여 객체 업로드, 삭제 등의 이벤트 발생 시 Lambda 함수를 트리거하도록 설정할 수 있습니다. 이 문제는 S3와 AWS Lambda 간의 통합을 묻는 유형입니다.

 

 

Q. 대량의 데이터를 여러 지역에 걸쳐 S3에 빠르게 업로드해야 합니다. 업로드 속도를 향상시키기 위한 적합한 방법은 무엇입니까?

더보기

A. S3 Transfer Acceleration


S3 Transfer Acceleration을 사용하면 데이터 전송 속도를 크게 향상시킬 수 있습니다. 이는 CloudFront의 엣지 로케이션을 활용하여 전 세계에서 빠르게 데이터를 업로드할 수 있도록 지원하는 기능입니다.

 


Q. 사용자는 민감한 데이터를 S3에 저장해야 하며, 데이터가 저장되는 동안 암호화가 필요합니다. 적합한 암호화 방법은 무엇입니까?

더보기

A. SSE-S3, SSE-KMS 또는 SSE-C

 

S3에서 데이터를 암호화하는 방법으로는 SSE-S3, SSE-KMS, SSE-C가 있습니다. 문제에서는 데이터의 보안을 위한 암호화 방법에 대해 묻고 있으며, 요구 사항에 맞는 방법을 선택하는 것이 중요합니다.

 


Q. 한 회사는 두 지역에 걸쳐 S3 데이터의 복제본을 유지하려고 합니다. 이를 어떻게 설정할 수 있습니까?

더보기

A. Cross-Region Replication (CRR)

 

Cross-Region Replication (CRR)은 데이터를 서로 다른 AWS 리전 간에 자동으로 복제할 수 있는 기능입니다. 이를 통해 리전 장애나 데이터 접근을 빠르게 할 수 있습니다.

 


기출 문제

(출처: examtopics)

 

Q. 한 회사가 여러 대륙에 걸쳐 있는 도시의 온도, 습도, 기압에 대한 데이터를 수집합니다. 회사가 각 사이트에서 매일 수집하는 평균 데이터 양은 500GB입니다. 각 사이트에는 고속 인터넷 연결이 있습니다.
회사는 이러한 모든 글로벌 사이트의 데이터를 가능한 한 빨리 단일 Amazon S3 버킷에 집계하려고 합니다. 솔루션은 운영 복잡성을 최소화해야 합니다.
어떤 솔루션이 이러한 요구 사항을 충족합니까?

 

  • A. 대상 S3 버킷에서 S3 Transfer Acceleration을 켭니다. 멀티파트 업로드를 사용하여 사이트 데이터를 대상 S3 버킷에 직접 업로드합니다.
  • B. 각 사이트의 데이터를 가장 가까운 리전의 S3 버킷으로 업로드합니다. S3 크로스 리전 복제를 사용하여 객체를 대상 S3 버킷으로 복사합니다. 그런 다음 원본 S3 버킷에서 데이터를 제거합니다.
  • C. AWS Snowball Edge Storage Optimized 장치 작업을 매일 예약하여 각 사이트에서 가장 가까운 리전으로 데이터를 전송합니다. S3 크로스 리전 복제를 사용하여 객체를 대상 S3 버킷에 복사합니다.
  • D. 각 사이트의 데이터를 가장 가까운 리전의 Amazon EC2 인스턴스로 업로드합니다. Amazon Elastic Block Store(Amazon EBS) 볼륨에 데이터를 저장합니다. 정기적으로 EBS 스냅샷을 찍어 대상 S3 버킷이 있는 리전에 복사합니다. 해당 리전에서 EBS 볼륨을 복원합니다.
더보기

키워드: 단일 버킷, 운영 복잡성 최소화, 고속 인터넷

정답: A

  • A: S3 Transfer Acceleration은 멀티 파트 업로드를 사용 하여 데이터를 고속 전송, 최소한의 운영 복잡성을 가진다.
  • B: 크로스 리전 복제는 추가적인 단계로 운영 복잡성 증가
  • C: 인터넷 연경이 있는 경우 Snowball은 불필요
  • D: 불필요한 운영 복잡성 (EC2, EBS 등)

 

 

Q. 회사는 자체 애플리케이션의 로그 파일을 분석할 수 있는 기능이 필요합니다. 로그는 Amazon S3 버킷에 JSON 형식으로 저장됩니다. 쿼리는 간단하며 주문형으로 실행됩니다. 솔루션 아키텍트는 기존 아키텍처를 최소한으로 변경하여 분석을 수행해야 합니다. 솔루션아키텍트는 최소한의 운영 오버헤드로 이러한 요구 사항을 충족하기 위해 무엇을 해야 할까요?

 

  • A. Amazon Redshift를 사용하여 모든 콘텐츠를 한곳에 로드하고 필요에 따라 SQL 쿼리를 실행합니다.
  • B. Amazon CloudWatch Logs를 사용하여 로그를 저장합니다. 필요에 따라 Amazon CloudWatch 콘솔에서 SQL 쿼리를 실행합니다.
  • C. 필요에 따라 Amazon Athena를 Amazon S3와 직접 함께 사용하여 쿼리를 실행합니다.
  • D. AWS Glue를 사용하여 로그를 카탈로그화합니다. Amazon EMR에서 일시적인 Apache Spark 클러스터를 사용하여 필요에 따라 SQL 쿼리를 실행합니다.
더보기

키워드: 간단한 쿼리, 최소한의 오버헤드

정답: C

  • A: 2단계를 거쳐야 함. 복잡한 쿼리의 경우 Redshift를 사용해야 될 수 있음.
  • B: 로그 저장이 아니라 분석이 필요함.
  • C: Athena를 이용하면 간단한 쿼리를 S3에 직접 적용할 수 있다.
  • D: Glue는 Spark를 사용하여 쿼리를 실행. C보다 복잡한 과정이 필요함.

 

 

Q. 솔루션 아키텍트는 Amazon S3를 사용하여 새로운 디지털 미디어 애플리케이션의 스토리지 아키텍처를 설계하고 있습니다. 미디어 파일은 가용성 영역의 손실에 대한 복원력이 있어야 합니다. 일부 파일은 자주 액세스되는 반면 다른 파일은 예측할 수 없는 패턴으로 거의 액세스되지 않습니다. 솔루션 아키텍트는 미디어 파일을 저장하고 검색하는 비용을 최소화해야 합니다.
어떤 스토리지 옵션이 이러한 요구 사항을 충족합니까?

  • A. S3 표준
  • B. S3 지능형 계층화
  • C. S3 표준-빈번하지 않은 액세스(S3 표준-IA)
  • D. S3 One Zone-Infequent Access(S3 One Zone-IA)
더보기

키워드: 스토리지 아키텍처(클래스), 복원력, 예측할 수 없는 패턴으로 거의 액세스되지 않음. 

정답: B

  • A: 표준은 예측할 수 없는 패턴에 적합하지 않음.
  • B: S3 지능형 계층화가 요구사항에 맞으며 복원력도 있음.
  • C: S3 표준-IA는 드문 액세스에 적합하지만 계층화는 아님.
  • D: 단일 영역이라 복원력 없음. 내구성 떨어짐.

 

 

Q. 한 회사가 Amazon S3 Standard 스토리지를 사용하여 백업 파일을 저장하고 있습니다. 파일은 1개월 동안 자주 액세스됩니다. 그러나 1개월 후에는 파일에 액세스하지 않습니다. 회사는 파일을 무기한 보관해야 합니다.
어떤 스토리지 솔루션이 이러한 요구 사항을 가장 비용 효율적으로 충족할까요?

  • A. S3 Intelligent-Tiering을 구성하여 객체를 자동으로 마이그레이션합니다.
  • B. 1개월 후 S3 Standard에서 S3 Glacier Deep Archive로 객체를 전환하기 위한 S3 라이프사이클 구성을 생성합니다. 
  • C. 1개월 후 S3 Standard에서 S3 Standard-Infrequent Access(S3 Standard-IA)로 객체를 전환하기 위한 S3 수명 주기 구성을 생성합니다.
  • D. 1개월 후 S3 Standard에서 S3 One Zone-Infrequent Access(S3 One Zone-IA)로 객체를 전환하기 위한 S3 라이프사이클 구성을 생성합니다.
더보기

키워드: 스토리지 클래스, 파일 액세스, 무기한 보관, 라이프사이클

정답: B

  • A: 가능하지만 비쌈.
  • B: 장기보존에 적합하며 액세스 되지 않는다면 가장 저렴한 비용.
  • C: 장기 보관이 보장되지 않음.
  • D: 저렴하지만 장기 보관이 보장되지 않음.

 

 

Q. 한 회사가 AWS 클라우드에서 애플리케이션을 구축하고 있습니다. 이 애플리케이션은 두 AWS 리전의 Amazon S3 버킷에 데이터를 저장합니다. 이 회사는 AWS Key Management Service(AWS KMS) 고객 관리 키를 사용하여 S3 버킷에 저장된 모든 데이터를 암호화해야 합니다. 두 S3 버킷의 데이터는 동일한 KMS 키로 암호화 및 복호화해야 합니다. 데이터와 키는 두 리전 각각에 저장해야 합니다.
어떤 솔루션이 운영 오버헤드를 최소화하면서 이러한 요구 사항을 충족할까요?

  • A. 각 리전에서 S3 버킷을 만듭니다. Amazon S3 관리 암호화 키(SSE-S3)를 사용하여 서버 측 암호화를 사용하도록 S3 버킷을 구성합니다. S3 버킷 간 복제를 구성합니다.
  • B. 고객 관리형 다중 지역 KMS 키를 만듭니다. 각 지역에 S3 버킷을 만듭니다. S3 버킷 간 복제를 구성합니다. 클라이언트 측 암호화와 함께 KMS 키를 사용하도록 애플리케이션을 구성합니다.
  • C. 각 리전에서 고객 관리 KMS 키와 S3 버킷을 만듭니다. Amazon S3 관리 암호화 키(SSE-S3)를 사용하여 서버 측 암호화를 사용하도록 S3 버킷을 구성합니다. S3 버킷 간 복제를 구성합니다.
  • D. 각 리전에서 고객 관리 KMS 키와 S3 버킷을 만듭니다. AWS KMS 키(SSE-KMS)로 서버 측 암호화를 사용하도록 S3 버킷을 구성합니다. S3 버킷 간 복제를 구성합니다.
더보기

키워드: AWS KMS 고객 관리 키, 암호화, 동일한 KMS 키로 암복호화, 두 리전에 각각 저장, 최소 운영헤드

정답: B와 D로 의견이 갈림. 개인적으로 B라고 생각함.

  • A: SSE-S3은 고객관리 키에 적합하지 않음.
  • B: AWS 내에서 공식적으로 지원하는 다중 기능이 존재함으로 오버헤드가 D보다 적을 것으로 예상됨.
    https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-overview.html
  • C: SSE-S3은 고객관리 키에 적합하지 않음.
  • D: 내용 자체도 맞고 KMS에서 다중 리전을 지원하는 것도 맞지만 보기 내에서 B와 다르게 다중 지역 KMS라는 명시가 없어서 B가 정답으로 보임.

 

 

Q. 한 회사에 중요한 데이터가 들어 있는 Amazon S3 버킷이 있습니다. 회사는 실수로 데이터가 삭제되는 것을 방지해야 합니다.
솔루션 아키텍트는 이러한 요구 사항을 충족하기 위해 어떤 단계 조합을 취해야 합니까? (두 가지를 선택하세요.)

  • A. S3 버킷에서 버전 관리를 활성화합니다.
  • B. S3 버킷에서 MFA 삭제를 활성화합니다.
  • C. S3 버킷에 버킷 정책을 생성합니다.
  • D. S3 버킷에서 기본 암호화를 활성화합니다.
  • E. S3 버킷의 객체에 대한 수명 주기 정책을 생성합니다.
더보기

키워드: 중요한 데이터, 삭제 방지

정답: A, B

  • A: 파일이 삭제 되더라도 버전 관리에서 가져올 수 있음
  • B: 파일을 무단, 실수로 삭제하지 않도록 추가적인 인증 작업인 MFA를 설정
  • C: 버킷 정책과 관련 없음.
  • D: 암호화랑 관련 없음.
  • E: 수명 주기 정책과 관련 없음.

 

 

85. 어떤 회사에는 사용자가 웹 인터페이스나 모바일 앱을 통해 문서를 업로드하는 프로덕션 웹 애플리케이션이 있습니다. 새로운 규제 요건에 따라, 새로운 문서는 저장된 후에는 수정하거나 삭제할 수 없습니다.
솔루션 아키텍트는 이 요건을 충족하기 위해 무엇을 해야 합니까?

  • A. S3 버전 관리 및 S3 객체 잠금이 활성화된 Amazon S3 버킷에 업로드된 문서를 저장합니다.
  • B. 업로드된 문서를 Amazon S3 버킷에 저장합니다. S3 Lifecycle 정책을 구성하여 주기적으로 문서를 보관합니다.
  • C. S3 버전 관리가 활성화된 Amazon S3 버킷에 업로드된 문서를 저장합니다. 모든 액세스를 읽기 전용으로 제한하도록 ACL을 구성합니다.
  • D. 업로드된 문서를 Amazon Elastic File System(Amazon EFS) 볼륨에 저장합니다. 볼륨을 읽기 전용 모드로 마운트하여 데이터에 액세스합니다.
더보기

정답: A

  • A: 객체 잠금을 사용하면 수정, 삭제를 방지할 수 있다.
  • B: 라이프사이클 정책은 수정, 삭제를 방지할 수 없다.
  • C: 읽기 전용과 액세스를 제한하더라도 수정, 삭제는 별개.
  • D: EFS의 읽기 전용은 수정은 방지되지만 삭제는 방지 불가.

 

 

189. 회사는 계약 문서를 보관해야 합니다. 계약은 5년 동안 지속됩니다. 5년 동안 회사는 문서가 덮어쓰이거나 삭제되지 않도록 해야 합니다. 회사는 휴면 상태의 문서를 암호화하고 매년 암호화 키를 자동으로 순환해야 합니다.

솔루션 아키텍트는 최소한의 운영 오버헤드로 이러한 요구 사항을 충족하기 위해 어떤 단계 조합을 취해야 합니까? (두 가지를 선택하세요.)

  • A. Amazon S3에 문서를 저장합니다. 거버넌스 모드에서 S3 객체 잠금을 사용합니다.
  • B. Amazon S3에 문서를 저장합니다. 규정 준수 모드에서 S3 객체 잠금을 사용합니다.
  • C. Amazon S3 관리 암호화 키(SSE-S3)로 서버 측 암호화를 사용합니다. 키 로테이션을 구성합니다.
  • D. AWS Key Management Service(AWS KMS) 고객 관리 키로 서버 측 암호화를 사용합니다. 키 로테이션을 구성합니다.
  • E. AWS Key Management Service(AWS KMS) 고객 제공(가져온) 키로 서버 측 암호화를 사용합니다. 키 로테이션을 구성합니다.
더보기

정답: B, D

  • A: 거버넌스 모드는 특정 권한을 가진 사용자가 덮어쓰기, 삭제 가능
  • C: SSE-S3은 고객이 원할 때가 아니라 AWS 자체적으로 로테이션
    페이지 내 설명으로는 AWS KMS는 annual(년 단위)
    SSE-S3은 AWS의 관리 하에 자동적으로 이루어지는 것으로 보임.
    (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html)
  • E: 고객이 직접 관리해야 하는 운영 복잡성이 증가함