PROGRAMING/BACKEND DEV

AWS SAA-C02 - S3(AWS Storage) 추가 특징 및 기능

o_deok 2021. 7. 8. 22:51

0. S3의 추가 특징 및 기능 

- Tiered Storage Available(계층형 저장 가능)
- Lifecycle Management
- Versioning
- Encryption(암호화)
- MFA Delete (삭제시 MFA인증)
- Secure your data using Access Control Lists and Bucket Policies

 

1. LifeCycle Management

- LifeCycle Rule을 생성해 특정 (혹은 모든) 버켓에 대해 적용할 수 있는 기능
- 서로 다른 storage class(S3 storage 종류, 이전 포스팅 참고)간의 객체 전환을 자동화할 수 있으며 버전 관리 등을 수명주기에 적용할 수 있다.
- Automates moving your objects between the different storage tiers.(Action 1,2)
- Can be used in conjunction with versioning.(Action 3,4)
- Can be applied to current versions and previous versions

 

1.1 Action

- 특정 Action에 대해서 수행되는 시점(객체가 어떠한 상태가 된지 N일 후)를 지정할 수 있음
* Transition current versions of objects(obj) between storage classes
* Transition previus versions of objects(obj) between storage classes
* Expire current version of obj
* Permanently delete previous versions of obj
* Delete expired delete markers or incomplete multipart uploads

 

2. S3 Object Lock

 

- It can help you prevent obj from being deleted or modified for a fixed amount amount of time or indefinitely.
- Use S3 Object Lock to store objects using a WORM model.
- 객체가 수정/삭제 될 때 특정 시간동안 객체를 잠금으로써 WORM(Write Once, Read Many)모델에 보다 안전하게 적용할 수 있다.

2.1 Governance Mode

- Users can't overwrite or delete an obj version or alter its lock settings unless they have special permissions.
- 권한을 부여받은 특정 유저만 객체를 수정/삭제 할 수 있게 함으로써 객체를 보호하는 모드.

 

2.2 Compliance Mode

- A protected obj version can't be overwritten or deleted by any user, including the root user in your AWS account.
- This mode ensures an obj version CANNOT be overwritten or deleted for the duration of the retention period.
- 유저가 아닌 객체를 제한함으로서 객체를 지키는 방법. 특정 객체를 보호해 루트 유저일지라도 아무나 수정/삭제 못하도록 제한함.
- 객체의 버전이 보유 기간 동안 수정/삭제 되지 않도록 한다. 객체 버전에 대해 legal hold를 걸어두지 않았다면 보유 기간이 지나면 수정/삭제 가능함.
* retention period; protects an obj version for a fixed amount of time. After this period expires, the obj version can be overwritten or deleted (unless you also placed a legal hold on the obj version!) 

 

2.3 Glacier Vault Lock

- S3 Glacier 각각에 대해 Lock policy를 제어할 수 있도록 한다.
- WORM(Write Once Read Many) 같은 제어 항목을 지정하여 앞으로 편집하지 못하도록 정책을 잠글 수 있다.
- Vault(Glacier repository 각 개체) 잠금 정책은 액세스 정책과 다르다. 잠금 정책은 일반적으로 데이터 액세스에 대한 엄격한 제어가 필요한 규제 및 규정 준수 제어 항목(compliance controls)을 배포하는 데 사용된다.

 

 

3. S3 performance

 

prefix(폴더)를 사용함으로써 성능향상을 가져옴
하나의 prefix당 3500 PUT request 및 5000 GET requests per seconds 지원 

 

3.1 KMS Request Rates

- SSE-KMS: to encrypt or decrypt your objects in S3.
- S3 저장소 내의 개체 암호화/복호화 시 사용되는 API
- upload -> encrypt KMS API call / download -> decrypt KMS API call
- It's either 5,500, 10,000, or 30,000 requests per seconds.
- you CANNOT request a quota increase for KMS.

 

3.2 Uploads Performance

- Recommended for files over 100MB
- Required for files over 5GB
- Allows Parallelize uploads for efficiency
- 용량이 큰 파일을 업로드 시 parallelize upload를 지원하여 더 빠르고 효율적인 성능을 가져온다.

parallelize upload

 

3.3 Downloads Performance(S3 byte-range fetches)

- Parallelize downloads by specifying byte ranges.
- 하나의 큰 파일을 여러 조각으로 나눈뒤 다운로드를 수행하여 효율성을 높이며, 다운로드에 실패했다면 전체 파일이 아닌 그 특정 부분만 실패한다.

 

 

4. S3 Select

- S3 Select enables applications to retrieve only a subset of data from an object by using simple SQL expressions.
- Save money on data transfer and increase speed.
- SQL 표현식을 사용해서 bucket에 저장된 개체를 조회하는 기능으로 더 빠르고 효율적인 성능에 기여한다. 

 

 

5. AWS Organizations

- 계정을 관리하는 정책으로, 여러 AWS 계정을 묶어 중앙에서만 요금을 부과하도록 관리하는 방식
- AWS Organizations를 사용하여 계정을 생성하고 리소스를 할당하며(AWS서비스 사용), 워크플로를 구성하도록 계정을 그룹화하고, 모든 계정에 대해 단일 결제 방법을 사용하여 비용을 최소화한다.
- AWS Organizations는 다른 AWS 서비스와 통합되므로 조직 내 계정 간 중앙 구성, 보안 메커니즘, 감사 요구 사항, 리소스 공유를 정의할 수 있다.

여러 계정(DEV, Production, QA etc)을 OU(조직단위)로 묶어 관리한다.

- Paying account should be used for billing purposes only!! Do NOT deploy resources into the paying account.
- Enable/Disable AWS services using Service Control Polices(SCP) either on OU or on individual accounts.
- 요금 지불용 계정은 오직 요금 지불용으로만 사용되어야 하며, OU(조직 단위) 또는 각각의 계정의 SCP를 이용하여 AWS 서비스를 활성화할 수 있다.

 

 

6. Sharing S3 Buckets Across Accounts

* S3 buckets을 계정간에 공유할 수 있는 3가지 방법


- Using Bucket Policies & IAM (bucket전체에 적용 / Only Programmatic access)
- Using Bucket ACLs & IAM (개체 각각에 적용 / Only Programmatic access)
- Cross-account IAM Roles (Programmatic + Console Access)

 

 

7. Cross-Region Replication

- bucket별로 management탭에서 life cycle과 더불어 repliaction rule 설정 가능.
- 기존에 있던 file은 자동으로 복제되지 않으며, delete markers 또한 복제되지 않는다.
- Replication requires versioning to be enabled for the destination bucket.

 

 

8. Transfer Acceleration

- S3 Transfer Acceleration utilises the CloudFront Edge Network to accelerate you uploads to S3.
- Instead of uploading directly to your S3 bucket, you can use a distinct URL to upload directly to an edge location which will transfer that file to S3.
- S3 bucket에 바로 업로드하는 방법 대신, URL을 통해 edge location에 업로드하고 추후 S3에 전송하는 방법으로 Cloud친화적인 Edge Location 네트워크를 이용하여 업로드 속도를 가속화한다.

여러 region에서 object를 업로드한다고 할 때, 물리적인 거리가 멀면 업로드 속도가 지연될 수 있다.

 

 

9. AWS Data Sync

- Used to move large amounts of data from on-premises to AWS.
- Used with NFS- and SMB- compatible file systems.
- Replication can be done hourly, daily, or weekly.
- Install the datasync agent to start the replication.
- Can be used to replicate EFS to EFS.