본문 바로가기
개발/졸업과제

CloudFront와 S3로 구축하는 FrontEnd

by 컴쏘 2023. 7. 30.

Client Side Rendering 일 때 ... 시도했던 방법 

최종 구현물은 Server Side Rendering이다. 

 

참고 링크

AWS S3 + CloudFront로 정적 웹 사이트 배포하기 - Puterism

 

1) S3 버킷 생성

버킷 만들기

버킷 설정들

버킷 설정
버킷 설정
버킷 설정

 

 

2) 정적 웹 호스팅 허용

생성된 버킷 클릭
[속성] 클릭
[정적 웹 사이트 호스팅] - [편집]
설정 편집

 

3) 배포하고자 하는 파일만들기

우선 아직 프론트 개발이 미완성이기 때문에, 배포할 간단한 파일을 만들었다.

다음과 같이 코드 작성

코드 작성

 

만약, 배포에 성공했다면, 보여질 화면은 다음과 같다.

배포 성공 시 보여질 예상 화면

 

4) 배포하고자 하는 파일들 업로드 하기

[객체] - [업로드]

[객체] - [업로드]
[파일 추가]
파일 추가 후 [업로드] 클릭
업로드 성공

 

5) CloudFront 배포 생성 및 설정

이제 CloudFront를 만들어보자.

CloudFront로 이동해서 [배포 생성] 클릭

[배포 생성] 클릭

cloudfront를 만들기 위한 설정을 해준다.

cloudfront 설정
제어 설정해주기 -  없어서 하나 만들어 줌
제어 설정 생성

 

원래 Origin Shield를 설정하면 속도면에서 빨라진다고 하는데, 요청 건수 마다 과금이 든다고 하니 패스..

cloudfront 설정
cloudfront 설정

 

cloudfront 설정
cloudfront 설정
[인증서 요청] 클릭

 

대체 도메인 이름 넣기 - 인증서 생성하기 (버지니아 북부 용 인증서가 없음)

인증서 만들기 -  인증서 요청 클릭 시

 

정보 입력

인증서 만들기

그 후의 인증서 등록 과정은 private docker registry를 구축할 때 만들었던 인증서 생성 방법을 참고 했다.

생성이 완료되면 새로 고침 누른 후 인증서를 등록해준다.

인증서 생성 후

이렇게까지 하면 설정은 다되었기 때문에 [배포 생성]을 클릭

 

5) 구입한 도메인에 CloudFront에서 생성된 기본 도메인 등록해주기

Route 53으로 가서 [호스팅 영역] 선택

호스팅 영역

 

구입한 도메인 클릭
[레코드 생성] 클릭
값 넣기

 

6) 접속해보기

p2kcloud.com으로 접속을 하려고 하는데, 오류 발생

오류 발생

 

원인 1 : 버킷 정책 생성해주지 않음

 

1) S3의 해당 버킷으로 들어간다.

2) 버킷 정책 편집 클릭

3) ARN 밑에 있는 것을 복사하고 [정책 생성기] 클릭

 

참고 링크

[AWS] S3 객체 업로드 및 액세스 설정

정책 생성

4) 정책 만들기

정책 추가

5) JSON 파일로 바꾸기

[Generate Policy] 클릭

6) 정책 추가하기

Generate Policy 클릭하면 나오는 화면의 JSON 복사하기

JSON 복사
붙여넣기

 

원인 2 : cloudfront와 route 53과의 연결을 제대로 하지 않음

 

참고 링크

[AWS Route53] CloudFront에 도메인 설정하기 (+ https)

 

+) route 53에서 레코드 생성 시, CNAME은 root 도메인 사용 불가

route 53

route 53

cloudfront

cloudfront 수정

참고 링크 

cloudfront custom origin(s3)사용시 origin 서버 직접 엑세스 방지하기 - Onlab

 

+) cloudfront 설정 몇가지 더 수정

cloudfront 다른 설정 수정
cloudfront 다른 설정 수정

 

참고 링크 

[AWS] CloudFront와 S3 연결하기

객체 소유권 편집

 

 

원인 3 : ssl 인증서 생성

ssl 인증서 생성할 때 www.p2kcloud.com으로 다시 발급

 

최종 원인 

ssl 인증서 생성할 때 www.p2kcloud.com으로 다시 발급

Cloudfront의 기본 루트 객체 설정

 

+) 추가 수정 사항

s3 버킷 정책에서 추가로 직접 설정해준 것 말고 자동으로 생성된 정책만 남겨두기

버킷 정책 설정

 

 

최종 결과 !!! 

접속했을 때, 잘 뜬다....!