S3 정적웹사이트 및 데이터 관리

은채의 성장통·2025년 2월 9일
0

AWS

목록 보기
49/79

AWS S3를 활용하면 정적 웹사이트(HTML, CSS, JavaScript 등)를 쉽게 호스팅할 수 있다.

단, S3의 기본 설정은 퍼블릭 접근이 차단되어 있으므로 정적 웹사이트 호스팅을 위해 적절한 설정이 필요하다.


1️⃣ S3 정적 웹사이트 호스팅 설정

✅ 주요 요구사항

✔️ S3 버킷에 HTML, CSS, JS, 이미지 파일 업로드

✔️ 퍼블릭 읽기 권한 허용

✔️ 버킷 정책(Bucket Policy) 설정

✔️ 정적 웹사이트 호스팅 활성화

✔️ (선택) CloudFront를 이용한 속도 최적화 및 HTTPS 적용

✅ S3 정적 웹사이트 설정 방법

1️⃣ S3 버킷 생성 (버킷 이름은 전 세계적으로 고유해야 함)

2️⃣ 정적 웹사이트 호스팅 활성화

  • PropertiesStatic website hostingEnable
  • Index document: index.html
  • Error document: error.html (선택 사항)
    3️⃣ 퍼블릭 읽기 권한 부여 (버킷 정책 설정)
    4️⃣ S3 버킷 URL을 사용하여 웹사이트 접근 가능

2️⃣ 퍼블릭 읽기 권한 설정 (Bucket Policy 예시)

S3 정적 웹사이트를 호스팅하려면 버킷 정책을 사용하여 모든 사용자에게 읽기 권한을 부여해야 한다.

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

✔️ "Principal": "*" → 모든 사용자에게 적용

✔️ "Effect": "Allow" → 허용

✔️ "Action": "s3:GetObject" → 객체 읽기 허용

✔️ "Resource" → 특정 버킷의 모든 객체(/*)에 적용

📌 💡 S3는 기본적으로 HTTPS를 지원하지 않으므로, CloudFront를 이용해 HTTPS를 적용할 수도 있다.


3️⃣ 버전 관리 (Versioning)

S3 버킷에서 버전 관리(Versioning)를 활성화하면 동일한 키(Key)의 파일이 덮어씌워져도 이전 버전이 저장된다.

이를 통해 이전 버전 복원(롤백)이 가능하며, 실수로 덮어쓴 파일을 복구할 수 있다.

✅ S3 버전 관리 특징

✔️ 버킷 수준에서 활성화 가능

✔️ 같은 키를 가진 파일이 업로드되면 자동으로 새로운 버전이 부여됨

✔️ 버전 ID를 이용해 특정 버전으로 복원 가능

✔️ 버전 관리를 비활성화해도 기존 버전은 유지됨

✅ S3 버전 관리 예시

1️⃣ myfile.txt를 업로드

  • 버전 1 (ID: v1) 생성
    2️⃣ 같은 myfile.txt를 다시 업로드
  • 버전 2 (ID: v2) 생성 (기존 파일 덮어씌워지지 않음)
    3️⃣ 특정 버전 복원 가능
  • v1로 롤백 가능

📌 💡 버전 관리 활성화 시 스토리지 비용이 증가할 수 있으므로, 주기적으로 불필요한 버전을 정리해야 한다.


4️⃣ 복제 (Replication)

S3 복제 기능을 사용하면 한 버킷의 데이터를 다른 버킷으로 자동 복사할 수 있다.

✔️ CRR (Cross-Region Replication): 서로 다른 리전에 복제

✔️ SRR (Same-Region Replication): 같은 리전에 복제

✅ S3 복제 설정 방법

1️⃣ 복제하려는 소스 버킷대상 버킷을 생성

2️⃣ 소스 버킷에서 버전 관리 활성화

3️⃣ 복제 규칙(Rule) 생성

4️⃣ 올바른 IAM 정책 부여 (복제 권한 필요)


5️⃣ S3 스토리지 클래스 비교

AWS S3는 사용 목적에 따라 다양한 스토리지 클래스를 제공한다.

아래는 각 스토리지 클래스의 특징과 활용 사례를 정리한 표이다.

스토리지 클래스설명사용 사례비용
S3 Standard기본 스토리지, 높은 내구성과 성능 제공자주 접근하는 데이터가장 비쌈
S3 Intelligent-Tiering자동으로 데이터 액세스 패턴을 분석하여 비용 최적화액세스 패턴이 불규칙한 데이터자동 최적화
S3 Standard-IA (Infrequent Access)자주 사용하지 않는 데이터 (저렴한 비용, 높은 가용성)백업, 장기 보관S3 Standard보다 저렴
S3 One Zone-IA단일 가용 영역에서만 저장되며, 비용 절감 가능빠르게 복구할 필요 없는 데이터Standard-IA보다 저렴
S3 Glacier장기 보관용 스토리지, 수 시간 내 데이터 복구 가능데이터 아카이빙, 규제 준수매우 저렴
S3 Glacier Deep Archive가장 저렴한 스토리지, 복구 시간이 길지만 비용 절감 가능법적 보관, 장기 백업최저 비용

📌 💡 데이터의 액세스 빈도에 따라 적절한 스토리지 클래스를 선택하면 비용을 절감할 수 있다.


최종 정리

📌 S3 정적 웹사이트 호스팅 주요 개념

✔️ S3 버킷에 HTML, CSS, JS 파일을 업로드하여 정적 웹사이트를 호스팅 가능

✔️ 퍼블릭 읽기 권한을 부여해야 웹사이트 접근 가능

✔️ S3 자체는 HTTPS를 제공하지 않으므로, CloudFront를 이용하여 HTTPS 적용 가능

📌 S3 버전 관리 (Versioning)

✔️ 같은 파일을 업로드해도 이전 버전이 유지됨

✔️ 특정 버전으로 롤백 가능

✔️ 버전 관리 활성화 시 스토리지 비용이 증가할 수 있음

📌 S3 복제 (Replication)

✔️ CRR (교차 리전 복제): 서로 다른 리전에 복제

✔️ SRR (동일 리전 복제): 같은 리전에 복제

✔️ 버전 관리를 활성화하고 IAM 권한을 올바르게 설정해야 복제가 가능함

📌 S3 스토리지 클래스

✔️ 자주 접근하는 데이터 → S3 Standard

✔️ 비정기적으로 접근하는 데이터 → S3 Standard-IA

✔️ 장기 보관 (수 시간 내 복구) → S3 Glacier

✔️ 장기 보관 (수일 내 복구) → S3 Glacier Deep Archive

📌 AWS S3는 단순한 스토리지 서비스가 아니라, 강력한 데이터 관리 및 웹 호스팅 솔루션으로 활용 가능하다. 🚀

profile
인생 별거 없어

0개의 댓글