AWS의 S3에 웹 프로젝트를 호스팅 해볼게요.
우선 S3가 뭔지 알아야 합니다.
S3
S3는 한 줄로 요약하자면 파일 저장 및 다운로드 서비스입니다.
우리가 사진이나 동영상과 같은 파일들을 구글 드라이브나 iCloud에 저장하듯이, S3도 비슷한 서비스라고 생각하면 돼요.
어떤 웹 서비스에 접속할 때 그 웹 페이지 속으로 들어가는 것처럼 느껴지지만, 실제로는 그렇지 않습니다.
실제로는 웹 페이지를 운영하고 있는 서버로부터 HTML, CSS, JS, 이미지 파일 등을 다운 받아서
브라우저에 끼워 넣어서 실행시키는 방식입니다.
따라서 파일을 다운로드 받아와야 하기 때문에 S3를 활용해서 사용하는 것이죠!
먼저 S3 버킷을 세팅해 보겠습니다.
1. 버킷 만들기
버킷을 만들어 줍니다. (로그인 후)
이름을 지정해주고,
[이 버킷의 퍼블릭 액세스 차단 설정] - [모든 퍼블릭 액세스 차단]
에서 체크를 해제해 주었습니다.
웹 사이트에 올린 파일이 누구에게나 접근 가능하게 해야 하기 때문입니다.
이렇게 버킷을 만들고 난 후,
만든 버킷에 들어가서 [권한]에 들어갑니다.
2. 버킷에 정책 추가하기
그러면 [버킷 정책]이 보입니다.
[편집] - [+새 문 추가]를 누르면
{
"Sid": "Statement2",
"Principal": {},
"Effect": "Allow",
"Action": []
}
이게 자동으로 생기는데, 여기서
[작업 추가] - [S3] - [GetObject] 추가
[리소스 추가] - [리소스 유형]에서 object 선택 후 리소스 추가
리소스 추가할 때 나오는 [리소스 ARN]에서
{BucketName}에는 버킷 이름을,
{ObjectName}에는 *을 넣어주면 됩니다.
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Statement1",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::myawsbucket-xu/*"
}
]
}
이 정책은 myawsbucket-xu 버킷(제 버킷 이름)의 모든 파일을 전 세계 누구나 다운로드할 수 있도록 허용하는 설정입니다.
공개적으로 배포할 데이터를 저장하거나, 정적 웹사이트 호스팅용으로 적합합니다.
(민감한 데이터 포함 X)
이제 파일을 올려봅시다.
3. 객체 업로드
<!-- index.html !-->
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<h1>Title</h1>
</body>
</html>
Title을 표시하는 간단한 index.html 파일을 만듭니다.
그리고 이렇게 업로드를 해주면 잘 올라갑니다.
이제 버킷의 [속성]에 접근하여
[정적 웹 사이트 호스팅]에서 비활성화를 활성화로 바꿔줍니다.
인덱스 문서에는 index.html을 작성해 주고 저장하면 끝입니다.
그러면 [버킷 웹 사이트 엔드포인트]에
링크 하나가 생기는데, 이 링크가 웹 사이트의 링크가 됩니다.
배포 끝~~
이렇게 S3에 웹 프로젝트 호스팅 해보기를 마치겠습니다. *^^*
'개발 > AWS' 카테고리의 다른 글
[AWS] Github Actions로 CI/CD 구축하기 (1) | 2024.12.01 |
---|---|
[AWS] 배포된 React 프로젝트에 도메인 연결하기 (0) | 2024.11.29 |
[AWS] S3, CloudFront를 활용해서 React 프로젝트 배포하기 (0) | 2024.11.28 |