해당 포스팅은 AWS 강의실(https://www.youtube.com/@AWSClassroom)를 보고 공부한 내용을 정리한 블로그입니다.

아직 많이 부족하고 배울게 너무나도 많습니다. 틀린내용이 있으면 언제나 가감없이 말씀해주시면 감사하겠습니다😁
네 자신의 불행을 생각하지 않게 되는 가장 좋은 방법은 일에 몰두하는 것이다.
Ludwig van Beethoven

Static VS Dynamic Contents


Static Contents

  • 서버에 저장된 파일이 모든 사용자에게 동일하게 전달되는 컨텐츠
  • 매번 서버에 요청할 필요없이 캐싱 가능
  • HTML/Javascript 등으로 구성
  • 예: 이미지, 글, 뉴스 등

Dynamic Contents

  • 시간, 사용자, 입력 등에 따라 내용이 변경되는 컨텐츠
  • 매번 서버에 요청하여 내용을 구성하고 전달받아야함.
  • PHP, JSP, ASP.net 등으로 서버 처리
  • 예: 로그인이 필요한 내용, 게시판, 댓글 등

Amazon S3 Static Hosting


  • S3를 사용해서 정적(Static) 웹 컨텐츠를 호스팅하는 기능
  • 별도의 서버 없이 웹사이트 호스팅 가능
  • 고가용성/장애 내구성을 확보
  • 사용 사례: 대규모 접속이 예상되는 사전 예약 페이지, 홍보 페이지, 회사 웹 사이트 등

권한

  • 정적 웹 호스팅을 public으로 공개할 경우: 불특정 다수에게 허용되는 권한 부여 필요
  • 불특정 다수가 접속할 수 있는 권한을 확보하려면
    • S3 Block Public Access 해제 필요
    • Bucket Policy에서 정책 허용 필요

활용

  • route 53에서 보유한 도메인으로 연결 가능
    • 버킷명 = 호스팅 주소여야 가능
    • test.example.com으로 호스팅하고 싶다면, 버킷명도 ‘test.example.com’ 필요
  • 실전에서 CloudFront와 연동
    • HTTPS 프로토콜 구현을 위해서 CloudFront와 연동 필요.
      • ACM을 통한 SSL 키 관리가 가장 편함
      • 보통 Public Hosting의 활성화 대신 그대로 Private 모드로 두고 OAI/OAC 등을 활용해서 보안 강화

아키텍처

정적 호스팅 아키텍처

실습


1. 버킷 만들기

  1. S3 버킷의 정적 호스팅 기능 활성화하기

버킷 생성

2. 속성 -> 정적 웹사이트 호스팅 편집

정적 웹 사이트 호스팅 편집

3. 퍼블릭에 공개할 수 있는 권한 및 설정 적용

 

퍼블릭 액세스 가능

4. S3 버킷에 샘플 static 웹 사이트 파일을 작성해서 업로드하기

  1. S3 정적 호스팅 웹 주소를 사용해 웹 사이트 동작 확인하기 

  2. 파일 업로드 후 퍼블릭 도메인에 접근

테스트 페이지

5. 도메인 이름을 바꾸고 싶으면 Route 53을 변경해야함.

'CICD > AWS' 카테고리의 다른 글

[AWS] S3 암호화  (0) 2024.07.26
[AWS] S3 버전 관리 및 객체 잠금  (1) 2024.07.26
[AWS] S3 권한 관리  (0) 2024.07.26
[AWS] S3 스토리지 클래스  (0) 2024.07.25
[AWS] Amazon S3 기초  (0) 2024.07.25
해당 포스팅은 AWS 강의실(https://www.youtube.com/@AWSClassroom)를 보고 공부한 내용을 정리한 블로그입니다.

아직 많이 부족하고 배울게 너무나도 많습니다. 틀린내용이 있으면 언제나 가감없이 말씀해주시면 감사하겠습니다😁
네 자신의 불행을 생각하지 않게 되는 가장 좋은 방법은 일에 몰두하는 것이다.
Ludwig van Beethoven

암호화


  1. On Transit: SSL/TLS(HTTPS) ⇒ 데이터가 클라이언트에서 s3로 통신하는 과정에서의 암호화
  2. At Rest(Server Side)
    1. SSE S3
    2. SSE KMS
    3. SSE C
  3. Client Side 

At Rest(Server Side)

Server Side

  • S3가 데이터를 저장할 때 암호화

SSE S3

SSE S3 데이터 저장
SSE S3 데이터 조회

  • S3에서 알아서 암호화

SSE KMS

SSE KMS 데이터 저장
SSE KMS 데이터 조회

  • KMS 서비스를 이용해 암호화
  • KMS로 활용하기에 키를 로깅 및 로테이션 가능
    • 권한 분리 가능

SSE C

SSE C 데이터 저장
SSE C 데이터 조회

  • 클라이언트에서 제공한 암호를 암호화
  • 클라이언트 키를 같이 암호화
  • 클라이언트가 키를 보관해야함.(잃어버리면 데이터 복구 불가)

Client Side

  • 클라이언트가 직접 암호화

 

'CICD > AWS' 카테고리의 다른 글

[AWS] S3 정적 호스팅  (0) 2024.07.26
[AWS] S3 버전 관리 및 객체 잠금  (1) 2024.07.26
[AWS] S3 권한 관리  (0) 2024.07.26
[AWS] S3 스토리지 클래스  (0) 2024.07.25
[AWS] Amazon S3 기초  (0) 2024.07.25
해당 포스팅은 AWS 강의실(https://www.youtube.com/@AWSClassroom)를 보고 공부한 내용을 정리한 블로그입니다.

아직 많이 부족하고 배울게 너무나도 많습니다. 틀린내용이 있으면 언제나 가감없이 말씀해주시면 감사하겠습니다😁
네 자신의 불행을 생각하지 않게 되는 가장 좋은 방법은 일에 몰두하는 것이다.
Ludwig van Beethoven

버전관리


  • 객체의 생성, 업데이트 삭제의 모든 단계를 저장
    • 삭제시에는 실제 객체를 삭제하는 대신 삭제 마커를 추가
  • 버킷 단위로 활성화 필요(기본적으로 비활성화)
    • 중지 가능, 단 비활성화 불가능
    • 한번 버전관리를 시작하면 비활성화 불가능(버킷 삭제 후 재생성으로 해결 가능)
  • 수명 주기 관리와 연동 가능
  • MFA 인증 후 삭제 기능을 통해 보안 강화 기능

파일 생성
파일 업데이트
파일 삭제

  • delete marker만 삭제하면 version 22222를 확인 가능.
  • 버전 삭제도 가능.

버전 관리 유의 사항

  • 중지 가능, 단 비활성화 불가능
    • 한번 버전관리를 시작하면 비활성화 불가능(버킷 삭제후 재생성으로 해결 가능)
  • 모든 버전에 대해 비용 발생
    • 10gb 객체의 버전이 5개 있다면, 총 50gb에 대해 비용 발생

객체 잠금


  • Write Once, Read Many(WORM) 모델을 활용하여 객체를 저장
  • 고정된 시간, 혹은 무기한으로 객체의 삭제/덮어쓰기 방지 가능
  • 규정 준수 및 객체의 보호를 위해 사용
  • 버전 활성화 필요

종류

객체 잠금 종류

  • 보관모드(Retention Mode): 일정 기간동안 수정 방지
    • 규정 준수 모드: 누구도 잠금 설정 변경, 객체 삭제 불가능
    • 거버넌스 모드: 특별한 권한 없이 삭제 혹은 잠금 설정 변경 불가능
      • 객체 삭제 방지 혹은 규정에 따라 보관하기 위해 사용
      • 규정 준수 모드의 테스트
  • 법적 보존(Legal Hold)
    • Hold를 객체에 부여하고 Hold가 존재하는 한 객체 삭제, 수정 불가능
    • 제한 기간이 없음

'CICD > AWS' 카테고리의 다른 글

[AWS] S3 정적 호스팅  (0) 2024.07.26
[AWS] S3 암호화  (0) 2024.07.26
[AWS] S3 권한 관리  (0) 2024.07.26
[AWS] S3 스토리지 클래스  (0) 2024.07.25
[AWS] Amazon S3 기초  (0) 2024.07.25
해당 포스팅은 AWS 강의실(https://www.youtube.com/@AWSClassroom)를 보고 공부한 내용을 정리한 블로그입니다.

아직 많이 부족하고 배울게 너무나도 많습니다. 틀린내용이 있으면 언제나 가감없이 말씀해주시면 감사하겠습니다😁
네 자신의 불행을 생각하지 않게 되는 가장 좋은 방법은 일에 몰두하는 것이다.
Ludwig van Beethoven

S3 권한 관리


S3 버킷 정책

  • IAM 정책 중의 리소스 정책

IAM 종류

  • Identity-based policies(자격 증명 기반 정책)
    • 자격 증명(IAM 유저, 그룹, 역할)에 부여하는 정책
    • 해당 자격증명이 무엇을 할 수 있는 지 허용

리소스 기반 정책

  • Resource-based policies(리소스 기반 정책)
    • 리소스(S3, SQS VPC Endpoint, KMS 등)에 부여하는 정책
    • 해당 리소스에 누가 무엇을 할 수 있는지 허용 가능
      • SQS 대기열에 lambda Service가 접근 가능
      • IAM 정책을 평가할 때 리소스 정책 허용이면 허용하는 특징

S3 버킷 정책

  • 버킷 단위로 부여되는 리소스 기반 정책
  • 해당 버킷의 데이터에 언제 누가 어디서 무엇을 어떻게 할 수 있는지 정의 가능
    • 리소스 계층 구조에 따라 권한 조절 가능
    • 다른 계정에 엔티티에 대해 권한 설정 가능(cross account)
    • 익명 사용자에 대한 권한 설정 가능.
  • 기본적으로 모든 버킷은 Private ⇒ 접근 불가능

S3의 계층 구조

{
	"Version": "2012-10-17",
    "Statement": [
    	{
        	"Sid": "StatementAllow",
            "Effect": "Allow",
            "Principal": "*",
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::demo.rwlecture.com/*",
        }
    ]
}
  • AWS 콘솔에서는 S3의 디렉토리를 생성 가능하고 확인 가능
  • S3 내부적으로는 계층 구조가 존재하지 않음
    • 키 이름에 포함된 “/”로 계층 구조를 표현
      • s3:mybucket/aaa/bbb/ccc/ddd
      • bucket: mybucket
      • key: aaa/bbb/ccc/ddd(단일 스트링)
    • effect: 허용
    • principal: 누가? ⇒ 퍼블릭 액세스 차단 편집을 수정해야함.
    • action: 무엇을
    • resource: 어떤 버킷에 대해서?

버킷 관리 방법의 선택

  • Identity-based policies(자격 증명 기반 정책)
    • 같은 계정의 IAM 엔티티의 S3 권한 관리할 때
    • S3 이외에 다른 AWS 서비스와 같이 권한 관리할 때
  • Resource-based policies(리소스 기반 정책)
    • 익명 사용자 혹은 다른 계정의 엔티티의 S3 이용 권한을 관리할 때
    • S3 만의 권한을 관리할 때

Access Control List(ACL)

  • 버킷 혹은 객체 단위로 읽기, 쓰기의 권한 부여
  • S3에서 설정을 통해 ACL을 활성화 시킨 후에 적용 가능
  • 파일 업로드시 설정 가능
  • 간단하고 단순한 권한 관리만 가능
  • 사용하지 않는 추세 ⇒ 버킷 괸리로 사용 가능함.

'CICD > AWS' 카테고리의 다른 글

[AWS] S3 암호화  (0) 2024.07.26
[AWS] S3 버전 관리 및 객체 잠금  (1) 2024.07.26
[AWS] S3 스토리지 클래스  (0) 2024.07.25
[AWS] Amazon S3 기초  (0) 2024.07.25
[AWS] VPC 실습  (0) 2024.07.25
해당 포스팅은 AWS 강의실(https://www.youtube.com/@AWSClassroom)를 보고 공부한 내용을 정리한 블로그입니다.

아직 많이 부족하고 배울게 너무나도 많습니다. 틀린내용이 있으면 언제나 가감없이 말씀해주시면 감사하겠습니다😁
네 자신의 불행을 생각하지 않게 되는 가장 좋은 방법은 일에 몰두하는 것이다.
Ludwig van Beethoven

S3 스토리지 클래스


7가지 S3 스토리지 클래스

  • S3 다양한 스토리지 클래스 제공
    • 클래스 별로 저장의 목적, 예산에 따라 다른 저장 방법 적용
    • 8가지 클래스(S3 on OutPosts는 설명만)

s3 스탠다드

  • 99.99% 가용성
  • 99.999999999% 내구성(eleven-nine)
  • 최소 3개 이상의 가용영역에 분산 보관
  • 최소 보관기간 없음, 최소 보관 용량 없음
  • 파일 요청 비용 없음(전송 요금은 발생)

s3 스탠다드 IA(Infrequently Accessed)

  • 자주 사용되지 않는 데이터를 저렴한 가격에 보관
  • 최소 3개 이상의 가용영역에 분산 보관
  • 최소 저장용량: 128kb 최소 저장 기간: 30일
    • 작은 용량을 저장해도 128kb만큼의 비용발생, 1일만 저장해도 30일 보관만큼의 비용발생
  • 데이터 요청 비용 발생: 데이터를 불러올 때마다 비용 지불
  • 자주사용하지 않는 파일 중 중요한 파일

s3 one zone-IA

  • 자주 사용되지 않는, 중요하지 않은 데이터를 저렴한 가격에 보관
  • 단 한개의 가용영역에만 보관
  • 최소 저장용량: 128kb 최소 저장 기간: 30일
    • 작은 용량을 저장해도 128kb만큼의 비용발생, 1일만 저장해도 30일 보관만큼의 비용발생
  • 데이터 요청 비용 발생: 데이터를 불러올 때마다 비용 지불
  • 자주사용하지 않는 파일 중 쉽게 복구할 수 있는 파일

s3 Glacier Instant Retrieval

  • 아카이브용 저장소
  • 최소 저장용량: 128kb 최소 저장 기간: 90일
  • 바로 액세스 가능.
  • 사용사례: 의료 이미지 혹은 뉴스 아카이브 등

s3 Glacier Flexible Retrieval

  • 아카이브용 저장소
  • 최소 저장용량: 40kb 최소 저장 기간: 90일
  • 분~시간 단위 이후 액세스 가능
  • 사용사례: 장애 복구용 데이터, 백업 데이터 등

s3 Glacier Deep Retrieval

  • 아카이브용 저장소
  • 최소 저장용량: 40kb 최소 저장 기간: 90일
  • 데이터를 가져오는데 12~48시간 소요
  • 사용사례: 오래된 로그 저장, 사용할 일이 거의 없지만 법적으로 보관해야하는 서류 등

s3 Intelligent-Tiering

  • 머신러닝을 사용해 자동으로 클래스 변경
  • 적절한 스토리지 클래스로 변경
  • 퍼포먼스 손해/오버헤드 없이 요금 최적화

s3 on Outposts

  • 온 프로메스 환경에 s3 제공
  • 내구성을 확보한 상태로 파일을 저장하도록 설계
  • IAM, S3 SDK 등 사용가능

'CICD > AWS' 카테고리의 다른 글

[AWS] S3 버전 관리 및 객체 잠금  (1) 2024.07.26
[AWS] S3 권한 관리  (0) 2024.07.26
[AWS] Amazon S3 기초  (0) 2024.07.25
[AWS] VPC 실습  (0) 2024.07.25
[AWS] VPC와 Subent  (0) 2024.07.25
해당 포스팅은 AWS 강의실(https://www.youtube.com/@AWSClassroom)를 보고 공부한 내용을 정리한 블로그입니다.

아직 많이 부족하고 배울게 너무나도 많습니다. 틀린내용이 있으면 언제나 가감없이 말씀해주시면 감사하겠습니다😁
네 자신의 불행을 생각하지 않게 되는 가장 좋은 방법은 일에 몰두하는 것이다.
Ludwig van Beethoven

S3


Amazon Simple Storage Service(Amazon S3)는 업계 최고의 확장성과 데이터 가용성 및 보안과 성능을 제공하는 객체 스토리지 서비스입니다. 99.99%의 내구성을 제공하도록 설계되었으며, 전 세계 기업의 수백만 애플리케이션을 위한 데이터를 저장합니다.
-AWS-

Amazon S3

  • 객체 스토리지 서비스: 파일 보관만 가능 ↔ Block Storage Service(EBS, EFS 등)
    • 어플리케이션 설치 불가능
  • 글로벌 서비스. 단, 데이터는 리전에 저장
  • 무제한 용량
    • 하나의 객체는 0byte에서 5TB의 용량

버킷

  • S3의 저장공간을 구분하는 단위
  • 디렉토리/폴더와 같은 개념
  • 버킷이름은 전 세계에서 고유 값: 리전에 관계없이 중복된 이름이 존재할 수 없음.

S3객체의 구성

  • Owner: 소유자
  • Key: 파일의 이름
  • Value: 파일의 데이터
    • 0byte의 데이터 → value가 없을 수도 있음
  • Version Id: 파일의 버전 아이디
  • Metadata: 파일의 정보를 담은 데이터
  • ACL: 파일의 권한을 담은 데이터
  • Torrents: 토렌트 공유를 위한 데이터

내구성

  • 최소 3개 이상 가용영역(AZ)에 데이터를 분산 저장(Standard의 경우)
  • 99.999999999% 내구성(eleven nine)
    • 0.000000001% 확률로 파일을 잃어버릴 수 있음
  • 99.9% SLA 가용성(스토리지 클래스에 따라 다름)

보안 설정

  • S3모든 버킷은 새로 생성시 기본적으로 Private(비공개)
    • 따로 설정을 통해 불특정 다수에게 공개 가능(ie 웹 호스팅)
  • 보안 설정은 객체 단위와 버킷 단위로 구성
    • Bucket Policy: 버킷단위
    • ACL(Access Control List): 객체 단위
  • MFA를 활용해 객체 삭제 방지 가능
  • Versioning을 통해 파일 관리 가능
  • 액세스 로그 생성 및 전송 가능
    • 다른 버킷 혹은 다른 계정으로 전송 가능

실습


1. S3 검색 후 대시보드 들어가서 버킷 생성

  1. 나머지 옵션은 그대로

S3 버킷 생성

2. 업로드 하는 메타 데이터(아무거나 하셔도 됩니다)

메타 데이터

3. IAM 역할 선택

IAM 역할

4. S3 권한 추가

  1. S3 검색 후 FullAccess 선택

  2. EC2에서 S3로 접근할 수 있도록 권한을 만들어줘야함.

S3 권한

EC2 생성

'CICD > AWS' 카테고리의 다른 글

[AWS] S3 권한 관리  (0) 2024.07.26
[AWS] S3 스토리지 클래스  (0) 2024.07.25
[AWS] VPC 실습  (0) 2024.07.25
[AWS] VPC와 Subent  (0) 2024.07.25
[AWS] 사설 IP, NAT, CIDR란  (0) 2024.07.25

+ Recent posts