Post

[Cloud] S3의 이해

Amazon Simple Storage Service (Amazon S3)

AWS S3 란?

  • Amazon S3(Simple Storage Service)는 AWS 서비스 중에서 EC2 서비스와 더불어 가장 오래되고, 기본이 되는 객체 스토리지 서비스다.
  • S3에 저장되는 데이터를 객체라고 하며, 이 객체 저장소를 버킷(bucket)이라고 한다.
  • 객체에 대한 입출력은 HTT 프로토콜로 하며, REST API를 이용하여 명령이 전달된다.
  • 특징

    image.png

    • 99.999999999%의 내구성으로 디자인되어 데이터 손실을 최소화하도록 규정
    • 데이터 저장 공간이 거의 무제한에 가까워 특별한 용량 제한 없이 데이터를 저장할 수 있음
    • 필요한 경우 다양한 스토리지 계층으로 데이터를 분류하여 데이터 저장 비용을 절감 할 수 있음.
    • 보안 규정 준수 및 감시 기능을 제공하고 있어 데이터가 안전하게 저장되고, 인증된 시용자만 접근할 수 있도록 구성
    • 필요한 경우 접근 권한 정책을 이용하여 해당 객체의 접근을 제어할 수 있음.

Amazon S3 storage classes

  • Amazon S3는 다양한 사용 사례에 맞게 설계된 다양한 객체 수준 스토리지 클래스를 제공.
  • 참고 : https://aws.amazon.com/ko/s3/storage-classes/
  • Amazon S3 Standard
    • 자주 접근되는 데이터에 적합하며, 높은 내구성과 가용성을 제공
  • Amazon S3 Intelligent-Tiering
    • 자주 액세스되는 데이터를 자동으로 감지하여 비용을 최적화할 수 있는 스토리지 클래스
    • 접근 빈도에 따라 데이터가 자동으로 “Frequent Access”와 “Infrequent Access”를 이동
  • Amazon S3 Standard-Infrequent Access (Amazon S3 Standard-IA)
    • 드물게 액세스되지만, 필요 시 빠르게 접근해야 하는 데이터에 적합.
    • 가장 낮은 비용
  • Amazon S3 One Zone-Infrequent Access (Amazon S3 One Zone-IA)
    • 단일 가용 영역에만 데이터를 저장하여 비용을 절감.
    • 가용성은 낮음.
  • Amazon S3 Glacier
    • 장기 아카이빙을 위한 저비용 스토리지 클래스
    • 데이터 접근 시 수 분에서 수 시간의 지연이 발생할 수 있음.
    • 법적 또는 규정 준수를 위한 장기 데이터 아카이빙 용도로 사용.
  • S3 Glacier Deep Archive
    • S3 Glacier보다 더 저렴한 장기 아카이빙 스토리지로, 데이터 복구 시간이 수 시간에 달할 수 있음
    • 거의 액세스하지 않는 데이터를 수년간 보관하는 경우 사용.

Amazon S3 bucket URL

  • Bucket path-style URL endpoint:

    image.png

Amazon S3의 특징

  • Amazon S3는 객체에 대해 빠르고 내구성과 가용성이 높은 키 기반의 접근성을 제공하여 데이터의 저장 및 검색에 특화된 객체 스토리지
  • S3는 하나의 리전 내 최소 세 개 이상의 물리적으로 분리된 가용 영역에 데이터를 복제해서 저장하므로 높은 내구성과 고가용성을 제공

    버킷에 welcome.mp4 오브젝트를 넣으면 알아서 해당리전내에 여러 퍼실리티에 나눠서 저장

    버킷에 welcome.mp4 오브젝트를 넣으면 알아서 해당리전내에 여러 퍼실리티에 나눠서 저장

  • 서버의 OS 도움 없이 객체별 접근이 가능하므로 데이터 저장 및 활용에 용이
  • 사실상 무제한 스토리지: 스토리지에 대한 실질적 제한은 없으며, 대규모 데이터를 저장할 수 있음.
    • 단일 객체 크기: 단일 객체는 최대 5TB까지 저장 가능. 대용량 파일(예: 비디오, 백업 파일 등) 저장 가능
    • 멀티파트 업로드: 큰 파일을 분할하여 업로드하고, 업로드 완료 후 병합하는 기능 제공. 특히 대용량 파일 업로드 시 유용

Amazon S3의 사용 사례

  • 백업 및 복구: 안정적인 내구성을 통해 백업 데이터를 안전하게 보관 가능.
  • 데이터 분석: 대량의 데이터 저장 및 분석에 용이. Amazon Athena와 연계하여 직접 쿼리 수행 가능.
  • 정적 웹사이트 호스팅: S3를 이용하여 정적 콘텐츠(HTML, 이미지, 비디오 등) 호스팅 가능.
  • 로그 저장 및 분석: AWS 서비스 및 애플리케이션의 로그 데이터를 저장하고 분석

LAB : 버킷 데이터 저장소를 이용한 웹 서버 운영

  • 버킷에 저장된 image를 웹 서버로 서비스 하기

Task1: S3 버킷 생성

  • 버킷 생성
    • 일반구성
      • 버킷이름 : web-sample-images-seongmi
      • 객체 소유권 : ACL 비활성화됨
      • 모든 퍼블릭 액세스 차단 - 허용
      • 버킷 버전 관리 : 비활성화
      • 버킷만들기
  • 버킷에 image.png 파일 업로드

    image.png

    • 저장
  • URL 확인
    • 업로드한 이미지 선택후 [URL 복사]

Task 2: 웹 서버 구성

  • 보안그룹
    • 이름 : WEB-SG
    • 인바운드 규칙 : 80,22 ← anywhere
  • EC2인스턴스 생성
    • 이름 : webserver
    • 사용자 데이터

      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
      
        #!/bin/bash
        # Install and start Apache
        dnf update -y
        dnf install httpd -y
        systemctl enable --now httpd
              
        # Create the index.html file
        cat <<EOL > /var/www/html/index.html
        <!DOCTYPE html>
        <html lang="ko">
        <head>
            <meta charset="UTF-8">
            <meta name="viewport" content="width=device-width, initial-scale=1.0">
            <title>성미의 웹페이지</title>
        </head>
        <body>
            <h1>성미의 웹페이지</h1>
            <p>성미의 웹페이지에 오신 것을 환영합니다.</p>
            <hr>
            <img src="https://web-sample-images-lee.s3.ap-northeast-2.amazonaws.com/pet.jpg" style="max-width: 100%; height: auto;">
        </body>
        </html>
        EOL
              
        # Restart Apache to apply changes
        systemctl restart httpd
              
      
    • 태그 추가
      • Backup
      • Yes

Task 3: 버킷 콘텐츠를 공개적으로 사용 가능하도록 설정

  • 기본적으로 Amazon S3은 계정 및 버킷에 대한 퍼블릭 액세스를 차단
  • 버킷을 사용하여 웹 사이트에 호스팅할 경우 퍼블릭 액세스 차단 설정을 편집 [참고]
  • 버킷 선택후 [권한]
    • 퍼블릭 액세스 차단(버킷 설정) - [편집] - 모든 퍼블릭 액세스 차단 해제
    • 버킷정책 [편집]

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      
        {
            "Version": "2012-10-17",
            "Statement": [
                {
                    "Sid": "PublicReadGetObject",
                    "Effect": "Allow",
                    "Principal": "*",
                    "Action": "s3:GetObject",
                    "Resource": "<버킷ARN>/*"
                }
            ]
        }
      

Task 4: 웹페이지 확인

  • 웹페이지

    image.png

This post is licensed under CC BY 4.0 by the author.

Comments powered by Disqus.