고객사에 HTML 파일을 공유할 일이 있어서 외부 URL이 필요했기에, 이번엔 AWS S3 bucket html url 을 이용해 보기로 했다.
간단하게 aws s3에 html 파일 뭉치를 올려 놓고 URL을 고객사에 전달하기!
먼저 aws에 접속해서 콘솔 홈에서 s3에 들어가 준다.
일단 공식 용어는 Amazon 리전에 S3 버켓을 만들어야 한다고 하는데.. 말이 너무 어렵다.
먼저 S3는 Simple Storage Service로 일종의 파일 서버라고 생각하면 될 듯하다.
버켓은 객체 컨테이너라고 하는데… 그것마저 어렵기에… 그냥 URL index.html이 들어갈 디렉터리라고 보면 된다.
일단 S3에 접속 후에 [버킷 만들기] 를 눌러준다.
그럼 가장 먼저 버킷 이름을 정하면 되는데 중복이 안 되어야 하기에 의외로 귀찮…
이름을 정하고 스크롤을 내려서
[모든 퍼블릭 엑세스 차단]을 체크 해제해 준다. 추후 변경 가능하다.
그러나 난 외부 URL 공유 용이기에 과감하게 차단 해제!
차단을 누르지 않고 업로드 후 매번 체크 해제를 할 수도 있는 거 같은데… 그럼 너무 귀찮기에…
그리고 밑에 [현재 설정으로 인해 이 버킷과 그 안에 포함된 객체가 퍼블릭 상태가 될 수 있음을 알고 있습니다.]에 체크 해준다.
그리고 버킷 버전 관리 [비활성화]와 기본 암호화도 [비활성화]를 해주고 [버킷 만들기]를 눌러준다.
만약 보안 관련 정보면… 활성화를 선택해서 조율해야하지만…
어차피 공개용이라서…
버킷 만들기를 누르고 나면 다시 처음 화면(버킷 리스트)으로 돌아가며 리스트 중에 내가 만든 이름으로 새로 나와 있는 것을 볼 수 있다.
일단 내가 사용할 버킷 이름(이미지상 주황색 네모)을 누르고 들어간다.
[객체] 탭에서 업로드가 가능하다.
드래그 앤 드랍으로 파일 업로드가 되고, 예전 초기엔 폴더 자동 생성이 꼬여서 일일이 만들어줬던 거 같은데 지금 해보니 폴더도 문제없이 업로드된다.
지금은 테스트라 간단한 index.html 파일 하나를 업로드 하고 다음 탭으로~
[속성] 탭으로 들어와서 스크롤을 제일 하단으로 내리면 [정적 웹 사이트 호스팅] 이라고 있다.
이 부분을 활용해서 외부 공유 URL을 만들 예정이다.
일단 지금 상태는 설정을 안 해줬기에 “비활성화” 상태이다.
[편집] 버튼을 눌러서 편집을 진행한다.
정적 웹 사이트 호스팅 비활성화된 것을 [활성화]로 선택해 준다.
그러면 인덱스 문서와 오류 문서를 적을 수 있는데…
테스트한다고 index.html만 넣었기에 둘 다 index.html로 해주었다.
추후 실제 사용할 땐 오류 문서는 다른 걸로 하는 게 좋아 보인다.
그렇게 적고 [변경 사항 저장]을 눌러준다.
다음 [권한] 탭으로 옮겨서 버킷 정책을 [편집] 해주어야 한다.
편집해서 들어가면 [정책 생성기] 라고 있다.
그러면 새 창으로 페이지가 열리는데 맞는 값을 넣고 코드를 가져가야 한다.
일단 처음에 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]를 눌러주면 팝업 창으로 가져갈 수 있는 코드가 뜬다.
값을 복사한 후에
[정책 생성기] 새 창 말고 이전 창인 [버켓 정책 편집] 칸에 정책 좌측 부분에 코드를 넣고 [변경 사항 저장]을 눌러준다.
그리고 다시 [속성] 탭에 정적 웹 사이트 호스팅으로 가보면 기존 비활성에서 정적 웹 사이트 호스팅 부분이 활성화됨으로 바뀌어 있고 아래에 URL이 생성되어 있다.
이 URL을 배포하면 내가 원하는 것이 끝!
버킷은 저 버킷 정책 생성기 쪽만 잘 해두면 마음껏 배포할 수 있다.
다른 AWS 글 : https://pixiclue.com/tag/aws/