본문 바로가기

Programming/JavaScript tips

AWS S3 - React app 배포하기

어떻게 배포할까

문득 react 로 만든 앱을 어떻게 배포했었지?.. 기억을 잃은 듯한 느낌을 받았다. 오늘은 AWS S3 를 활용해서 웹호스팅을 해보자!

 

1. Create react app & build

1
2
3
4
5
# react app 만들기
$ npx create-react-app react-app
 
# /react-app
$ npm run build
cs

React app 을 만들고 build 해주면 build 폴더가 생성되고 그 안에 static 폴더와 index.html 을 포함해 필요한 파일들이 생성된다.

 

2. AWS S3 버킷 만들기

 

AWS S3 콘솔에서 Create bucket 을 클릭해서 새로운 버킷을 만들어준다.

버킷 이름은 중복될 수 없다

 

3. S3 설정하기

 

생성된 버킷을 클릭하고 상단의 Properties 탭에서 Static website hosting 또는 정적 웹사이트 호스팅을 클릭한다.

 

 

그럼 아래와 같이 선택하고 index.html 을 입력하고 Save 한다. 여기서 Endpoint 가 배포된 react-app 의 주소값이다.

 

 

다음으로 Permissions 탭으로 넘어가서 Block public access 에서 "Block all public access" 설정을 해제하고 Save 한다.

 

 

저장되면 다음 Bucket Policy 로 이동해서 Policy 를 만들어준다.

 

 

하단에 위치한 Policy generator 를 클릭하면 아래와 같은 새창이 열린다. Actions 에서는 GetObject 라는 것을 선택하면 되고, ARN 은 화살표처럼 버킷이름과 키이름을 입력하고 Add Statement 를 클릭한다.

 

 

아래와 같이 statement 가 추가된 걸 확인 할 수 있다. 그럼 이제 Generate Policy 를 클릭.

 

 

JSON 으로된 Policy 가 열리면 해당 JSON 파일을 복사한다.

 

 

위에서 복사한 JSON Policy 를 아래와 같이 Bucket Policy 에 붙여넣기 하고 Save 한다. 아마 Save 가 되면 경고가 뜰텐데 S3 를 public 접근하도록 했기 때문에 알려주는 것이다. 넘어가자. 

 

4. Static 파일들 업로드하기

 

이제 마지막이다. 상단의 Overview 탭으로 가서 아까 생성했던 build 폴더에 있는 모든 파일을 드래그애서 업로드하자.

 

5. 배포 끝

 

자, 이제 Endpoint 로 접속하기만 하면, 짠!!

 

" 참 쉽죠? 배포하러 고고씽! "

 

'Programming > JavaScript tips' 카테고리의 다른 글

Typescript 익숙해지기  (0) 2019.12.05
React 로 포트폴리오 만들기  (0) 2019.10.26
Socket.io 다루기 - 실시간 투표앱, A to Z  (0) 2019.09.17
AWS 시대  (0) 2019.08.23
[TIL] node.js 서버 구성  (0) 2019.08.13