Infra/Cloud

[AWS] AWS S3(Simple Storage Service)

baek-dev 2025. 3. 10. 19:45

⚡ 1. AWS S3란?

Amazon S3(Simple Storage Service)AWS에서 제공하는 확장 가능한 객체 스토리지 서비스입니다.

AWS S3를 사용하면 이미지, 동영상, 로그 파일, 백업 데이터, 정적 웹사이트 파일 등을 저장할 수 있습니다.

 

📌 AWS S3의 주요 특징

확장성 → 데이터를 제한 없이 저장 가능 (이론적으로 무제한)

내구성 & 가용성99.999999999% (11 9’s) 내구성 제공

보안성IAM, 버킷 정책, 암호화 지원

다양한 스토리지 클래스 지원 → 비용 최적화 가능

정적 웹 호스팅 가능 → HTML, CSS, JS 등을 업로드하여 웹사이트 운영 가능

서버리스 아키텍처와 통합 → Lambda, CloudFront, API Gateway와 연동

 

📌 즉, AWS S3는 데이터를 저장하고 백업할 수 있는 안정적인 클라우드 스토리지 서비스!

 

⚡ 2. AWS S3 기본 개념

✅ 1) S3 버킷(Bucket)

S3에서 데이터를 저장하는 기본 단위 (폴더 개념)

고유한 이름을 가져야 함 (ex: my-bucket-123)

버킷마다 권한 및 보안 설정 가능

 

예제

s3://my-bucket/images/photo.jpg
s3://my-bucket/logs/server.log

 

✅ 2) S3 객체(Object)

S3에 저장되는 실제 데이터(파일)

객체(Object) = 데이터 + 메타데이터 + 버전 정보

키(Key): S3에서 객체를 식별하는 고유한 경로

 

예제

버킷: my-bucket
객체 키: images/photo.jpg
S3 URI: s3://my-bucket/images/photo.jpg

📌 즉, S3에서는 파일(객체)을 업로드하면 특정 경로(Key)로 저장됨!

 

✅ 3) S3 스토리지 클래스(Storage Class)

 

AWS S3는 비용 최적화를 위해 다양한 스토리지 클래스를 제공합니다.

스토리지 클래스 특징 비용
S3 Standard 자주 액세스하는 데이터 (기본) 💰💰💰
S3 Standard-IA 자주 사용하지 않지만 빠르게 필요할 수 있는 데이터 💰💰
S3 One Zone-IA 한 지역(Zone)에만 저장, 비용 절감 💰
S3 Glacier 장기 보관(백업, 로그 보관용) 💲
S3 Glacier Deep Archive 최저 비용, 장기 보관 (6~12시간 검색 시간) 💲💲

📌 즉, 자주 사용하면 Standard, 백업 용도라면 Glacier를 사용하면 비용 절감 가능!

 

⚡ 3. AWS S3 기본 사용법 (CLI & 콘솔)

✅ 1) S3 버킷 생성

aws s3 mb s3://my-bucket

📌 버킷 이름은 전 세계적으로 유일해야 하며, -(하이픈), 영문, 숫자만 사용 가능

 

✅ 2) 파일 업로드

aws s3 cp myfile.txt s3://my-bucket/

📌 로컬 파일 myfile.txt를 S3 버킷에 업로드

 

✅ 3) 파일 다운로드

aws s3 cp s3://my-bucket/myfile.txt .

📌 S3에서 myfile.txt를 로컬로 다운로드

 

✅ 4) 버킷 내 파일 목록 조회

aws s3 ls s3://my-bucket/

📌 현재 버킷 내에 저장된 파일(객체) 목록 확인

 

✅ 5) 파일 삭제

aws s3 rm s3://my-bucket/myfile.txt

📌 myfile.txt 파일을 S3에서 삭제

 

✅ 6) 버킷 삭제 (비어 있어야 함)

aws s3 rb s3://my-bucket --force

📌 버킷 내 모든 파일을 삭제하고 버킷 제거 (--force 옵션 필수)

 

⚡ 4. AWS S3 보안 및 권한 관리

✅ 1) S3 IAM 정책 설정

 

AWS S3는 IAM 정책을 통해 접근 제어를 합니다.

 

모든 사용자 읽기 허용 (비추천)

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": "*",
      "Action": "s3:GetObject",
      "Resource": "arn:aws:s3:::my-bucket/*"
    }
  ]
}

📌 공개 버킷을 만들면 누구나 파일을 다운로드할 수 있으므로 주의해야 함!

 

특정 사용자만 읽기 가능

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::123456789012:user/my-user"
      },
      "Action": "s3:GetObject",
      "Resource": "arn:aws:s3:::my-bucket/*"
    }
  ]
}

📌 특정 사용자(my-user)만 S3 객체를 읽을 수 있도록 제한

 

✅ 2) S3 버킷 암호화

 

AWS S3는 데이터를 안전하게 보호하기 위해 암호화(Encryption) 기능을 제공합니다.

aws s3 cp myfile.txt s3://my-bucket/ --sse AES256

📌 AES-256 암호화를 적용하여 파일 업로드

 

⚡ 5. AWS S3 활용 사례

✅ 1) 정적 웹사이트 호스팅

 

AWS S3는 HTML, CSS, JavaScript를 업로드하여 정적 웹사이트를 호스팅할 수 있습니다.

aws s3 website s3://my-bucket/ --index-document index.html

📌 정적 웹사이트 설정 후 http://my-bucket.s3-website-us-east-1.amazonaws.com에서 접속 가능!

 

✅ 2) 백업 및 로그 저장

애플리케이션 로그 저장 → S3에 저장 후 Athena로 분석 가능

DB 스냅샷 백업 → MySQL, PostgreSQL 백업을 S3에 저장

 

✅ 3) 데이터 레이크 구축

 

AWS S3는 데이터 레이크(Data Lake) 저장소로 활용될 수 있습니다.

AWS Glue, Athena와 연동하여 데이터 분석 가능

AI/ML 모델 학습을 위한 대량 데이터 저장소로 사용

 

⚡ 6. AWS S3의 장점과 단점

✅ AWS S3의 장점

 

무제한 확장성 → 파일 크기와 개수에 제한 없음

고가용성(99.99%) 및 내구성(11 9’s)

비용 최적화 가능 (Glacier, Deep Archive)

정적 웹사이트 호스팅 및 서버리스 아키텍처와 통합 가능

 

❌ AWS S3의 단점

 

트랜잭션 비용 발생 (GET, PUT 요청에도 비용 청구됨)

파일 크기가 클 경우 업로드 속도 이슈 발생

실제 OS 파일시스템처럼 사용하기 어려움 (NFS, SMB 미지원)

 

⚡ 7. 결론

AWS S3는 확장 가능한 클라우드 스토리지 서비스로, 데이터 저장, 백업, 정적 웹사이트 호스팅 등에 활용 가능

고가용성 및 내구성을 제공하며, 비용을 절감할 수 있는 다양한 스토리지 클래스를 지원

CLI, SDK, 웹 콘솔을 통해 파일 업로드, 다운로드, 삭제, 접근 제어 가능

IAM, 버킷 정책, 암호화를 통해 보안 강화 가능

 

🚀 AWS S3는 클라우드 스토리지의 표준이며, 다양한 AWS 서비스와 연동하여 강력한 기능을 제공할 수 있다

 

 

 

 

출처 : ChatGPT

'Infra > Cloud' 카테고리의 다른 글

AWS Lambda  (0) 2025.04.12
ECR  (0) 2025.04.11