Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- jpa
- CodeCommit
- MSA
- QueryDSL
- serverless
- codedeploy
- backend
- Docker
- 티스토리챌린지
- 자격증
- 오블완
- backenddeveloper
- CICD
- 개발자
- 백엔드
- kakao
- aws
- orm
- mapping
- Spring Boot
- s3
- 스터디
- spring
- ec2
- goorm
- sqs
- DynamoDB
- Redis
- rds
- codebuild
Archives
- Today
- Total
gony-dev 님의 블로그
Section 11. Amazon S3 본문
S3 - Security
- User-Based
- IAM 정책 | IAM 정책은 어떤 사용자가 어떤 API를 호출할 수 있도록 허용할 것인지 적용한다.
- Resource-Based
- Bucket 정책(Most used) | S3 콘솔에서 버킷에 대한 권한을 설정하는 것이다. 특정 계정에 액세스 권한을 위임
- Object Access Control List(ACL) | 세밀한 보안 체계로 비활성화가 가능하다.
- Bucket Access Control List(ACL) | 버킷 단위로도 액세스 제한을 설정할 수 있다. 비활성화 가능
- 사용자가 상황별 S3 객체에 접근할 수 있는지:
- IAM 권한에 접근이 허용되어 있거나 자원 정책에 해당 자원 접근이 허용되어 있거나 명시적 거부 액션이 없다면 IAM 사용자는 허용된 API를 호출하여 S3 객체에 접근할 수 있다.
- 암호화 | 암호화 키를 이용하여 객체를 암호화한다.
S3 Bucket Policies
- JSON 형식
- Resources | 버킷과 객체를 정의
- Effect | 허용과 거부 선택
- Actions | 허용하거나 거부할 대상 API 명시
- Principal | 정책을 적용할 사용자나 계정을 명시
- S3 Bucket 정책
- 버킷에 공개 접근하는 권한 부여
- 암호화를 강제
- 다른 계정에 접근 권한 부여
EC2 인스턴스와 S3의 연결 방안
- 간단하다. EC2 Instance 역할을 생성하고, IAM 권한을 제대로 설정해 주면 EC2 Instance는 S3 버킷에 접근할 수 있다.
- Block Public Access
- 이 설정은 AWS에서 기업의 데이터 유출을 막기 위한 보호막 같은 개념이다.
- 이 설정이 활성화 되어 있다면 버킷은 공개되지 않는다.
S3 - Static Website Hosting
- S3는 정적 웹사이트를 호스팅할 수 있고, 인터넷에서 접근 가능하게 할 수 있다.
- 웹사이트 주소는 어느 리전에서 생성하느냐에 따라 달라진다.
- S3 버킷에 퍼블릭 액세스 읽기 권한이 없다면 접근이 불가하다.
S3 - Versioning
- Amazon S3에 버전은 버킷 단위에서 설정을 해주어야 한다.
- 버킷에 버전 관리 기능을 사용하는 이유는 의도하지 않은 삭제에 대응할 수 있게 해준다. 그리고 이전 버전으로 쉽게 롤백이 가능하다.
- 주의해야 할 점은 버전 관리 기능을 활성화하기 전에 있던 파일들은 버전 값이 null 된다.
- 또한 버전 관리 기능을 잠시 멈추면 이전 버전을 삭제하지 않는다.
S3 - Replication(CRR & SRR)
- 두 버킷 사이 비동기 복제를 설정하고 싶을 때
- 그러기 위해 소스 버킷과 대상 버킷 양쪽에 버전 관리를 활성화해야 한다.
- CRR를 한다면 두 버킷이 각각 다른 리전에 있는 것이고 SRR를 한다면 같은 리전에 있는 것이다.
- 복제는 비동기로 진행되고 복제 작업은 백그라운드로 진행한다.
- 두 방법의 차이
- CRR | 컴플라이언스, 저지연 액세스, 계정 간 복제
- SRR | 로그 집계, 운영 계정과 테스트 계정 사이에서 라이브 복제를 할 때 유용하다.
- 주의할 점
- 복제 기능을 활성화한 후에는 생성한 객체만 복제가 된다.
- 기존에 있던 객체를 복제하려면 S3 배치 복제 기능을 사용해야 한다.
- 삭제 작업을 복구할 때는 소스 버킷에 있는 삭제 마커를 대상 버킷으로 복제할 수 있다.
- 이 때 삭제된 게 버전아이디라면 복제되지 않는다.
- 복제 체이닝은 지원되지 않는다.
- 이는 버킷 1에 있는 객체가 버킷 2로 복제되고, 버킷 2에 있는 객체가 버킷 3로 복제되었을 때, 버킷 1에 있는 객체가 버킷 3로 복제되지 않는다는 것이다!
S3 Storage Classes
- 각 종류를 알아두어야 한다.
- 스토리지 클래스는 수동으로 바꾸거나 S3 수명주기 설정으로 객체가 자동으로 이 클래스들 중 하나가 되게 할 수 있다.
- Durability and Availibility
- 내구성이란 S3가 얼마나 자주 객체를 잃는지 의미한다.
- 만일 Amazon S3에 객체를 천 만개 저장한다면 잃는 객체는 만년마다 하나일 거라 예상될 정도로 내구성이 좋다.
- 가용성은 서비스가 얼마나 사용 가능한지 의미한다.
- 1년에 약 53분정도만 못 쓸 정도로 가용성이 좋다.
- General Purpose
- 99.99% 가용성
- 주로 승인된 데이터를 사용
- 저지연과 높은 처리량
- 시설 실패를 동시에 두 건까지 견딜 수 있다.
- Infrequent Access
- 덜 자주 사용하는 데이터
- 비용이 적고 조회 시 비용 발생
- Standard-Infrequent Access
- 99.9% 가용성
- 장애 복구, 백업에 사용
- One Zone-Infrequent Access
- 99.99999% 가용성
- 데이터 손실이 발생한다.
- 온프레미스 데이터나 재생성할 수 있는 백업 사본 만들기
- Glacier Storage Classes
- 저비용으로 백업과 아카이브에 사용
- Glacier Instant Retrieval
- 밀리초 단위로 검색
- 최소 스토리지 기간 90일
- Glacier Flexible Retrieval
- Expedited은 1~5분, Standard는 3~5시간, Bulk는 5~12시간이 걸리는 데이터 검색 옵션이 있다. Bulk만 무료
- Glacier Deep Archive
- Standard는 12시간, Bulksms 48시간이라는 데이터 검색 시간이 있다.
- 가격이 제일 적고 최소 스토리지 기간은 180일
- Intelligent-Tiering
- 액세스 패턴에 따라 객체를 액세스 간에 이동시킬 수 있게 한다.
- 월별 객체 모니터링 비용과 자동 이동 비용이 발생한다.
- 검색 비용은 별도로 발생하지 않는다.
'AWS' 카테고리의 다른 글
Section 7. ELB+ASG (0) | 2024.10.02 |
---|---|
Section 12. AWS CLI, SDK, IAM 역할 및 정책 (1) | 2024.09.26 |
Section 10. VPC(Basic) (0) | 2024.09.26 |
Section 9. Route 53 (0) | 2024.09.26 |
Section 8. RDS+Aurora+ElasticCache (0) | 2024.09.26 |