me

AWS S3 bucket html url – aws s3로 html 정적 웹 사이트 호스팅 하기
2024.06.05 / ,

고객사에 HTML 파일을 공유할 일이 있어서 외부 URL이 필요했기에, 이번엔 AWS S3 bucket html url 을 이용해 보기로 했다.

간단하게 aws s3에 html 파일 뭉치를 올려 놓고 URL을 고객사에 전달하기!

https://aws.amazon.com/ko/free/?gclid=CjwKCAjwmYCzBhA6EiwAxFwfgGF_aIl0MKpG_cr8tsPNv8HRudONVKTpmph7zibLXKg99oSMExtf1xoCmzcQAvD_BwE&trk=2e777eb1-7c1a-4acc-ae47-724e1cd50096&sc_channel=ps&ef_id=CjwKCAjwmYCzBhA6EiwAxFwfgGF_aIl0MKpG_cr8tsPNv8HRudONVKTpmph7zibLXKg99oSMExtf1xoCmzcQAvD_BwE:G:s&s_kwcid=AL!4422!3!444218215904!e!!g!!aws!10287751092!99328587341&all-free-tier.sort-by=item.additionalFields.SortRank&all-free-tier.sort-order=asc&awsf.Free%20Tier%20Types=all&awsf.Free%20Tier%20Categories=all


AWS S3 bucket html url – aws s3로 html 정적 웹 사이트 호스팅 하기 – 1. AWS S3 접속

AWS S3 bucket html url - 콘솔홈

먼저 aws에 접속해서 콘솔 홈에서 s3에 들어가 준다.


AWS S3 bucket html url – aws s3로 html 정적 웹 사이트 호스팅 하기 – 2. 버켓 만들기

일단 공식 용어는 Amazon 리전에 S3 버켓을 만들어야 한다고 하는데.. 말이 너무 어렵다.

먼저 S3는 Simple Storage Service로 일종의 파일 서버라고 생각하면 될 듯하다.

버켓은 객체 컨테이너라고 하는데… 그것마저 어렵기에… 그냥 URL index.html이 들어갈 디렉터리라고 보면 된다.

AWS S3 bucket html url - 버켓 만들기

일단 S3에 접속 후에 [버킷 만들기] 를 눌러준다.

AWS S3 bucket html url - 버켓 네임

그럼 가장 먼저 버킷 이름을 정하면 되는데 중복이 안 되어야 하기에 의외로 귀찮…

이름을 정하고 스크롤을 내려서

네임 쪽 속성 변경

[모든 퍼블릭 엑세스 차단]을 체크 해제해 준다. 추후 변경 가능하다.

그러나 난 외부 URL 공유 용이기에 과감하게 차단 해제!

차단을 누르지 않고 업로드 후 매번 체크 해제를 할 수도 있는 거 같은데… 그럼 너무 귀찮기에…

그리고 밑에 [현재 설정으로 인해 이 버킷과 그 안에 포함된 객체가 퍼블릭 상태가 될 수 있음을 알고 있습니다.]에 체크 해준다.

네임 쪽 속성 변경2

그리고 버킷 버전 관리 [비활성화]와 기본 암호화도 [비활성화]를 해주고 [버킷 만들기]를 눌러준다.

만약 보안 관련 정보면… 활성화를 선택해서 조율해야하지만…

어차피 공개용이라서…


파일 업로드

버킷 만들기를 누르고 나면 다시 처음 화면(버킷 리스트)으로 돌아가며 리스트 중에 내가 만든 이름으로 새로 나와 있는 것을 볼 수 있다.

AWS S3 bucket html url - 버켓 선택

일단 내가 사용할 버킷 이름(이미지상 주황색 네모)을 누르고 들어간다.

파일 업로드

[객체] 탭에서 업로드가 가능하다.

드래그 앤 드랍으로 파일 업로드가 되고, 예전 초기엔 폴더 자동 생성이 꼬여서 일일이 만들어줬던 거 같은데 지금 해보니 폴더도 문제없이 업로드된다.

지금은 테스트라 간단한 index.html 파일 하나를 업로드 하고 다음 탭으로~


AWS S3 bucket html url – aws s3로 html 정적 웹 사이트 호스팅 하기 – 정적 웹 사이트 호스팅 설정

AWS S3 bucket html url - 속성

[속성] 탭으로 들어와서 스크롤을 제일 하단으로 내리면 [정적 웹 사이트 호스팅] 이라고 있다.

이 부분을 활용해서 외부 공유 URL을 만들 예정이다.

일단 지금 상태는 설정을 안 해줬기에 “비활성화” 상태이다.

[편집] 버튼을 눌러서 편집을 진행한다.

정적 웹 사이트 호스팅 편집

정적 웹 사이트 호스팅 비활성화된 것을 [활성화]로 선택해 준다.

그러면 인덱스 문서와 오류 문서를 적을 수 있는데…

테스트한다고 index.html만 넣었기에 둘 다 index.html로 해주었다.

추후 실제 사용할 땐 오류 문서는 다른 걸로 하는 게 좋아 보인다.

그렇게 적고 [변경 사항 저장]을 눌러준다.


버킷 정책

AWS S3 bucket html url - 권한

다음 [권한] 탭으로 옮겨서 버킷 정책 [편집] 해주어야 한다.

AWS S3 bucket html url - 버켓 정책 편집

편집해서 들어가면 [정책 생성기] 라고 있다.

정책 생성기

그러면 새 창으로 페이지가 열리는데 맞는 값을 넣고 코드를 가져가야 한다.

일단 처음에 Select Type of Policy는 난 현재 S3로 하기 있기에 [S3 Bucket Policy]를 선택해 주었다.

그다음 Principal 부분은 전체 사용자를 대상으로 할 거기에 [*] 를 기재해 주었다.

Actions 부분은 [GetObject]으로 선택했더니 저렇게 나왔다.

Amazon Resource Name(ARN) 적는 부분이 있는데 여기가 조금 헷깔렸다.

arn:aws:s3:::버킷이름/*

버킷 이름 칸에 내가 처음 작성한 버킷 이름을 넣어주면 된다. 만약 test라고 이름 지었다면, arn:aws:s3:::test/* 라고 해준다.

그리고 버튼인 [Add Statement]를 눌러주면

정책 생성기 코드

하단에 테이블값이 생기고 [Generate Policy]를 눌러주면 팝업 창으로 가져갈 수 있는 코드가 뜬다.

값을 복사한 후에

AWS S3 bucket html url - 버켓 정책 편집 코드 입력

[정책 생성기] 새 창 말고 이전 창인 [버켓 정책 편집] 칸에 정책 좌측 부분에 코드를 넣고 [변경 사항 저장]을 눌러준다.

URL GET

그리고 다시 [속성] 탭에 정적 웹 사이트 호스팅으로 가보면 기존 비활성에서 정적 웹 사이트 호스팅 부분이 활성화됨으로 바뀌어 있고 아래에 URL이 생성되어 있다.

이 URL을 배포하면 내가 원하는 것이 끝!

버킷은 저 버킷 정책 생성기 쪽만 잘 해두면 마음껏 배포할 수 있다.


다른 AWS 글 : https://pixiclue.com/tag/aws/