기초 물방울/AWS

AWS 기초 공부 기록 #3 (S3~객체버킷)

Weeding 2022. 3. 22. 18:39
반응형
SMALL

Amazon S3

  • Amazon Simple Storage Service
  • 스마트한 객체 스토리지 서비스
  • 사용하기 쉬우며 기능이 강력한 스토리지 서비스
  •  
  • S3의 특징 ↓↓
  • 1. 확장성 : EC2와 마찬가지로 확장, 축소가 쉬움.
  • 2. 가용성&내구성 : 99.99999%의 데이터 내구성을 가지고 있어 장애나 오류, 위협에 강하다.
  • S3객체는 최소 4개의 가용 영역에 자동으로 복제되어 보존되기 때문에 어느 한쪽에 장애가 발생해도 계속 사용 O
  •  
  • 3. 신뢰성 : 암호화 기능과 접근 관리 도구가 있고, 각종 규정을 준수하며 감사 기능을 갖추고 있음.
  • 4. 다양한 관리 기능 : 스토리지 클래스 분석, 수명 주기 정책 등을 시작으로 각종 관리 기능 존재
  • 5. 스마트한 기능 : S3 Select이라는 데이터에 쿼리를 실행하는 기능과 서비스가 있음.
  • 이 외 Amazon Redshift Spectrum, Amazon Athena 등의 분석 서비스와 호환되며 AWS Lambda와 연동 가능

 

 

스토리지 클래스

  • S3 스토리지의 종류를 "스토리지 클래스" 라 부름
  • 버킷 단위가 아닌 "객체(파일)" 단위로 클래스 선택 가능.
  •  
  • 스토리지 클래스 별 특징 ↓↓
  • 1. Standard : 내구성 & 가용성이 높음 (99.99999%)
  • 2. Standard - Infrequent Access : 내구성(99.99999%)이 높고 가용성(99.9%)이 조금 낮음
  • 3. Reduced Redundancy Storage : 내구성이 낮고(99.9%) 가용성이 높음(99.99%)
  •  
  • S3 Glacier / S3 Glacier Deep Archive
  • 1. 데이터 아카이브와 장기간 백업을 고려하여 안정적인 Amazon S3 스토리지 클래스
  • 2. 저렴한 가격으로 보관 가능 / 데이터는 '볼트'라고 하는 컨테이너에 저장
  • 3. 저장된 데이터를 읽는 경우 다른 S3 버킷으로 옮겨야 하는 작업이 필요

 

 

S3의 사용 절차

  • S3의 조작은 관리 콘솔의 대시보드에서 수행
  • API와 SDK를 사용하여 업로드 가능 = 편리성
  • "버킷" "객체 키" 등의 구성 요소
  • 생성한 후에 이름과 리전 변경 할 수 없음!

 

 

객체와 버킷

  • S3에서 드라이브를 "버킷"이라 부름.
  • S3에서 파일을 "객체"라 부름.
  • 버킷에는 명명 규칙이 있음. (처음과 마지막은 알파벳이나 숫자를 사용해야 함)
  • 버킷을 생성하면 리전과 버킷명을 변경할 수 없기 때문에 신중하게 결정해야 함.
  • 특히 버킷명은 S3 안에서 유일한 이름이어야 함.

 

 

버킷 정책과 사용자 정책

  • S3 버킷에 대한 액세스 제한 설정 가능.
  • 1. 버킷정책 = 해당 버킷에 접속할 수 있는 사용자를 지정 (사용자가 많은 경우 유리)
  • 2. 사용자정책 = 사용자가 접속 가능한 버킷을 지정 (버킷이 많은 경우 유리)
  • 3. ACL(액세스 제어 목록)에 의한 관리 정책 = 다른 AWS 계정의 읽기/쓰기에 대해서 허가 혹은 거부 설정

 

액세스 제한은 리소스, 작업, 효과, 보안 주체에 대해 설정할 수 있다. 

(누가, 무엇을, 어떤 것에 대해)

  • 리소스 = 제한 대상이 되는 버킷 및 객체 / 아마존 리소스 이름을 사용하여 대상 식별
  • 작업 = 실제로 가능한 작업 / GET(취득), PUT(배치), DELETE(삭제) / 작업 키워드를 사용하여 지정
  • 효과 = 설정 여부를 뜻함 / 허가(allow), 거부(deny)를 설정
  • 보안 주체 = 허가 혹은 거부할 사용자 및 계정, 서비스 등을 말함.

 

 

웹 사이트 호스팅

  • 웹 사이트 호스팅은 S3 버킷을 정적 웹 사이트로 공개하는 기능
  • Amazon Lightsail은 필요한 기능을 선택하면 웹 사이트에 필요한 서비스 전체를 정가제로 구축
  • AWS Amplify는 모바일 앱이나 웹 앱을 개발하기 위한 프레임워크

 

 

파일 업로드와 다운로드

  • 멀티 파트 업로드는 객체를 여러 개로 분해하여 S3에 데이터를 업로드하는 기능
  • 100MB 이상의 파일은 이 기능을 사용할 것을 추천
  • AWS DataSync는 온프레미스 스토리지와 AWS 스토리지 서비스간의 대용량 데이터를 이동할 수 있음.
  • AWS Transfer for SFTP = SFTP 서버를 제공하는 서비스
  • 서드 파티 도구(API, SDK)를 사용해서 파일을 전송할 수 있음.

 

 

액세스 관리 및 변조 방지

  • 액세스 로그는 서버에 어떤 요청이 있었는지를 기록하는 기능
  • 스토리지 클래스 분석은 객체의 액세스 빈도를 분석하는 기능
  • 객체 잠금은 객체를 변경하지 못 하게 하는 기능
  • S3 배치 작업은 객체에 대한 복사, 복원 등 다양한 작업 실행할 수 있게 하는 기능
  • S3 인벤토리는 객체의 메타데이터의 목록을 생성하는 기능

 

 

수명 주기

  • 객체에 정기적으로 수행할 작업을 설정하는 기능

 

버전 관리

  • 객체를 여러 버전으로 저장하는 기능

 

교차 리전 복제

  • 객체를 다른 리전에 비동기로 복사하는 기능

 

 

 

데이터 분석과 연계

 

1. S3 Select

  • SCV와 같이 구조화된 텍스트 형식의 데이터에 대해 SELECT와 같은 SQL 문을 실행하는 기능

 

2. Athena

  • CSV와 같이 구조화된 텍스트 형식의 데이터에 대해 SQL 문을 실행하는 기능

 

3. Redshifts

  • S3의 데이터에 대해 SQL 문을 실행하는 기능
  • 대용량 데이터를 처리할 수 있음.

 

 

 

Amazon CloudFront

  • 고속 콘텐츠 전송 네트워크(CDN, Content Delivery Network) 서비스
  • 웹 콘텐츠를 빠르게 전송
  • 이러한 고속화는 웹 서버의 내용을 캐시하는 엣지 서버를 사용하여 이루어짐
  • 엣지 서버 = 각 리전의 네트워크 말단에 위치해 있음.
  • 클라이언트가 접속하는 네트워크의 거리가 가깝기 때문에 이에 따른 반응 속도도 빨라짐
  • 요금 계층에 따라 사용할 수 있는 엣지 서버가 다름.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

반응형
LIST