
간단한 REACT 앱을 서버에 올리도록 해보자.
사용할 AWS 리소스는 S3, CloudFront 2가지 인데 각각의 역할은 다음과 같다.
S3: 정적 웹사이트 호스팅 기능을 제공하는데 정적 파일을 업로드 하면 이를 웹 서버로 사용 할 수 있다.
CloudFront: 캐시 서버로 사용자와 S3 사이에서 속도를 빠르게 할수 있고 HTTP 호출을 HTTPS 로 적용하여 보안을 강화 할수도 있다.
먼저 설정을 진행하도록 한다.
버킷 만들기 버튼 클릭



웹서버로 만들어주기 위해 정적웹사이트 호스팅 설정을 해주어야 한다.
생성한 버킷을 클릭하여 준 후 속성 탭을 클릭한다.

속성탭의 제일 하단에 정적 웹 사이트 호스팅 기능이 있는데 현재 비활성으로 되어있다.
편집 버튼을 눌러준다.

정적 웹 사이트 호스팅을 활성화 해주고 인덱스 문서를 설정해 준 후 하단의 변경사항 저장 버튼을 클릭해준다.

설정이 되고 저장후 버킷 웹 사이트 엔드포인트 가 나오는데 해당 주소를 호출하여 업로드한 리엑트 서버를 접속할 수 있다.

하지만 해당 주소로 접속을 하게 되면 403 에러가 발생되는데 이는 버킷에 업로드된 객체에 접근권한이 없어 페이지 노출이 되지않는 문제다.

S3 의 객체 접속 권한을 주기 위해 권한 탭으로 이동 후 버킥 정책 영역의 편집 버튼을 클릭해준다.


정책 생성기 버튼을 클릭 후 노출되는 페이지에서 다음 설정을 진행한다.

: Select Type of Policy: S3 Bucket Policy
: Principal: *
: Actions: GetObject

: Amazon Resource Name(ARN): 이전 페이지의 arn 정보를 복사해서 넣어준다.
값을 모두 입력후 Add Statement 버튼 클릭 후 하단에 생성되는 Generage Ploicy 버튼 클릭

출력되는 정보를 복사해서 이전 페이지의 버킷 정책 항목에 입력해준 후 하단의 변경 사항 저장 버튼 클릭
( 정책을 붙여 넣기 할때 Resource 에 /* 를 추가해주어야 정상적인 파일 접근이 가능하다 )


다시 버킷 웹 사이트 엔드포인트를 호출하여 정상적으로 페이지 접속이 되는지 확인한다.
S3 설정이 끝났다면 실제 사용자가 접속할 캐시 서버인 CloudFront 설정을 해주자.







배포 생성 버튼을 클릭하여 배포.배포 도메인 이름 을 호출하여 업로드한 앱이 정상적으로 실행되는지 확인한다.

SPA : /user 호출시 index 에서 user component 를 바인딩.S3 : /user 호출시 /user 폴더의 index 파일을 찾아 호출오류 페이지 탭의 사용자 정의 오류 응답 생성 버튼을 클릭한다.
HTTP 오류 코드 : 403오류 응답 사용자 정의: 예응답페이지 경로: /index.htmlHTTP 응답 코드: 200
무효화 탭 이동 → 무효화 생성 버튼 클릭
무효화 생성 버튼을 클릭한다.
좋은 정보 감사합니다!
덕분에 배포 잘 마쳤습니다 :)