티스토리 뷰

서버/AWS 이야기

S3에 관하여

크롱_k 2019.02.11 10:55

  1. 특징
    1. S3 HTTP 프로토콜을 이용 , 별도의 Agent설치 없이 브라우저에서 바로 사용
    2. Auto Scaling , Load Balancing 가능.
    3. 웹서버 없이 별도의 웹서비스 가능 ( 정적 페이지 사용에 효과적 )

 

  1. 개념
    1. 객체 ( Object ) : 데이터 저장 최소 단위, 객체는 파일과 메타데이터로 구성됨.
      1. Key= 객체의 이름, Value=객체의 데이터
      2. 객체 하나의 크기는 1byte 부터 5TB 까지
      3. 메타데이터 = MIME( HTTP Content-Type ), 파일 확장자에 따라 자동생성, 또는 임의로 생성도 가능
    2. 버킷 ( bucket ) : 
      1. S3에서 생성할 있는 최상위 디렉터리.
      2. Bucket Region 별로 설정 해야됨.
      3. Bucket Unique 해야됨. 계정 별로 100 가능
      4. 업로드 가능한 객체 무제한, 용량 무제한.
      5. 접속 제어 권한 관리 가능
    3. 요금
      1. 저장용량 & 데이터 전송량, HTTP 요청 ( Request) 개수로 책정
  2. 생성
    1. Bucket name region 설정한다.
    2. 객체에 대한 버전관리를 활성화 하려면 Keep All~~ 옵션 체크
    3. 버킷에서 서버 액세스 로깅을 활성화하려면 Log requests fot access ~~ 클릭
    4. Tags 지정하려면 key, Value 입력
    5. CloudTrail 사용한 객체수준의 로깅을 활성화하려면 Record Object~~ 클릭
    6. 버킷에 대한 기본 암호화를 활성화 하려면 Automatically ~~ 클릭
    7. 버킷에 있는 객체에 대해 잠글수 있으려면 Permanently Allow 클릭~
    8. 버킷의 CloudWatch 요청 지표를 구성하려면 Monitor 클릭~

 

 

  1. Bucket - Properties
    1. Versioning : 버전관리 유무
      1. 한번 켜면 없다….;;
      2. 최근 파일을 삭제하면 이전버전으로 돌릴 있음.
    2. Server Access logging : 로그 설정 , Prefix 이름 설정가능
      1. Logging 설정 객체에 접근하면 10~20분정도 logs라는 폴더가 생기고 로그가 기록됨.
    3. Static Website hosting : 웹사이트 설정 가능 , 설정 상단 Endpoint 접근가능, 또는 특정 도메인으로 Redirect 가능,
    4. Object-level logging : CloudTrail 데이터 이벤트를 사용하여 객체수준의 API 활동을 기록 ,
    5. Default encryption - None , AES-256, AWS-KMS 암호화 선택 가능

 

 

  1. Public access settings
    1. Manage public access control lists ( ACLs ) for this bucket
      1. Block new public ACLs and uploading public objects
        1. 퍼블릭 객체, 객체 ACL 사용을 금지 ( 리소스 사용 , PUT 요청 )
        2. Ex) ACL 통해 버킷 또는 객체를 퍼블릭으로 만드는 것을 차단할 있다.
        3. 애플리케이션이 퍼블릭 ACL 통한 객체 업로드를 시도하거나 관리자가 버킷에 퍼블릭 액세스 설정을 적용하려고 시도하는 경우에도 옵션으로 차단 가능.
        4. 기존 버킷 또는 객체에 대해서는 영향을 주지 않음.

 

  1. Remove public access granted through public ACLs
    1. 해당 옵션 사용시 어떤 버킷 또는 객체도 퍼블릭으로 설정 없음.
    2. 설정은 현재 추후 객체에 대한 모든 퍼블릭 액세스 설정을 재정의한다.
    3. 기존에 사용하고 있는 경우에도 ( 애플리케이션, ACL ) 차단됨.

 

  1. Manage public bucket policies for this bucket
    1. Block new public bucket policies
      1. 새로운 퍼블릭 정책을 차단하는데 사용 ( 리소스 사용 , PUT요청 포함 )
      2. 기존 버킷 또는 객체에는 영향을 미치지 않음.
      3. 버킷 정책이 퍼블릭 액세스를 허용하지을 변경할 없도록 한다.

 

  1. Block public and cross-account access if bucket has public policies
    1. 퍼블릭 정책이 있는 버킷에 대해 퍼블릭 액세스 계정 액세스 차단
    2. 퍼블릭액세스가 설정된 버킷에 대해 버킷 소유자와 AWS 서비스로 제한됨.
    3. 퍼블릭 액세스가 제공되지 않도록 보호하는 역할을 수행.

 

  1. Bucket Policy
    1. https://awspolicygen.s3.amazonaws.com/policygen.html  -> s3 대한 policy 편집 가능함.
    2. Step 대한 설명은 아래와 같음
      1. Select Type of Policy : SNS Topic Policy, IAM Policy SQS Queue Policy, S3 Bucket Policy 선택 가능함.
      2. Effect :  Allow or Deny 선택
      3. Principal : 권한을 사용할 사용자, IAM 계정을 사용할 있음. ( 인터넷 전체 공계는 * )
      4. AWS Service : 처음 Select Type of Policy 선택하면 그에 맞는 서비스가 자동 선택됨.
      5. Actions : S3 모든 액션이 표시됨, ( ex : 파일 받는 액션은 GetObject )
      6. Amazon Resource NAME ( ARN ) : 아마존 리소스를 고유하게 표현하는 방식
      7. Public bucket 생성시 ( 비추 ) Policy 에서 arn 뒤에 /* 넣어줘야됨.

 

  1. S3 객체 스토리지 클래스
    1. Standard : 데이터 손실 가능성이 거의 없는 스토리지 ( 99.99999999% )
    2. Reduced Redundancy : 어느정도 데이터 손실 가능성이 있지만 비용이 저렴한 스토리지 ( 99.99% )

 

  1. S3 객체 메타데이터  [ bucket object클릭 -> Properties -> Metadata -> +Add Metadata -> Select a key 항목 ]
    1. Cache-Control : 브라우저 캐시 정책을 설정. Value max-age=3600 같이 만료 시간 표기가능 .
    2. Content-Disposition : Value Attachment 설정하면 jpg 같은 그림파일을 보여주지 않고 바로 다운로드 / 파일도 지정가능
    3. Content-Type : 확장자에 따라 자동으로 설정됨.
    4. Content-Language : 텍스트로된 파일 ( HTML ) 언어를 지정함. En , ko , jp 혹은 en-us, ko-kr, ja-jp등으로 지정
    5. Expires : Cache-Control 같이 동작하며 초단위가 아닌 특정 날짜와 시간을 지정하여 만기 시간을 설정 ( ex : Tue, 22 Apr 2014 20:00:00 GMT 같은 형직 )
    6. Content-Encoding : 데이터 인코딩 방식 , gzip deflate 많이 설정함. 토봉 공란 ( 압축률이 별로임 )
    7. Website Redirect Location : 브라우저로 해당 파일을 접근했을따 리다이렉트 시키는 옵션
    8. 사용자정의 메타데이터 : 임의로 설정 하고싶을때..
    9. S3 시스템 정의 메타데이터 : 일부 S3 세부 설정들을 대신할 있음.
      1. --x-amz-server-side-encryption : 데이터 암호화 옵션
      2. --x-amz-version-id : s3버킷에 버저닝 기능을 켯을때 버전을 표시
      3. --x-amz-delete-marker : S3버킷에 버저닝 기능을 켜고, 파일을 삭제하면 파일이 완전히 삭제되지않고 삭제표시 설정이 .
      4. --x-amz-storage-class : 스토리지 클래스 옵션
      5. https://docs.aws.amazon.com/ko_kr/AmazonS3/latest/dev/UsingMetadata.html 에서 더욱 자세히 확인 가능

 

  1. Management
    1. Lifecycle
      1. Current version , Previous version 대해 설정할 있음.
      2. Object creation 아래 3가지이며 선택 기간을 지정한다 ( Days after creation) ( 스토리지 종류 )
        1. Transition to Standard-IA after
        2. Transition to One Zone-IA after
        3. Transition to Amazon Glacier after

 

 


'서버 > AWS 이야기' 카테고리의 다른 글

EBS ( Elactic Block Store )에 관하여  (0) 2019.02.11
ElasticCache에 관하여  (0) 2019.02.11
ELB 엑세스로그 포맷  (0) 2019.02.11
VPC에 관하여  (0) 2019.02.11
CloudFront 에 관하여  (0) 2019.02.11
S3에 관하여  (0) 2019.02.11
댓글
댓글쓰기 폼