Amazon Simple Storage Service(S3)는 AWS에서 제공하는 객체 스토리지 서비스이다.
build 후 정적파일을 저장하고 제공하는데 사용.


{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "PublicReadGetObject",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::내버킷이름입력/*"
}
]
}
"Resource"에 내 버킷이름 입력하고 끝에 /*은 누락하면 안된다.
Version: 정책 언어의 버전
Statement:
- 하나 이상의 개별 statement을 포함하는 배열
Sid: PublicReadGetObject:
- Statementh ID의 약자로 statement의 목적을 설명하는 식별자.
- PublicReadGetObject설정은 내 객체를 공개적으로 읽기 가능하게 해준다.
- 웹 사이트 호스팅이나 다운로드 가능한 파일에 주로 이 권한을 부여한다.
Effect: Allow:
- IAM정책 statement에 필수 필드로 Allow는 지정한 작업을 허용함을 나타낸다.
- 반대는 Deny
Pricipal: "*":
- 정책이 적용되는 대상을 지정한다.
- ""은 모든 사용자를 의미하여 누구나 이 권한을 가질 수 있다.
Action: "s3:GetObject":
- 허용되는 작업을 지정한다.
- "s3:GetObject"는 내 객체를 읽거나 다운로드할 수 있다.
Resource: "arn:aws:s3:::내버킷이름/" :
- 정책이 적용되는 리소스를 지정한다.
-arn:aws:s3:::내버킷이름/*은 지정된 버킷("내버킷이름")의 모든 객체를 의미한다.
-*은 버킷 내의 모든 객체에 이 정책이 적용됨을 나타낸다.
권한 탭에서 CORS(Cross-origin 리소스 공유) 섹션을 찾는다.
2, 편집 클릭 후, 다음 구성 추가.
[
{
"AllowedHeaders": ["*"],
"AllowedMethods": ["GET", "HEAD"],
"AllowedOrigins": ["내 도메인"],
"ExposeHeaders": []
}
]
변경 사항 저장 클릭
속성 탭에서 정적 웹 사이트 호스팅 섹션을 찾는다.
편집 클릭
Next.js로 실습을 진행하기 때문에 오류문서 항목만 404.html로 수정해준다.
변경 사항 저장 클릭
버킷 전용 엔드포인트 확인하기
속성 탭 클릭
최 하단의 정적 웹 사이트 호스팅 섹션에서 엔드포인트를 확인할 수 있다.
현재 브라우저를 열면 404 Not Found화면이 뜨는데 현재 버킷에 파일이 없기 때문에 당연한 결과다.
import type { NextConfig } from "next";
const nextConfig: NextConfig = {
output: "export",
};
export default nextConfig;
next프로젝트가 있다면 프로젝트 빌드물, 없다면 create-next-app@latest로 만들어서 빌드한다.
생성한 버킷의 상세 페이지에서 업로드 버튼을 클릭
파일 추가를 클릭하고 out폴더에 있는 모든 파일을 모두 업로드한다.
S3에서 객체(Object)는 클라우드 환경에 최적화된 저장 단위이며 버킷이라는 컨테이너 내에 저장된다.
객체의 특징
1. 기본 저장 단위:
객체는 S3에서 데이터를 저장하는 기본 단위.
2. 파일과 유사한 개념:
객체는 컴퓨터의 파일과 유사한 개념이다. 이미지,비디오, 문서 등 어떤 종류의 파일이든 객체가 될 수 있다.
3. 구성 요소:
버킷 속성 탭에서 최하단의 정적 웹 사이트 호스팅 섹션에 있는 엔드포인트를 클릭하면
버킷에 업로드한 프로젝드가 화면에 노출된다.