[AWS SAA 스터디] S3

이영한·2022년 4월 19일
0

AWS SAA 스터디

목록 보기
1/3
post-thumbnail

S3(Simple Sotrage Service)

  • 오브젝트로써 데이터를 저장하는 스토리지.

구성

  • S3 Object : 데이터를 담는 오브젝트
    • key : object의 이름
    • value : byte sequence로 이루어진 데이터
    • version id
    • Meta Data
    • 0 ~ 5 TB 저장가능 (0bytes도 저장 가능하다는 부분이 시험에 많이 나옴)
    • S3 Bucket : 오브젝트를 담는 것. S3는 글로벌하기 때문에 도메인처럼 이름이 유니크해야한다.

Storage Classes(먼저 설명된 클래스가 젤 빠름)

  • standard : Fast, 99.99% Availability(가용성 : 언제나 정상적으로 사용 가능한가), 11 9's Durability(내구성 : 데이터 유실 얼마나 안되는지), 최소 세 개의 AZs에 걸쳐 복사
  • Intelligent Tiering : 머신러닝으로 알맞은 클래스를 결정해줌
  • Standard Infrequently Accessed(IA) : 여전히 빠름, 파일에 한 달에 한 번 접근하면 이득. 접근 비용 발생. 50% less than standard
  • One Zone IA : 한 AZ에만 존재(99.5 Availiability). IA보다 20% 쌈. 접근 비용 발생
  • Glacier : 오랫동안 사용안하는 데이터 저장용. 싸지만 데이터 가져오는데 분~시간이 소요될 수 있음
  • Glacier Deep Archive : 젤쌈. 데이터 가져오는데 12시간 걸림

Security

  • 새로 생성한 버킷의 기본 access는 private
  • Access Controler Lists(ACL) : legacy, 간단
  • Bucket Polices : json으로 access rule 설정
//Bucket Polices Example
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "AddCannedAcl",
            "Effect": "Allow",
            "Principal": {
                "AWS": [
                    "arn:aws:iam::111122223333:root",
                    "arn:aws:iam::444455556666:root"
                ]
            },
            "Action": [
                "s3:PutObject",
                "s3:PutObjectAcl"
            ],
            "Resource": "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*",
            "Condition": {
                "StringEquals": {
                    "s3:x-amz-acl": [
                        "public-read"
                    ]
                }
            }
        }
    ]
}

Encryption

  • Encryption in Transit(데이터 전송중 encryption) : ssl, tls
  • Server Side Encryption(SSE) : 아마존에서 도와줌
    • S3 Managed Keys : 아마존에서 키는
    • SSE-AES : AWS 암호화 관리, 정기적으로 순환
    • SSE-KMS : 사용자 마스터키를 이용하여 암호회
    • SSE-C : Cusotmer provided key(내가 관리)
  • Client-Side Encryption : S3에 저장전 알아서 암호화
  • SES-KMS vs SSE-C

Data Consistency

  • New Objects(PUT)
    • Read After Write Consistency
    • 쓴 직후 읽을 수 있다는 뜻
  • Overwrite(PUT), Delete(DELETE)
    • Eventual Consistency
    • S3를 다른 AZ로 복사할 시간이 필요
    • 따라서 바로 읽으면 이전 버전 데이터를 줄 수 있음

Cross-Region Replication(CRR)

  • CRR이 켜져있으면 자동적으로 다른 리전에 저장된다

Versioning

  • 모든 버전의 s3를 저장하는 방식
  • 한번 enable되면 끌 수 없고 해당 버킷을 중지해야한다

LifeCycle Management

  • objects를 다른 클래스로 옮기거나 delete하는 등의 과정을 자동화
  • Versioning과 같이 사용 가능

Transfer Acceleration

  • S3 bucket에서 멀리 있는 end User로 부터 빠르고 보안적으로 안전하게 파일을 받는 것
  • CloudFront의 Edge Location기능 사용.
  • 유저는 S3 bucket이 아닌 Edge Location url을 이용
  • Edge location에 파일이 도착하면 optimize network path(Amazon Backbone Network)를 통해 자동으로 S3에 라우팅된다

Presigned URLs

  • 특정 시간동안만 private objects에 접근할 수 있는 url
  • AWS CLI와 AWS SDK를 통해 만들 수 있다

MFA Delete

  • 유저가 MFA코드를 주지 않는 이상 DELETE 작업을 못하도록 함
  • MFA Delete는 아래 두 조건이 있어야 가능
    1. AWS CLI를 사용
    2. 해당 버킷이 Versioning 사용

https://www.youtube.com/watch?v=Ia-UEYYR44s

profile
간단하게 개발하고 싶습니다

0개의 댓글