Code States/TIL

[0414] AWS - 스토리지

ki1111m2 2023. 4. 14. 17:29

학습 목표

  • Cloud와 Deployment의 의미를 각각 알고, 서비스를 다른사람에게 배포할 수 있다.
  • 클라우드 컴퓨팅이 무엇인지 설명할 수 있다.
  • 애플리케이션 배포가 어떻게 변화되어 왔는지 이해할 수 있다.
  • AWS의 각 서비스가 어떤 목적에 부합하는지 이해할 수 있다.
  • S3의 목적과, 정적 웹 사이트 배포 방법을 이해할 수 있다.
  • EC2의 주요 용어를 이해할 수 있다. (AMI, 인스턴스, 인스턴스 유형, 스토리지 타입, 퍼블릭/프라이빗 IP)
  • EC2의 인스턴스 시작/중지/종료에 대해 이해할 수 있다.
  • RDS와 EC2에서의 MySQL 사용이 어떻게 다른지 이해할 수 있다.
  • CloudFront의 목적을 이해할 수 있다.
  • Auto Scaling의 특징 및 역할을 알 수 있다.
  • 로드 밸런서 중 ELB, 그 중에서 Application Load Balancer의 목적을 이해할 수 있다.
  • AWS 인프라 중 VPC에 대해서 이해할 수 있다.
  • Route 53의 목적을 이해하고, 도메인을 연결해 HTTPS로 배포할 수 있다.
  • 빌드 및 배포시 필요한 환경 설정을 할 수 있다.
  • 배포 시 발생하는 문제를 이해하고 고칠 수 있다.

  • 객체 스토리지(Obect Storage)
    • 객체: 문서, 이미지, 비디오 등 비교적 단순한 구조에 메타데이터를 포함하고 있는 데이터를 의미
    • 인터넷으로 연결도니 API를 통해 데이터를 애플리케이션에 제공함
  • 블록 스토리지(Block Storage)
    • 데이터: 서버 인스턴스에 디스크 볼륨의 형태로 제공되는 데이터
    • EC2 인스턴스에 포함된 볼륨에 고속으로 접근 가능함
    • 대표적 서비스인 EBS는 EC2 인스턴스를 위한 부트 볼륨 및 데이터베이스로 널리 사용됨
  • 파일 스토리지(File Storage)
    • 데이터: 서버 인스턴스에 파일 시스템 인터페이스 방식으로 제공되는 데이터
    • 서버 인스턴스에 파일 스토리지를 추가하면 로컬 파일 시스템처럼 작동함
    • 대표적 서비스 EFS는 고속으로 다수의 EC@ 인스턴스를 통해 데이터에 접근할 수 있도록 함

 

 

S3(Simple Storage Service)


  • 클라우드 스토리지: 인터넷 공간에 데이터를 저장하는 저장소
  • AWS에서 제공하는 클라우드 스토리지 서비스
  • 데이터 백업, 정적 웹사이트 호스팅, 애플리케이션 호스팅, 재난 복구, 콘텐츠 배포, 데이터 레이크, 프라이빗 저장소 등에 활용 가능
  • 장점
    • 확장성: 데이터를 무한히 저장 가능하다
    • 내구성: 99.999999999%의 내구성 보장
    • 가용성: 99.99%의 가용성 보장
    • 다양한 스토리지 클래스 제공
    • 정적 웹 사이트 호스팅 가능
  • 버킷(bucket)
    • 객체를 저장하는 컨테이너 역할
    • 버킷 이름은 여러 리전에서 유일한 이름이어야 함(URL을 통해 해당 데이터에 접근하기 위해)
    • 버킷은 어떤 리전에서나 생성할 수 있고, 명시적으로 복제 작업을 수행하지 않으면 다른 리전에 특정 버킷의 데이터가 복제되지 않음
    • S3 버킷은 버전 부여 기능을 제공하므로 객체가 버킷에 추가될 때마다 해당 객체에 유일한 ID가 할당됨
  • 객체(Object)
    • 문서, 이미지, 비디오 등 비교적 단순한 구조에 메타데이터를 포함하고 있는 데이터로, 버킷에 저장한 모든 것을 객체라고 부름
    • 가장 기본적인 요소로, 각 객체는 데이터와 메타 데이터를 가짐
    • 메타 데이터는 각 객체를 설명하는 이름-값 쌍으로 표시하며 최종 수정일, 파일 타비 등 부가 정보가 기록됨
    • 이름, 키, 버전 ID를 통해 식별할 수 있으며, 키를 통해 버킷에서 유일한 것으로 식별됨(버킷에 존재하는 모든 객체는 단 하나의 키를 가짐)
  • 접근성 통제
    • S3 버킷에 누가 어떻게 접근하도록 할 것인지 정의하는 것
    • 주로 JSON을 이용해 작성된 정책(Policy)을 통해 이루어지며, 접근 정책, 버킷 정책, 접근 제어 목록 등의 방식을 사용함
    • 하나의 Statement에는 하나의 permission 정보가 보함되며, 다수의 statement는 논리합(Logical OR) 관계를 맺음
     

  • ID: 정책의 ID 값으로, UUID를 사용하기를 권장함
  • SID : Statement ID로 statement를 구분하기 위해서 사용함
  • Effect : 정책의 효과를 나타내며, 허용할 것인지 거부할 것인지를 선택할 수 있음
  • Principal : 대상 및 주체를 지정함(Users, Services 등)
  • Action : 정책을 통해 승인 / 거절할 동작을 의미함
  • Resource : Action이 영향을 미치는 리소스 리스트를 지정함
  • Condition : 조건이 충족되는 경우에는 해당 정책을 적용시킬 수 있음
  • 접근 정책: Identity-based policies
    • 신분 및 접근 관리 정책으로 S3의 객체를 매우 세분화해 통제할 수 있음
    • IAM과 S3를 이용하면 특정 IAM 유저와 공유되고 있는 버킷을 선택할 수 있고, 특정 유저가 해당 버킷에 접근하도록 허용할 수 있음
    • 특정 버킷의 내용을 회원 모두 혹은 일부 회원이 열람하도록 할 수 있고, 고객 또는 파트너가 특정 버킷에 객체를 추가하도록 허용할 수 있음
  • 버킷 정책: Resource-based policies
    • 버킷 레벨에서 생성한 정책
    • S3 버킷을 세분화된 방식으로 제어할 수 있도록 함
    • 대표적인 버킷 정책의 사례는 특정 버킷에 있는 객체에 대한 익명의 사용자로부터의 리드 온리 접근을 허용하는 케이스
  • 보안 Best Practice
    • 보통의 경우 S3 버킷에 대한 퍼블릭 액세스를 허용해서는 안됨
      • S3 버킷을 퍼블릭 액세스 할 수 있다는 말은 모든 파일이 아무에게나 노출될 수 있다는 의미
    • 최소한의 접근 권한 전략 사용
      • S3 버킷에 접근해야 하는 사람에게도 관련 작업에 해당하는 만큼만 권한을 부여하고, 그외 사람에게는 접근 거부 정책을 적용
    • 다중인증(MultiFactor Authentication, MFA) 시스템 활용
      • MFA Delete를 설정하여 데이터 삭제 권한이 없는 사람은 삭제 할 수 없도록 제한

EBS(Elastic Block Store)


  • EC2 인스턴스에 사용할 수 있는 블록 수준 영구 스토리지 볼륨
  • 영구 스토리지: EC2 인스턴스의 수명주기를 넘어서서 존재할 수 있는 스토리지
  • EBS 볼륨은 형식이 지정되지 않은 원시 블록 디바이스처럼 동작함
  • 이러한 볼륨 위에 파일 시스템을 생성하거나 하드 드라이브와 같은 블록 디바이스를 사용하는 것처럼 볼륨을 사용할 수 있음
  • 인스턴스에 연결된 볼륨의 구성을 동적으로 변경할 수 있음
  • EC2 인스턴스의 부트 파티션으로 사용되거나 실행 중인 EC2 인스턴스의 표준 블록 디바이스로 사용됨
  • EC2 인스턴스에 EBS 볼륨을 부착하면, 서버를 위한 하드 드라이브와 같은 기능을 수행하게 됨
  • 하나의 EC2에 여러 개의 EBS 볼륨을 부착 할 수도 있는데, 이렇게 하면 부트 볼륨과 데이터 볼륨을 별도로 관리 할 수 있어서 편리함
  • EC2에 부착한 EBS 볼륨은 언제든 분리할 수 있고, 다른 EC2에 부착도 가능함
  • EBS 볼륨은 특정 AZ에 속한 자원이기도 하므로, 서로 다른 AZ 간의 EC2에 EBS 볼륨을 분리하고 부착하는 것은 불가능함
  • 부트 파티션으로 사용할 수 있음
  • EC2 인스턴스가 정지 후 재시동돼 해당 인스턴스 상태를 유지하기 위한 스토리 리소스로서의 기능만 담당하게 됨
  • EBS 볼륨은 서버 재시동 후에도 유지되므로 기존에 저장된 내용은 그대로 남게 됨
  • EBS 볼륨은 EC2 인스턴스의 로컬 스토리지에 비해 훨씬 높은 수준의 견고성을 제공함
  • 볼륨에 대한 특정 시점의 스냅샷을 지속적으로 작성해 S3에 저장하는 방식으로 다수의 AZ에서 자동 복제 기능을 제공함
  • 생성된 스냅샷은 또 다른 EBS 볼륨 생성을 위한 시작점으로 활용할 수 있음
  • 장기간 서버와 관련된 데이터를 안전하게 보호할 수 있음
  • 스냅샷은 리전 간 복제해서 사용할 수도 있으므로 재난 복구, 데이터센터 마이그레이션 등에도 편리하게 사용할 수 있음

EFS(Elastic File System)


  • 서버를 사용하지 않는 간단한 탄력적인 파일 시스템을 제공함
  • EFS로 파일 시스템을 생성하고 EC2 인스턴스에 파일 시스템을 탑재한 후 파일 시스템에 데이터를 작성하거나 파일 시스템에서 데이터를 읽을 수 있음
  • 애플리케이션을 중단하지 않고 온디맨드 방식으로 페타바이트 규모까지 확장되도록 구축되어, 사용자가 파일을 추가하고 제거할 때 자동으로 확장/축소되므로 데이터 증가에 맞춰 용량을 프로비저닝 및 관리할 필요가 없음
  • 파일 시스템을 빠르고 쉽게 만들고 구성할 수 있는 간편한 웹 서비스 인터페이스를 제공함
  • 이 서비스에서 모든 파일 스토리지 인프라를 관리해 주므로 사용자는 복잡한 파일 시스템 구성을 배포, 패치 및 유지 보수하는데 따르는 복잡성에서 벗어날 수 있음

'Code States > TIL' 카테고리의 다른 글

[0418] AWS - 수평 확장  (0) 2023.04.18
[0417] (페어) AWS - 3 Tier 아키텍처 배포  (1) 2023.04.17
[0414] AWS - EC2  (0) 2023.04.14
[0414] AWS - AWS 서비스 소개  (0) 2023.04.14
[0414] AWS - 클라우드 컴퓨팅  (0) 2023.04.14