일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |
- database
- 우선순위큐
- 백준
- BIT연산
- Transaction
- S3
- Algorithm
- greedy
- Spring
- MySQL
- wrapper class
- priorityqueue
- SQL
- 구현
- spark
- Parquet
- MVC
- JPA
- EventScheduler
- datanode
- procedure
- ACID
- 프로그래머스
- namenode
- boto3
- ES6
- BFS
- 시뮬레이션
- bigdata
- hdfs
- Today
- Total
IT 개발일지
[빅데이터 파이프라인 마스터] Week5 - S3 Bucket and Object 본문

Bucket 옵션
Versioning
- 동일한 bucket 내에 다양한 버전의 객체를 저장하는 것.
- 특정 이미지 객체 파일을 bucket에 저장하고 수정, 삭제 등 변화가 일어날 때, 변화분 이전 이전 버전의 객체를 따로 저장한다
- 고유의 ID를 통해 식별 가능, 문제 및 복원이 필요할 때 복구 용이
Server Access Logging
- 버킷의 접근 요청에 대한 모든 정보를 Traking하는 것
- 행동, 상태, 에러 코드, 요청자, 요청 버킷 등 모든 정보에 대해 추적
Static Website Hosting
- static한 웹페이지를 따로 올릴 수 있음
- 호스팅하기 간단하기 때문에 간간히 이용하기도 함
Bucket 설정
- S3의 세부설정에서 Bucket에 대한 접근 권한 등 다양한 설정을 할 수 있다.
- 해당 예제는 Public Bucket을 만드는 작업을 진행한다.
- 아래 예시는 2024-bigdata-course bucket내 객체 url을 클릭하면 Access가 제한이 되는 것을 볼 수 있다.
- 이 객체를 누구나 접근 가능하도록 풀어보자.


- 먼저 권한에 들어가 퍼블릭 엑세스 차단 항목에서 편집 버튼을 누른다.

- 모든 퍼블릭 액세스 차단 편집을 해제해준다.

- 그리고 ACL항목에 들어가 편집을 한 후 버킷 소유자 적용을 클릭한다.

- 그리고 객체 소유권 편집을 통해서 ACL을 활성화시켜준다.
- ACL을 활성화한다는 것은 해당 버킷의 객체를 타 AWS객체에서 접근, 소유할 수 있다는 의미이다.

- 그 후 ACL 편집 항목에서
모든 사람(퍼블릭 엑세스) 항목에 나열, 읽기 항목에 check해준다.

- 그 다음 버킷 정책을 수정해야 한다.
- 정책 생성기 버튼을 통해 정책을 만들어보겠다.

- 우선 Policy type을 S3 Bucket Policy를 클릭한다.
- 그리고 Actions를 우선 GetObject, PutObject, DeleteObject 3개만 설정해보자.
- 그리고 ARN을 다음과 같은 형식으로 해준다. arn:aws:s3:::${BucketName}/${KeyName}
- 편의상 우선 KeyName은 *로 해준다.
- Principal에서는 모든 value를 적용하려면 *를 써준다.

- 생성을 완료하면 다음과 같은 팝업이 뜨는 데 생성된 JSON을 복사해서
- 버킷 정책 편집을 눌러준 후 저장한다.


- 다시 해당 객체에 들어가 객체 URL을 클릭해보면 이제 접근권한이 풀려 객체URL을 통해 접근하는 것을 볼 수 있다.


Lifcycle Bucket
객체를 한 스토리지 클래스에서 다른 스토리지 클래스로 전환, 객체 삭제 등 작업을 자동화
- 버킷의 라이프사이클을 수정해야 할 상황이 종종 존재한다.
- 예를 들어 개인정보보호 이슈로 3개월만 데이터를 저장하고 파기해야 하는데, 자동 정리 기능을 S3 버킷의 설정에서 할 수 있다.
- 또한 생성, 저장된지 오래된 객체들은 상대적으로 접근 빈도가 낮기 때문에 동일한 스토리지에 저장하는 것보다 더 단계가 낮고 저렴한 스토리지에 저장하는 것이 효율적일지도 모른다.
- 이러한 작업들을 자동화, 활성화해주는 스크립트이다.
- 자동 정리 기능은 ELB access log, VPC flow log 등 특정 기간 지난 후 로그를 삭제하는 작업에도 용이하다.
- 참고로 스토리지 클래스가 쌀 수록 데이터 내구성, 접근 latency 등 다르다.

- 우선 관리 > 수명 주기 규칙 생성을 클릭한다.

- 다음 예시는 logs폴더 내 객체가 생성된지 10일, 최신이 아닌 상태로 전환된 후 1일 경과하면 이전 버전을 영구 삭제하는 작업을 등록하는 화면이다.



- 설정이 끝났으면 전환 및 만료 작업 검토 화면을 통해 설정을 리뷰한다.

- 그럼 이렇게 수명 주기가 추가된 것을 볼 수 있다.

S3 Object 설정

- 스토리지 클래스 : 파일이 저장될 스토리지 설정
- Reduced Redundant : thumbnail같이 복원도 빠른 객체에 적합

자세한 내용은 해당 documentation 참조
- 메타데이터 : 어떤 파일인지 설정 가능함 => 각각 파일마다의 메타데이터 또한 설정할 수 있어 나중에 객체에 접근할 때 타입을 한 번에 알 수 있음