Create a Bucket
첫번째 단계- 버킷에 이름 부여
- 버킷이 지역 내에서 생성되더라도 이름은 전역적으로 고유해야 함(globally unique)
버킷 이름은 다음을 포함:
- 3-63자
- 소문자
- 수
- 점( . )
- 하이픈(-)
문자 또는 숫자로 시작, 끝
버킷에 객체 저장할 때, bucket name, key, version ID의 조합으로 객체를 고유하게 식별
- 이 unique URL로 버킷내의 객체 참조

이름을 지정한 후 버킷의 지역을 선택
- AWS account에 현재 선택된 지역이 default
- 가까운 지역을 선택해 latency와 costs 최소화
ownership과 access controls설정해 버킷 및 개체에 access할 사용자 제어
object ownership 객체소유권
- access control list (ACL)을 통해 제어
- ACL: 누가 무엇과 통신할 수 있는지 말할 때 사용하는 목록
- Default = Turn off ACL

Block public access 공용 액세스 차단
- AWS 계정 외부의 사용자와 애플리케이션이 사용자의 objects를 보고 사용할수있게해줌
- (default) new buckets, access points, objects는 public access 허용X
- However 사용자는 bucket policies, access point policies, or object permissions을 수정하여 공용 액세스를 허용



S3 bucket에 저장된 모든 object의 모든 버전을 보존, 검색 및 복원하기 위해 versioning 이용
- unintended user actions과 application failures 복구 가능
- disabled이 default, 추후 enabled가능
versioning state는 해당 버킷의 모든 개체에 적용됨
versioning을 가능하게 하면, 새 objects가 모두 버전 관리되고 unique version ID가 부여됨
버킷을 버전 활성화한 후에는 버전이 없는 상태(unversioned state)로 되돌릴 수 없다
- 버킷에 대한 버전 지정을 일시 중단은 가능


버킷에 태그를 추가하여 storage costs or criteria(기준) for individual projects 추적 가능
tag key는 태그 이름으로 고유해야함
tag value는 옵션이고 고유하지 않아도됨

Upload objects
버킷을 구성한 후 [버킷 작성]을 선택하면 버킷이 작성됨
버킷에 objects 업로드 가능
- Upload button을 누르거나 버킷에 객체를 drag and drop
- Amazon S3는 버킷당 데이터를 무제한으로 저장, single objects는 5TB미만
- 콘솔에서 objects는 160GB로 제한됨

objects 업로드할 때, 업로드의 일부인 storage class 선택 가능
- 기본 클래스는 S3 Standard
- 업로드 후 콘솔에 각 개체의 저장 클래스가 표시됨
- 언제든지 storage class 변경 가능

Upload Objects: Multipart Upload
single object를 set of parts로 올릴 때 multipart upload 이용 가능
- 각 part은 개체의 데이터의 연속된 부분(contiguous portion)

objects의 모든 parts가 업로드된 후, Amazon S3는 이 부분들을 조립해 object만듦
크기가 100MB가 넘으면 multipart upload 사용을 고려하라
Work with Objects
객체가 업로드되는 즉시 함께 작업 가능
- object 복사 가능:
- Create a copy
- Rename an object
- Move an object
- Change object metadata
- 버킷의 개체를 참조(reference)하려면 개체의 URL을 복사
You can download individual objects in the console
Delete Objects
S3 버킷의 모든 objects는 스토리지 비용이 발생→더 이상 필요 없는 개체는 삭제
개체를 선택한 다음 Delete(삭제)를 선택하면 콘솔에서 개체 삭제 가능
S3 버전 관리가 실행된 버킷에서는 MFA(Multi-factor Authentication) 삭제 실행 가능
Additional Features: Lifecycle Rules
Amazon S3 lifecycle: Amazon S3가 개체 그룹에 적용하는 작업을 정의하는 규칙 집합
2가지 유형:
- Transition actions: 개체가 on storage class에서 다른 클래스로 전환될 때 정의
- Expiration actions: 개체가 만료(expire)되고 삭제될 때 정의
ex 버킷→management→create lifecycle rule⇒특정 기간 지나면 expire되게 할 수 있다

Additional Features: Replication Rules
복제를 통해 S3 버킷 간에 개체 자동 복사 가능
개체를 다음과 같이 복제하도록 복제 규칙 설정 가능:
- Your AWS account
- Another AWS account
- A single bucket
- Multiple buckets
- Within same Region
- Into a different Region
복제를 사용하면 여러 지역, 여러 스토리지 클래스 및 여러소유권의 복사본을 효율적으로 유지 관리 가능
Cross-Region and Same-Region Replication
동일한 영역 내vs여러 영역에 걸쳐서 개체를 복제할지 결정해야 함
Cross-Region Replication:
- 서로 다른 AWS 영역의 Amazon S3 버킷 간에 object 복사
- Use case:
- disaster recovery(재해 복구)를 위해 훨씬 더 먼 데에 data를 저장해야 한다는 규정준수요구사항(Compliance requirements)
- 사용자에게 지리적으로 가까운(geographically closer) 객체 복사본을 유지 관리하여 latency 최소화
- 서로 다른 두 AWS 지역의 컴퓨팅 클러스터에 대한 운영 효율성(operational efficiency) 향상
Same-Region Replication (SRR)
- 동일한 AWS 영역에 있는 Amazon S3 버킷 간에 개체 복사
- Use case:
- single location의 로그를 처리하기 위해 단일 버킷에 로그 집계
- 동일한 데이터를 사용하는 운영 계정과 테스트 계정 간에 실시간 복제 구성
- 여러 복사본을 별도의 AWS 계정에 저장하여 데이터 주권 관련 법규(data sovereignty laws) 준수(Abide)
Bucket Security: IAM Policy
(default) 모든 Amazon S3 resources는 비공개private
- IAM 액세스 정책을 작성하여 다른 사용자에게 액세스 권한을 선택적으로 부여 가능
Amazon S3 및 개체에 대한 사용자, 그룹 및 역할 제어 액세스 권한을 부여 가능
ex IAM 역할을 사용하여 S3 버킷에 대한 액세스를 허용

Bucket Security: Bucket Policy
S3 버킷에 대한 액세스를 허용하는 또 다른 방법- 버킷 정책(policy) 사용
- 정책은 JSON으로 작성됨

Bucket Security: Encryption
개체를 업로드하고 다운로드할 때,
클라이언트 측 암호화(client-side encryption)를 사용하여 데이터를 보호 가능
- 데이터는 업로드하기 전에 암호화되며, 모든 암호화 키(encryption keys)를 보유하게 됨
- 전송 중인 데이터와 쉬고있는 데이터에 대해

서버측 암호화(server-side encryption)도 사용 가능
- 아마존 S3는 데이터를 업로드할 때 객체 수준에서 암호화
- 객체를 다운로드하면 아마존 S3는 데이터를 해독

Moving Large Amounts of Data into S3
AWS에는 대용량 데이터 이동(migration)을 지원하는 서비스 기능과 서비스 제품군이 존재
- S3 Transfer Acceleration 전송 가속
- 수백 개의 CloudFront edge locations의 global network를 사용하여 client applications과 Amazon S3 간 거리 단축
- AWS Snowcone
- edge computing 및 데이터 전송을 위한 portable, rugged, and secure device
- AWS Snowball
- physical storage devices를 사용하여 대용량 데이터를 Amazon S3와 onsite data storage 위치 간에 인터넷보다 빠른 속도로 전송
- AWS Snowmobile
- 대용량 데이터를 AWS로 이동하는 데 사용되는 exabyte-scale data transfer service

Block Storage at AWS
block storage: 장치의 fixed-sized blocks으로 저장되는 데이터
AWS의 두 개의 블록 스토리지 솔루션:
- Amazon EC2 인스턴스 저장소: EC2 인스턴스에 대한 임시 블록 레벨 저장소
- Amazon EBS: Availability Zone과 관련된 분리 가능한(detachable) 스토리지

EBS Key Features and Benefits
Data availability가용성
- EBS 볼륨을 생성하면 자동으로 AZ 내에서 복제
Data persistence지속성
- EBS volume은 인스턴스의 수명과 독립적으로 유지될 수 있는 off-instance storage
Data encryption암호화
- AES-256을 사용하는 암호화된 EBS 볼륨 생성 가능
Data security보안
- Amazon EBS 볼륨이 포맷되지 않은 원시 블록 장치(raw, unformatted block devices)로 제공됨
Snapshots유연성
Amazon EBS Volume Types
Solid state drives (SSD)
- frequent read/write operations과 small I/O size 크기를 가진 트랜잭션 워크로드에 사용되어 보다 빠른 I/O operations per second (IOPS) (초당 I/O 작업 수행)
- General purpose, Provisioned IOPS
Hard disk drives (HDD)
- high throughput performance(높은 처리량 성능)을 필요로 하는 대규모 스트리밍 워크로드에 사용
- Throughput optimized HDD, Cold HDD

Use Cases for EBS Volume Types

File Storage at AWS
file storage는 users, applications, and services가 파일 시스템의 데이터에 액세스하는 데 도움이됨
Amazon EFS: AWS Cloud 서비스 및 사내(on-premises) 리소스와 함께 사용되는 확장 가능한(scalable) 파일 시스템

Amazon EFS Key Features and Benefits
Fully managed
- 파일 서버 또는 스토리지 관리, 하드웨어 업데이트, 소프트웨어 구성 또는 백업 수행에 대해 걱정할 필요X
Highly available and durable
- 99.9999999999%의 내구성과 99.999%의 가용성을 위해 설계됨
- (default) Amazon EFS는 파일 시스템에 대해 여러 AZ에 걸쳐 모든 파일 시스템 개체를 이중으로 저장
Elastic and scalable
- 파일을 추가 및 제거할 때 스토리지 용량이 자동으로 증가 및 축소됨
- 파일 시스템이 증가 → 처리량과 IOPS가 확장, 이때 파일 작업은 지속적으로 low latencies로 제공됨
Data encryption
- 저장된 데이터와 이동 중인 데이터를 모두 보호하는 포괄적인(comprehensive) 암호화 솔루션
Amazon EFS Use Cases

Summary
▪ 몇 단계로 버킷을 생성하고 개체 업로드를 시작할 수 있습니다
▪ 개체를 복사, 다운로드 또는 삭제할 수 있습니다
▪ 라이프사이클 정책, 복제 규칙 및 보안 등의 추가 기능
▪ Amazon EBS는 블록 스토리지 서비스입니다
▪ 블록, 파일 및 개체는 스토리지 카테고리입니다
▪ 워크로드 기준에 따라 적절한 스토리지 선택
▪ AWS에는 선택할 수 있는 여러 스토리지 솔루션이 있습니다