본문 바로가기

개발/AWS

aws s3에 script로 index.html등 static파일 배포하기

728x90

개요

s3웹 호스팅을 사용하다가 파일을 수정했다면 다시 배포를 해주어야 합니다. s3 웹 콘솔을 이용해 배포하면 되지만 매번 수정될때마다 반복 작업을 하면 그것 또한 귀찮기 때문에 명령어로 하고 싶은 생각이 듭니다.

 

핵심은 아래 명령어를 이용해 file을 copy하는 것입니다.

aws s3 sync ./ s3://bible-finder-vue --acl public-read

--acl public-read 를 붙여주어야 배포 하고나서도 public access가 됩니다.

 

aws s3 sync ./ s3://bible-finder-vue --acl public-read --exclude ".git/*"

.git을 제외하고 올리려면 뒤에 --exclude를 추가 합니다.

 

Prerequisit

krksap.tistory.com/1829

 

AWS configure세팅

aws configure세팅 처음 aws cli를 설치 하면 aws인증 정보가 없기 때문에 어떤 명령을 내려도 작업이 되지 않습니다. 그래서 Access Key등을 세팅 해주어야 합니다. 그 명령어가 aws configure 입니다. AWS로

krksap.tistory.com

AWS configure를 이용해 미리 계정 설정을 해놓아야 합니다.

 

 

본문

aws 콘솔에서 손으로 배포하는 것은 한두번이지 한계가 있습니다. 

쉘 스크립트를 짜놓고 엔터 누르면 배포되게 해야 지속 가능성이 있습니다.

html 디렉토리 안에 있는 index.html을 배포 해보겠습니다.

s3경로를 알아야 한다. '경로 복사'를 누르면 됩니다.

그리고 index.html파일을 수정 해보겠습니다.

hello2로 수정을 합니다.

 

먼저 어떤 디렉토리가 있는지 확인 합니다.

aws s3 ls

 

그리고 아래 명령어를 이용해 배포 합니다.

aws s3 sync ./ s3://bible-finder-vue

위 명령어는 ./아래의 디렉토리를 s3의 bible-finder-vue 버킷과 동기화 시킨다는 명령어 입니다.

 

이렇게 하면 배포가 됩니다.

위 명령어로 올리면 퍼블릭으로 설정이 안되서 올라갑니다. 해당 파일에 액세스 하려고 하면 Access Denied가 나옵니다.

https://s3.ap-northeast-2.amazonaws.com/biblefinder.co.kr/index.html 파일의 uri는 여기입니다.

파일로 가서 '퍼블릭으로 설정'을 눌러주면 퍼블릭으로 설정이 되어서 접근이 된다.

그런데 이렇게 손으로 할꺼면 굳이 cli를 쓸 이유가 없습니다. 그리고 파일이 index.html하나라서 이렇게 클릭해서 하지 react같은걸로 개발했으면 static파일이 여러개 나오는데 여러개를 매번 손으로 해줄려면 cli를 안쓰게 됩니다.

그래서 커맨드에 퍼블릭으로 설정하는 옵션을 넣어서 배포를 합니다.

aws s3 cp ./index.html s3://biblefinder.co.kr/ --acl public-read

맨 뒤에 --acl public-read 옵션을 붙여주면 됩니다.

hello3로 수정하고 위 커맨드로 배포 하고 접속 해보면 access denied가 안나오고 바로 되는 것을 볼 수 있습니다.

 

end.

 

 

728x90
블로그 주인장입니다. 원하시는 정보는 얻으셨나요? 이 포스트에서 추가로 필요한 정보가 있으시면 여기에 남겨주세요.