aws - S3, CloudFront
인프런 JSCODE 박재성님 비전공자도 이해할 수 있는 AWS 입문/실전 강의를 듣고 정리한 내용입니다
https://www.inflearn.com/course/%EB%B9%84%EC%A0%84%EA%B3%B5%EC%9E%90-%EC%9D%B4%ED%95%B4%ED%95%A0%EC%88%98%EC%9E%88%EB%8A%94-aws-%EC%9E%85%EB%AC%B8%EC%8B%A4%EC%A0%84/dashboard
웹 서비스를 배포할 때 사용하는 S3, CloudFront
S3
-
파일 저장 서비스 뿐만 아니라 정적 웹 사이트 호스팅 기능도 함
-
웹 서비스를 다른 사용자들도 쓸 수 있게 인터넷에 배포
CloudFront란?
-
컨텐츠(파일, 동영상 등)를 빠르게 전송하게 해주는 서비스
-
CDN(Content Delivery Network)이라고도 함
-
전세계 곳곳에 컨텐츠(파일, 동영상)의 복사본을 저장해놓을 수 있는 임시 저장소를 구축해놓고 가장 가까운 임시 저장소에서 컨텐츠를 가져오면 훨씬 속도가 빨라짐
-
컨텐츠를 전송 받는 성능을 향상시키기 위해 사용
-
HTTPS를 적용하려면 CloudFront를 사용해야 함(S3에는 HTTPS를 적용시키는 기능을 제공x)
-
보안 강화
S3 버킷 생성하고 IAM 키 발급 받는 것 까진 동일
S3에 업로드하기 / 웹 호스팅 설정하기
-
S3에 배포할 웹 서비스 파일 업로드
-
S3에 정적 웹 사이트 호스팅 설정
버킷 > 속성 > 정적 웹 사이트 호스팅 > 편집
- 정적 웹 사이트 호스팅: 활성화
- 호스팅 유형: 정적 웹 사이트 호스팅
- 인덱스 문서: 업로드 한 파일
-
잘 배포됐는 지 체크
- 밑에 링크
CloudFront 생성하기
AWS > CloudFront > CloudFront 배포 생성
- 원본 도메인 입력
- 아까 만든 도메인 선택
- 웹 사이트 엔드포인트 사용 클릭
- S3 버킷 엔드포인트(static-practice.s3.ap-northeast-2.amazonaws.com)를 사용하지 말고 S3 정적 호스팅 웹 사이트의 엔드포인트(static-practice.s3-website.ap-northeast-2.amazonaws.com)를 사용
-
HTTP, HTTPS에 대한 정책 선택
- 기본 캐시 동작 > 뷰어 프로토콜 정책: Redirect HTTP to HTTPS
- HTTP로 들어오는 거 강제로 HTTPS로 변환
-
WAF 설정
- 웹 애플리케이션 방화벽(WAF): 보안 보호 비활성화
-
설정
-
가격 분류: 북미, 유럽, 아시아, 중동 및 아프리카에서 사용
-
기본값 루트 객체
- 루트 url을 요청할 때 반환할 객체
- 여기선 아까 업로드한 파일명
-
-
잘 배포됐는 지 확인
- 배포 도메인 이름 = CloudFront 주소
도메인 연결하기, HTTPS 적용하기
-
ACM에서 SSL/TLS 인증서 발급
AWS > Certificate Manager-
Cloudfront는 HTTPS를 적용하려면 인증서를 미국 동부(버지니아 북부)에서 발급받아야 함
-
리전: 버지니아 북부
- 인증서 요청
- 도메인 이름은 내가 가지고 있는 도메인 이름 입력
- Route 53에서 레코드 생성
-
-
CloudFront 설정에서 SSL 인증서 추가
AWS > CloudFront- 편집
-
Alternative domain name (CNAMEs) - optional: 내가 인증서 요청한 도메인 이름
-
Custom SSL certificate - optional: 아까 만든 인증서 선택
-
- 편집
-
Route53에서 CloudFront에 도메인 연결
AWS > Route53 > 호스팅 영역 > 레코드 생성-
별칭
-
CloudFront 배포에 대한 별칭 선택
-
배포 선택
-
레코드 생성
-
-
-
잘 접속되는 지, https 적용되는지 체크
비용 나가지 않게 S3, CloudFront 깔끔하게 종료하기
-
S3 종료
-
안에 있는 파일 삭제
-
버킷 삭제
-
-
CloudFront 비활성화
-
CloudFront 삭제