S3 버킷을 사용하여 웹사이트를 호스팅하는 방법
- Step 1: Create a S3 bucket (S3 버킷 생성)
- Step 2: Edit Block Public Access settings (퍼블릭 액세스 차단 설정)
- Step 3: Enable static website hosting (정적 웹사이트 호스팅 활성화)
- Step 4: Add a bucket policy that makes your bucket content publicly available (버킷의 콘텐츠를 공개적으로 사용할 수 있도록 버킷 정책을 추가)
- Step 5.1: Configure an index document (index.html 파일 업로드)
- Step 5.2: Configure an error document (error.html 파일 업로드)
- Step 6: Test your website endpoint (테스트)
S3 정적 웹사이트 호스팅은 HTTP만 지원하며 HTTPS는 지원하지 않는다.
(HTTPS를 사용하려면 CloudFront와 함께 사용해야 한다)
Step 1: Create a bucket (S3 버킷 생성)
AWS Management Console → Amazon S3 → Create bucket 클릭 → bucket 이름 입력 (예: my-bucket)
Step 2: Edit Block Public Access settings (퍼블릭 액세스 차단 설정)
Bucket settings for Block Public Access에서 "Block all public access" 체크를 해제하여 차단을 끈다. (나머지 옵션은 기본값으로 둔다)
이를 통해 퍼블릭하게 웹사이트에 접근이 가능해진다.
Step 3: Enable static website hosting (정적 웹사이트 호스팅 활성화)
AWS Management Console → Amazon S3 → 생성한 bucket을 클릭 → Properties 탭
Static website hosting 섹션 → Edit 클릭
[Edit static website hosting]
- Static website hosting: Enable
- Index document: index.html 입력
- Error document: error.html 입력
Save changes(변경 사항 저장) 클릭 후, S3에서 제공하는 Bucket website endpoint을 복사해 둔다.
(예: http://my-website-bucket.s3-website-us-east-1.amazonaws.com)
Step 4: Add a bucket policy that makes your bucket content publicly available
(버킷의 콘텐츠를 공개적으로 사용할 수 있도록 버킷 정책을 추가)
S3 객체는 기본적으로 비공개 상태이다. 웹사이트 파일에 퍼블릭 읽기 권한을 부여하려면 bucket policy를 변경해야한다.
AWS Management Console → Amazon S3 → 생성한 bucket → Permissions → Bucket Policy 섹션 → Edit
아래와 같은 bucket policy를 추가한다. (버킷 이름은 수정해야 한다)
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::my-website-bucket/*"
}
]
}
Step 5.1: Configure an index document (index.html 파일 업로드)
로컬 환경에서 간단한 index.html
파일을 만든다.
<!DOCTYPE html>
<html>
<head>
<title>My S3 Website</title>
</head>
<body>
<h1>Welcome to my website!</h1>
</body>
</html>
Step 5.2: Configure an error document (error.html 파일 업로드)
사용자에게 오류 페이지를 표시하기 위해 error.html 파일을 업로드하고 구성한다.
로컬 환경에서 간단한 error.html
파일을 만든다.
<!DOCTYPE html>
<html>
<head>
<title>Error</title>
</head>
<body>
<h1>Oops! Something went wrong.</h1>
<p>The page you are looking for does not exist or an error occurred.</p>
</body>
</html>
파일 업로드
AWS Management Console → Amazon S3 → Objects 탭 → index.html
와 error.html
파일을 업로드
Step 6: Test your website endpoint (테스트)
S3 bucket properties 에서 제공된 정적 웹사이트 엔드포인트 URL로 이동하여, 업로드한 index.html이 정상적으로 표시되는지 확인한다.
(예: http://my-website-bucket.s3-website-us-east-1.amazonaws.com)
🤔 문제
SysOps 관리자가 간단한 비프로덕션 웹페이지를 호스팅하기 위해 Amazon S3를 구성해야 합니다. SysOps 관리자는 AWS Management Console에서 빈 S3 버킷을 생성했습니다. S3 버킷은 기본 설정 상태입니다.
SysOps 관리자가 이 프로세스를 완료하기 위해 수행해야 하는 작업 조합은 무엇입니까? (두 가지 선택)
- "Redirect requests for an object" 기능을 사용하여 S3 버킷을 구성하고 버킷 루트 URL로 요청을 리디렉션합니다.
- "Block all public access"(모든 퍼블릭 액세스 차단) 설정을 끕니다. <Permission>WEBSITE</Permission>을 포함하는 버킷 ACL을 사용하여 퍼블릭 액세스를 허용합니다.
- "Block all public access"(모든 퍼블릭 액세스 차단) 설정을 끕니다. AuthenticatedUsers 수혜자에게 접근을 허용하는 버킷 ACL을 사용하여 퍼블릭 액세스를 허용합니다.
- "Block all public access"(모든 퍼블릭 액세스 차단) 설정을 끕니다. "Principal": "*" 및 s3:GetObject 작업을 허용하는 bucket policy을 설정합니다.
- index.html 문서를 생성합니다. 정적 웹사이트 호스팅을 구성하고 해당 문서를 S3 버킷에 업로드합니다.
정답
정답. 4번, 5번
'클라우드(AWS)' 카테고리의 다른 글
[AWS] Amazon Data Lifecycle Manager(DLM)란? 쉽게 정리 (EBS Volume Snapshot 생성 자동화) (0) | 2025.01.27 |
---|---|
[AWS] Lambda@Edge와 CloudFront Function란? 차이점까지 쉽게 정리 (1) | 2024.11.23 |
[AWS] DynamoDB의 "BatchGetItem", "GetItem"란? 쉽게 정리 (0) | 2024.11.22 |
[AWS] Lambda Layer란? 쉽게 정리 (Lambda에서 필요한 라이브러리 사용하기) (1) | 2024.11.09 |
[AWS] API Gateway 개발 환경 별로 (예: Dev, Prod) Stages 설정하는 법 (1) | 2024.10.29 |